Send bulk
Send a single template to up to 500 recipients across 50
destinations, each with their own variable map. Equivalent to AWS
SendBulkTemplatedEmail.
POST
/api/v1/partner/email/send-bulk
Request body
json
{
"from": "[email protected]",
"template_name": "newsletter-june",
"default_template_data": { "campaign": "june-2026" },
"destinations": [
{
"to": ["[email protected]"],
"replacement_data": { "first_name": "Alex" }
},
{
"to": ["[email protected]"],
"replacement_data": { "first_name": "Brett" }
}
],
"configuration_set_name": "marketing"
}Limits
- 50 destinations per request
- 50 recipients per destination
- 500 recipients total per request
For larger lists, paginate into multiple /send-bulk calls.
Response
json
{
"success": true,
"results": [
{
"destination": 0,
"recipient": "[email protected]",
"message_id": "550e8400-...",
"status": "queued"
},
{
"destination": 1,
"recipient": "[email protected]",
"message_id": "660e8400-...",
"status": "queued"
}
]
}results[].destination is the zero-based index into your
destinations[] array — so you can correlate per-recipient outcomes
back to the destination you submitted.
Variable resolution
For each destination:
- Start with
default_template_data - Merge
destinations[i].replacement_dataon top (per-destination overrides win) - Substitute
{{key}}tokens in subject + html_body + text_body
Per-destination 4xx behaviour
If one destination fails (e.g. recipient on suppression list):
- That destination gets
status: rejected+reason - Other destinations continue processing
If a 5xx fires (template-load failure, etc.):
- The entire bulk aborts
failed_atin the response indicates where we stopped- Already-processed destinations stay queued
cURL
bash
curl https://api.splashifypro.com/api/v1/partner/email/send-bulk \
-H "Authorization: Bearer $SPLASHIFY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "[email protected]",
"template_name": "newsletter",
"destinations": [
{"to": ["[email protected]"], "replacement_data": {"name": "A"}},
{"to": ["[email protected]"], "replacement_data": {"name": "B"}}
]
}'