Send a batch of emails
Queue up to 100 emails in a single request. The body is a JSON array of email objects, each using the same shape as the single-send endpoint. Validation runs on every item before any are queued — a malformed item rejects the whole batch with 400. Suppressed recipients (to, cc and bcc) are dropped per row; a row left with no deliverable To recipient is recorded with status "failed". The batch is accepted whole or not at all: every email is recorded and queued, or none is, so there is no partial success to reconcile. A 4xx means nothing was queued. After a 5xx or a lost response, retry with the same Idempotency-Key: you get the first answer if the batch was accepted, or a fresh attempt if it was not.
Request
- Base URL: https://smtpfa.st/api
- URL: https://smtpfa.st/api/v1/emails/batch
- Auth: HTTP bearer
Headers
A unique key for the whole batch; up to 255 characters are used. Repeating a request with the same key and body within 24 hours returns the first result instead of sending again. The same key with a different body is a 409, as is a retry while the first request with the key is still running.
Request body
Example request
[
{
"from": "hello@yourapp.com",
"to": "user1@example.com",
"subject": "Welcome!",
"html": "<h1>Hello User 1!</h1>"
},
{
"from": "hello@yourapp.com",
"to": [
"user2@example.com",
"user3@example.com"
],
"subject": "Weekly digest",
"html": "<h1>Your week</h1>",
"scheduled_at": "2026-04-10T14:00:00Z"
}
]Response
Batch accepted
Example response
{
"batch_id": "batch_abc123",
"count": 2,
"emails": [
{
"id": "email_abc123",
"status": "queued"
}
],
"data": [
{
"id": "email_abc123"
}
]
}Changes
No recorded changes to this operation across all 1 revision of this API.