# Check on a job

`GET https://api.mailmasker.org/api/v1/jobs/:id`

One job's state and progress, and its file's name and size once it is done.

- Who can use it: Any signed-in account
- Area: Background jobs
- Answers 200 OK when it works
- Page: https://developer.mailmasker.org/job-show

The same fields as List your jobs, for one job. You can look up your own jobs; a site admin can look up anyone's.

## Parameters

| Name | In | Required | What it is | Example |
|---|---|---|---|---|
| `id` | path | yes | The job's `id`. | `42` |

## Good to know

- A job that isn't yours, or has been cleared away, answers 404.

## Examples

cURL:

```bash
curl -s 'https://api.mailmasker.org/api/v1/jobs/42' \
  -H "Authorization: Bearer $TOKEN"
```

Perl:

```perl
use Mojo::Base -strict;
use Mojo::UserAgent;

my $ua  = Mojo::UserAgent->new;
my $res = $ua->get('https://api.mailmasker.org/api/v1/jobs/42',
    { Authorization => "Bearer $ENV{TOKEN}" })->result;
die $res->code, ' ', ($res->json('/error') // $res->message), "\n" unless $res->is_success;
print $res->body, "\n";
```

homelab-cli:

```bash
homelab-cli jobs show 42
```

## Response

200 OK:

```json
{
  "id": 42,
  "type": "zip",
  "state": "running",
  "user_email": "you@example.com",
  "output_name": "photos.zip",
  "output_size_bytes": null,
  "progress_current": 1,
  "progress_total": 2,
  "error_message": null,
  "created_at": "2026-11-03 21:42:10.123456-06",
  "started_at": "2026-11-03 21:42:15.502114-06",
  "completed_at": null
}
```
