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. Typical end-to-end run: 5–20 s.

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
statusenum
submittedAtdouble
completedAtdouble
errorstring
resultobject
resultBytesdouble

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

resultExpiresAtstring

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

resultStorageenum

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

resultUrlstring

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

startedAtdouble