Skip to main content
Queues many messages in one call. The response confirms acceptance only — per-message results arrive on your errback URL.
messageCount is how many the batch expanded to, not how many succeeded. There are no per-message ids in this response and no per-message results — see Batch callbacks.

Fields

Other keys in batch_config are ignored, not refused. A misspelled errback_url costs you every per-message result while the batch still returns 200.This is the one place on the API where a typo does not produce a 400. Verify it by sending a batch containing one message you know will be refused.

schedule_at

Exactly two forms: Anything else is 412 Got unknown format. A date in the past is refused, not sent immediately.

Errors particular to this endpoint

The cap is 10 000 after expansion. 100 messages each with 200 recipients is 20 000, and refused.

Pacing and durability

Batches pace themselves against the router queue’s depth, pausing above a high-water mark — you do not need to throttle your own submission of a batch.
Scheduled batches survive a restart only with a RabbitMQ broker configured, and not even then while the broker connection is degraded. If durable scheduling matters, confirm with your provider which queue provider they run.

There is no batch status endpoint

Not in FireFlo and not in Jasmin. The batchId correlates the callbacks you receive; there is nothing to poll.

Batches

Worked examples and the pacing story.

Batch callbacks

Where per-message results actually arrive.