# Poll job status

Returns current status and progress counters.
**Status lifecycle:** `new` → `working` → `finished` (or `failed`)
When `status` is `finished`, use `GET /job/{id}/download` to retrieve results.

Endpoint: GET /job/{id}
Version: 4.0
Security: ApiKeyAuth, BearerAuth, BasicAuth

## Security:

  - `ApiKeyAuth` (unknown)
    apiKey in header x-api-key

  - `BearerAuth` (unknown)
    http bearer JWT

  - `BasicAuth` (unknown)
    http basic

## Path parameters:

  - `id` (string, required)
    MongoDB ObjectId of the job.

## Response 200:

  - `200` (unknown)
    Job status

## Response 200 fields (application/json):

  - `error` (boolean)
    Example: false

  - `job` (object)

  - `job._id` (string)

  - `job.status` (string)
    | Value | Meaning |
|  --- | --- |
| `new` | Created, queued for processing |
| `working` | Crawls in progress |
| `finished` | All results assembled |
| `failed` | Timed out or unrecoverable error |
    Enum: "new", "working", "finished", "failed"

  - `job.done` (integer)
    Values with a result so far.

  - `job.all` (integer)
    Total values in this job.

  - `message` (string)
    Example: country not supported by source

## Response 401:

  - `401` (unknown)
    Missing or invalid credentials.

## Response 401 fields (application/json):

  - `error` (string)
    Example: user not found

  - `message` (string)

## Response 403:

  - `403` (unknown)
    Authenticated but not subscribed to this source/country.

## Response 403 fields (application/json):

  - `error` (string)
    Example: user not found

  - `message` (string)

## Response 200 examples:

  - `working` (unknown)

  - `finished` (unknown)

