Webhook or polling for Sume Format runs, and the 1 MiB payload rule

Pick between the signed terminal webhook and polling status_url for Sume Format runs: delivery limits, dedupe keys, and what a payload over 1 MiB looks like.

5 min readSume
All posts

Use the webhook when your service is reachable and you want one push per run; poll status_url when it is not, or as a safety net. Each run sends one signed POST of type format.run.terminal, with status OK or ERROR and outcome ok, degraded or error. Cancel and skipped runs do not deliver.

A receipt over 1 MiB is sent as payload: null with payload_too_large and a result_url, so your handler must be able to fetch.

Webhook versus poll

Delivery options per Sume docs (read 2026-10-03)
AspectWebhookPoll status_url
DirectionSume calls youYou call Sume
RetriesUp to 10 attemptsYours
Cancel and skippedNever deliveredVisible as terminal status
Large resultpayload null, use result_urlRead result_url
Deduperequest_id or run_idNot needed

Run both

Webhook as the fast path, one poll at expires_at as the backstop. Both paths are idempotent reads of the same terminal state, so handling the first one and ignoring the second is safe.

Sources

Related posts

More in Formats

All Formats posts

Written by Sume