Poll an async job — status + final result
Returns the job’s current state. All states (queued, running,
succeeded, failed) return 200; 404 for an unknown jobId, 410
once the result has expired (~24h after completion).
On succeeded, result usually carries the per-kind payload inline.
When a result is too large to return inline, result is omitted and the
response instead carries resultStorage: "s3" plus a short-lived presigned
resultUrl (with resultBytes and resultExpiresAt) — fetch that URL
directly to download the full payload, and re-poll for a fresh URL if it
expires. Recommended polling cadence: every 2–5 seconds. Runtime depends
on the job kind and result breadth; broad stats jobs run in the shared
15-minute worker budget and may take longer than the synchronous API
request budget.
Authentication
Customer secret key, required on every request. Validated natively by API Gateway; missing / invalid / revoked → 403.
Path parameters
Response headers
Credits consumed by this call (reserved estimate on a 202; actual once settled).
Response
Size of the stored result in bytes (present alongside resultUrl).
ISO-8601 expiry of resultUrl (clamped to the job’s own retention).
Set to “s3” when the result was too large to return inline; in that case
result is omitted and resultUrl holds a short-lived presigned download
URL instead. Fetch the URL directly; re-poll for a fresh one after it
expires (see resultExpiresAt).
Short-lived presigned GET URL for a large result (present iff resultStorage === “s3”).