GET/v1/predict/{id}0 credits
Get prediction
Job status. Id is pred_ plus 32 hex characters — returned by Get upload link. Another key’s id, or a job older than 24 hours, is 404.
After the link, status is awaiting_upload — no credits yet. After Upload the clip, GET again: queued or running means the file was consumed and 20 credits are reserved. If it is still awaiting_upload, the file may have landed without a reserve (credit miss, busy, daily cap) — call Retry start. Keep polling while awaiting_upload, queued, or running. Stop on succeeded or failed. Polling stays free even if a webhook is configured. The webhook body is this same JSON.
Needs predict:write on the key. This is a permission on the key, not a request header. Missing it returns 403 api_not_enabled.
Failed
{
"object": "prediction",
"id": "pred_7b3e0c1d2e3f4a5b6c7d8e9f0a1b2c3d",
"status": "failed",
"created_at": "2026-09-15T14:02:11.000Z",
"completed_at": "2026-09-15T14:02:24.000Z",
"input": { "duration_sec": 18 },
"result": null,
"error": { "type": "system_error", "message": "The job could not be completed." }
}
Request parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id |
path | string | Required | Public id, pred_ plus 32 hex characters. |
Response
{
"object": "prediction",
"id": "pred_7b3e0c1d2e3f4a5b6c7d8e9f0a1b2c3d",
"status": "succeeded",
"created_at": "2026-09-15T14:02:11.000Z",
"completed_at": "2026-09-15T14:02:24.000Z",
"input": { "duration_sec": 18 },
"result": {
"band": "high",
"hook_duration_sec": 2.1,
"category": { "slug": "education" }
},
"error": null
}
Response fields
| Name | Type | Required | Description |
|---|---|---|---|
object |
string | Required | Always prediction. |
id |
string | Required | Public id, pred_ plus 32 hex characters. |
status |
string | Required | One of awaiting_upload, queued, running, succeeded, failed. |
created_at |
string | Required | When the job was created. |
completed_at |
string | Nullable | Set when the job finishes. null while awaiting upload, queued, or running. |
input |
object | Nullable | Echo of accepted input, or null. |
input.duration_sec |
number | Nullable | Present when input is set. |
result |
object | Nullable | Score payload on success. null until then and on failure. |
result.band |
string | Optional | Present when result is set. |
result.hook_duration_sec |
number | Nullable | Present when result is set. |
result.category |
object | Nullable | Present when result is set. May itself be null. |
result.category.slug |
string | Optional | Present when result.category is set. |
error |
object | Nullable | Set on failure. null otherwise. |
error.type |
string | Optional | When error is set: unsupported, unsafe, or system_error. |
error.message |
string | Optional | Present when error is set. English text. |