Sume job webhook events: job.completed, job.failed, job.canceled
Sume sends only terminal job events: job.completed, job.failed and job.canceled. No progress events. Failed and canceled payloads carry status ERROR.

Sume sends terminal job events only: job.completed, job.failed and job.canceled. There are no progress or partial deliveries (read 2026-10-06 in the webhook docs).
What does the payload carry?
A completed event has event, request_id, job_id, status: "OK" and a payload with artifacts. Failed and canceled events use status: "ERROR" and an error object.
{
"event": "job.completed",
"job_id": "job_...",
"status": "OK",
"payload": { "artifacts": [{ "type": "image", "url": "https://media.sume.com/artifacts/..." }] }
}What should I do in practice?
Run webhooks use different event names.
- Branch on
event, not on guesses. - Store
job_idbefore returning 2xx. - Poll for progress if you need it.
Sources
Related posts
More in Developers
- Sume job webhook: request_id equals job_id, store one
In a Sume job webhook payload, request_id and job_id are the same value. Which to use as your dedupe key, and what else the payload carries.
- Sume jobs list: no next_cursor on the last page ends the loop
GET /v1/jobs returns up to 100 jobs newest first. Pass data.next_cursor back as starting_after, and stop when it is absent. Do not build a cursor yourself.
- Sume GET /v1/jobs: a misspelled filter returns 400, not all jobs
Sume rejects an unrecognized query parameter on GET /v1/jobs with 400 unknown_parameter, so a typo cannot return an unfiltered page. Valid filters listed.
- Sume MCP tool names: tools.list or tools_list, which one to call?
Use the underscore ids from tools_list, like generate_image. Sume also accepts dotted aliases, but tools_schema wants snake_case and clients may add a prefix.
Written by Sume