200 with the task in QUEUED:
Lifecycle
Statuses
A task that hits a transient failure returns to
QUEUED and runs again. It settles in FAILED only after its retries run out, so a PROCESSING → QUEUED step is normal.
Polling omits response until the task is terminal. A failed task has a top-level error string instead:
Credits on submit and on poll
Prices, holds and limits are on Credits and limits.
Priority
priority accepts 1 to 10 and defaults to 1. Values outside that range are clamped, not rejected. The value is echoed in task metadata.
Retention
You can poll a terminal task for 24 hours after it completes. After that,GET /v1/async/task/{id} returns 404 RESOURCE_NOT_FOUND, the same response as an unknown id or another account’s task. QUEUED and PROCESSING tasks stay visible however old they are.
The 24-hour window also applies to result bodies in GET /v1/batches/{id}/items and grid reads. It limits public polling, not storage: the task record is kept, and its idempotencyKey stays reserved after the window closes (see Idempotency). Automatic webhook retries run on their own schedule, independent of this window.
Webhook or polling
Prefer webhooks. Use polling to recover what you did not receive.
A robust client does both: it takes the webhook as the fast path and polls for any task it has not heard about well inside the 24-hour window.
Next steps
Webhooks
Payload, signatures and retries.
Batches and grids
Submit up to 10,000 tasks at once.