{
"id": "evt_8QsL1wYxRb5D",
"type": "job.failed",
"api_version": "2026-09-11",
"livemode": true,
"is_staging": false,
"created": 1755300180,
"data": {
"job": {
"id": "job_5MtV2cHy8LrQ",
"object": "job",
"endpoint": "damage.detect",
"status": "failed",
"livemode": true,
"is_staging": false,
"created": 1755300150,
"started_at": 1755300151,
"completed_at": 1755300180,
"model_version": "damage-detection@2026-07-15",
"credits": {
"reserved": 2,
"charged": 0
},
"result": null,
"error": {
"type": "processing_error",
"code": "model_inference_failed",
"message": "The model could not process the submitted image."
}
}
}
}A job failed
Sent when a job reaches failed (model or infrastructure error) or expired (never
picked up). data.job.result is null and data.job.error explains why; the credit balance
reservation has already been released, so credits.charged is 0.
{
"id": "evt_8QsL1wYxRb5D",
"type": "job.failed",
"api_version": "2026-09-11",
"livemode": true,
"is_staging": false,
"created": 1755300180,
"data": {
"job": {
"id": "job_5MtV2cHy8LrQ",
"object": "job",
"endpoint": "damage.detect",
"status": "failed",
"livemode": true,
"is_staging": false,
"created": 1755300150,
"started_at": 1755300151,
"completed_at": 1755300180,
"model_version": "damage-detection@2026-07-15",
"credits": {
"reserved": 2,
"charged": 0
},
"result": null,
"error": {
"type": "processing_error",
"code": "model_inference_failed",
"message": "The model could not process the submitted image."
}
}
}
}Headers
t=<epoch>,v1=<hex hmac-sha256 of "<t>.<raw body>">, keyed with the endpoint secret. Compare in constant time and reject a timestamp older than five minutes.
Event identifier, stable across retries — the key to deduplicate on.
^evt_[1-9A-HJ-NP-Za-km-z]{8,32}$1 for the first delivery, incremented on every retry.
x >= 1Body
The envelope of every outgoing webhook. api_version pins the payload shape — it changes only when you upgrade your organisation's API version, never silently.
Stable across retries. Deduplicate on it.
^evt_[1-9A-HJ-NP-Za-km-z]{8,32}$"evt_6HbN4rTfKp2W"
An event your endpoint can subscribe to.
job.succeeded, job.partial, job.failed "job.failed"Contract version the payload was serialised with.
"2026-09-11"
Epoch seconds, UTC.
1755300000
Show child attributes
Show child attributes
Staging classification. Absent on events recorded before staging was introduced; treat absence as false.
Response
Acknowledged. Any 2xx stops the retry schedule.