GET/api/v1/jobs/{job_id}

Job Status

Check on a job until it succeeds or fails.

Every job endpoint answers straight away with an id and a status_url. Poll that URL until status is succeeded or failed, or pass a callback_url when you start the job and skip polling.

  • Poll status_urlIt stays right if a route moves
  • Outputs expireDownload and keep your own copy
  • Same shape as webhooksOne parser for both
curl https://api.kreatorsfactory.com/api/v1/jobs/{job_id} \  -H "Authorization: Bearer $KREATORSFACTORY_API_KEY"

How it works

Every job endpoint answers straight away with an id and a status_url. Poll that URL until status is succeeded or failed, or pass a callback_url when you start the job and skip polling.

Response fields

FieldTypeRequiredDescription
statusstringNoqueued, processing, succeeded or failed.
output_urlstring | nullNoA signed link that expires. Empty until the job succeeds.
charged_usdnumber | nullNoEmpty until billing settles, usually on the poll that first sees the finished job.
errorobject | nullNoA stable code and a message, on a failed job only.

Two things to know

charged_usd is empty until billing settles

Treat it as nullable. It fills in once the job has finished and been reconciled, usually on the poll that first sees the finished state.

Output links expire

Results are signed links with a limited life. Download the output and keep it on your own storage rather than linking to ours.

Response

Response200
{  "id": "7f3c2a9e-…",  "status": "succeeded",  "output_url": "https://…",  "charged_usd": 0.12,  "error": null}

Money is in US dollars. Times are ISO 8601, in UTC.

Errors

Every error arrives as {"error": {"code", "message"}}. Branch on code; the message may change. All errors.

HTTPCodeWhat it means
401unauthorizedMissing, unknown or revoked key.
404not_foundNo such job, or it isn't yours.

These arrive inside error on a job that finished as failed, not as an HTTP status. A failed job is refunded in full.

Code on the jobWhat it means
face_not_detectedNo face was found in the input.
unsupported_formatThe file couldn't be decoded once work started.
input_too_largeOver a size or duration limit found during processing.
content_rejectedThe input or the result failed a content check.
processing_failedThe render didn't complete.