Webhooks
Receive HTTP POST callbacks when your job status changes. Configure globally in account settings or per-request via thewebhook_url parameter.
Configuration
Addwebhook_url to any generation or analysis request:
Security Headers
Every webhook request includes these headers for verification:| Header | Description |
|---|---|
X-ModelBeam-Signature | HMAC-SHA256 signature: sha256=<hex> |
X-ModelBeam-Timestamp | Unix timestamp when the webhook was sent |
X-ModelBeam-Event | Event type: job.processing, job.completed, or job.failed |
X-ModelBeam-Delivery-Id | Unique delivery UUID (use for idempotency) |
Signature Verification
Verify webhook authenticity by computing the HMAC-SHA256 signature:Webhook Payloads
All payloads share a common envelope:job.processing
Sent when the job starts processing:job.completed
Sent when the job finishes successfully:job.failed
Sent when the job encounters an error:Error Codes
| Code | Description |
|---|---|
WORKER_TIMEOUT | Worker timed out processing the job |
PROCESSING_ERROR | Error during inference processing |
AGE_RESTRICTED | Content flagged as age-restricted |
CONTEXT_LENGTH_EXCEEDED | Input exceeds model context length |
INVALID_INPUT | Invalid input parameters |
UNKNOWN_ERROR | Unclassified error |
Retry Policy
- ModelBeam retries failed webhook deliveries with exponential backoff
- Up to 10 attempts over approximately 24 hours
- Webhooks are auto-disabled after 10 consecutive failures
Requirements
- Respond with a 2xx status code within 10 seconds
- No HTTP redirects
- HTTPS only