Re-send to non-openers
/v1/campaigns/{id}/resend-non-openersSecret key — sk_… or sk_test_… · Base URL https://api.volanea.com
Creates a follow-up draft campaign targeting recipients who never opened, with an optional new subject.
Path parameters
idstringrequiredCampaign id.
Body
Optional · application/json
subjectstring
Response
201 · Campaign
campaignIdstringrequiredprojectIdstringnamestringrequiredsubjectstringrequiredpreviewTextstring | nullPreheader — the preview line inboxes show after the subject. Injected as a hidden block at the top of the body at send time.
bodystringrequiredbodyBlocksstring | array | object | nullThe visual editor's design `body` was compiled from — a JSON string of the GrapesJS project (or a legacy block array/object), stored so the editor can reopen it. Ignored when sending — only `body` is delivered.
fromNamestring | nullfromEmailemailrequiredreplyTostring | nullBecomes the Reply-To header when set.
statusenumrequireddraftscheduledsendingsentcancelledaudienceenumrequiredallsegmentfiltersegmentIdstring | nullfilterobject | nullabSubjectBstring | nullabSamplePctinteger | nullabDecideAtstring | nullabWinnerenumabnullscheduledForstring | nullsentAtstring | nulltotalRecipientsintegerdeliveredintegeropenedintegerclickedintegerbouncedintegercomplainedintegerunsubscribedintegercreatedAtdate-timerequired
Errors
Every failure returns the standard envelope — branch on `code`, never on the wording of `error`.
401Missing or invalid API key.404Not found.422Request validation failed (code `validation_error`, 422).
Request
curl https://api.volanea.com/v1/campaigns/id_123/resend-non-openers \
-X POST \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-d '{
"subject": "Your order shipped"
}'Response
201 · application/json
{
"success": true,
"data": {
"campaignId": "cmp_2b8e",
"projectId": "<projectId>",
"name": "Welcome",
"subject": "Your order shipped",
"previewText": "<previewText>",
"body": "<p>On its way, {{firstName}}.</p>",
"bodyBlocks": "<bodyBlocks>",
"fromName": "Acme",
"fromEmail": "hello@yourdomain.com",
"replyTo": "support@yourdomain.com",
"status": "draft",
"audience": "all",
"segmentId": "seg_4a71",
"filter": {
"logic": "and",
"groups": [
{
"filters": null
}
]
},
"abSubjectB": "<abSubjectB>",
"abSamplePct": 1,
"abDecideAt": "2026-01-01T09:00:00.000Z",
"abWinner": "a",
"scheduledFor": "2026-01-01T09:00:00Z",
"sentAt": "2026-01-01T09:00:00.000Z",
"totalRecipients": 1,
"delivered": 1,
"opened": 1,
"clicked": 1,
"bounced": 1,
"complained": 1,
"unsubscribed": 1,
"createdAt": "2026-01-01T09:00:00.000Z"
}
}92 endpoints · OpenAPI document