---
title: "Poll a previously-submitted async job"
method: POST
path: "/api2/asyncjob"
tags: ["Async"]
---

# Poll a previously-submitted async job

`POST /api2/asyncjob`

Used after submitting a request with `async=true` to `/api2/convert`,
`/api2/pdftotext`, or `/api2/pdfmerge`. The Job-Id was returned in the
`X-SelectPdf-Job-Id` header of the original 202 response.

- Job still running → 202 with body `Job still running.`
- Job finished → 200 with the same body shape the original endpoint would have returned (PDF / text / JSON)
- Job failed → 499 with the error message in the body

## Request body

- AsyncJobParameters
  - `key` string, uuid, required
  - `job_id` string, uuid, required — Job UUID returned by the originating endpoint via `X-SelectPdf-Job-Id`.

## Response `200`

Job complete. Body matches the originating endpoint (PDF / text / JSON).

## Other responses

- `202` — Job still processing. Retry the call after a short delay.
- `400` — Bad request — missing or malformed `job_id`.
- `401` — Unauthorized — license key invalid.
- `499` — Job failed or its output is no longer available.

---

[API](https://skmtc.dev/selectpdf/apis/selectpdf-rest-api.md) · [All operations](https://skmtc.dev/selectpdf/apis/selectpdf-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/selectpdf/selectpdf-rest-api/revisions/3e8de86ac045/schema)
