Claude batch results wait for all; Sume webhooks fire per video

Anthropic Message Batches give results once every request has finished (or after 24 hours). Sume can notify per finished run. Which fits a holiday launch.

5 min readSume
All posts

When can you start using the first result of a Claude batch? On Anthropic's batch page (read 2026-10-04), results are accessible when all requests in the batch have completed or after 24 hours, whichever comes first, and most batches finish within an hour. A Sume bulk queue works in the opposite direction: each child is its own run, and each child can register its own terminal webhook, so the first finished video reaches you while the others are still rendering.

For a holiday launch that is the difference between publishing the first ten clips this afternoon and waiting for the slowest of a hundred.

What a per-child webhook gives you

The run webhook docs describe one event, format.run.terminal, delivered once per run when it reaches completed or failed. Its payload is the run receipt, and request_id equals the run id, which is your dedupe key. Set communication.webhook_url on each item of the bulk create; the queue object has no webhook of its own.

Delivery is retried up to 10 times with exponential backoff, so a receiver must answer quickly and be safe to call twice. Verify the HMAC signature on every request before you trust the body.

A publishing loop that does not wait

Make the receiver the start of the publish step. When a format.run.terminal event arrives with outcome: ok, read the run's payload.output and primary_output_url, write the record, and answer with a 2xx. When the outcome is error or degraded, store the error code and leave the product page on its previous video.

Do the slow work off the request path. The webhook has a 10-second timeout and no redirects are followed, so queue the publish and respond first. For a batch API with all-or-nothing availability this pattern does not apply, which is why it is the more natural fit for work that publishes item by item.

Keep a slow poll as the safety net. The queue's completed status is the only signal that every item is terminal.

Same job, two timelines

When results become readable, Anthropic page and Sume docs read 2026-10-04
Anthropic Message BatchesSume bulk run with item webhooks
First result readableWhen all requests complete, or after 24 hoursWhen the first child run is terminal
NotificationPoll the batchWebhook per child, plus polling the queue
Unit of failureResult type per requestRun status per item
Queue-level eventBatch endsNone; count terminal deliveries yourself

Choose by what you do with the first result

If every result feeds one step that needs the whole set, such as a contact sheet for approval, the all-at-once shape is fine and the batch discount is a bonus. If each result is published independently, per-item delivery is better: a product page can go live the moment its clip lands, and a failed item does not delay the other 99.

Whichever you use, keep polling as a backstop. The webhook docs say a receipt over 1 MiB arrives with a null payload and a result_url to fetch, and canceled or skipped runs never deliver, so a queue-level counter that waits only for deliveries can wait forever.

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume