Skip to navigation

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

x-api-keystring

Customer secret key, required on every request. Validated natively by API Gateway; missing / invalid / revoked → 403.

Path parameters

idstringRequired>=1 character

Response headers

X-Kinetk-Credits-Useddouble

Credits consumed by this call (reserved estimate on a 202; actual once settled).

X-Kinetk-Credits-Remainingdouble
Account credit balance remaining after this call.

Response

Successful response
jobIdstring
kindenum
Allowed values:
statusenum
Allowed values:
submittedAtdouble
completedAtdoubleOptional
errorstringOptional
resultobjectOptional
resultBytesdoubleOptional

Size of the stored result in bytes (present alongside resultUrl).

resultExpiresAtstringOptional

ISO-8601 expiry of resultUrl (clamped to the job’s own retention).

resultStorageenumOptional

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).

Allowed values:
resultUrlstringOptional

Short-lived presigned GET URL for a large result (present iff resultStorage === “s3”).

startedAtdoubleOptional