# Batch responses now list rejections individually

> One bad number no longer fails a batch of a thousand. Rejected items are returned with their error while the rest is queued.

Published 2026-07-30 by SMSMeteor API team.

Since launch, the batch endpoint validated every item before accepting anything. That made the contract simple, all or nothing, and made real lists annoying: one number with a typo returned a 400 for the whole request, and the fix was a loop on the client side that we would rather have written ourselves.


The behaviour has changed. A batch is still rejected as a whole when the request itself is malformed. But when individual messages fail validation, an invalid number, an unsupported destination, a text over six parts, they are listed in the response with their error, and the valid ones are queued. The response reports `accepted` and `rejected` counts and the total price of what was accepted.



## Nothing to change if you relied on the old behaviour

Send the header `X-Batch-Mode: strict` to keep the previous all-or-nothing contract. We will keep it indefinitely; it is a header, not a version.



## Why it matters

Lists are dirty. The importer in the panel has always cleaned them before sending and reported what it removed; the API now does the same in one round trip, and the report groups rejected items with the campaign so you can fix the source. Rejected messages are, as always, never billed.

---
Source: https://smsmeteor.com/blog/batch-rejections-listed-individually (HTML). Generated by SMSMeteor from the same data as the page. Summary of the whole site: https://smsmeteor.com/llms.txt
