{
"id": "evt_6HbN4rTfKp2W",
"type": "job.partial",
"api_version": "2026-09-11",
"created": 1755300000,
"data": {
"job": {
"id": "job_3ZxK9pQr7TnW",
"object": "job",
"livemode": true,
"created": 1755300000,
"started_at": 1755300000,
"completed_at": 1755300000,
"model_version": "plate-reader@2026-08-27",
"credits": {
"reserved": 20,
"charged": 20
},
"result": {},
"error": {
"code": "model_inference_failed",
"message": "<string>"
},
"test_scenario": "low_confidence"
}
}
}A batch job completed with per image errors
Sent when at least one image failed. Successful and billable failed items have already been charged; the unused reservation has been released.
{
"id": "evt_6HbN4rTfKp2W",
"type": "job.partial",
"api_version": "2026-09-11",
"created": 1755300000,
"data": {
"job": {
"id": "job_3ZxK9pQr7TnW",
"object": "job",
"livemode": true,
"created": 1755300000,
"started_at": 1755300000,
"completed_at": 1755300000,
"model_version": "plate-reader@2026-08-27",
"credits": {
"reserved": 20,
"charged": 20
},
"result": {},
"error": {
"code": "model_inference_failed",
"message": "<string>"
},
"test_scenario": "low_confidence"
}
}
}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.partial"Contract version the payload was serialised with.
"2026-09-11"
Epoch seconds, UTC.
1755300000
Show child attributes
Show child attributes
Response
Acknowledged. Any 2xx stops the retry schedule.