Skip to main content

Send Campaign

Send a campaign immediately. The recipient list is built from the campaign's audience, the campaign moves to sending, and emails are delivered asynchronously by a background job.

POST /v1/campaigns/{id}/send

Authenticationโ€‹

Requires a valid API key with campaigns:write scope.

Path Parametersโ€‹

ParameterTypeDescription
idintegerThe campaign ID

Prerequisitesโ€‹

  • The campaign must be in draft or scheduled status
  • email_subject and email_body must be set
  • The audience must resolve to at least one recipient

Request Exampleโ€‹

curl -X POST "https://app.equipdash.com/api/v1/campaigns/42/send" \
-H "Authorization: Bearer eqd_live_your_api_key"

Response (202 Accepted)โ€‹

Returns the campaign with status sending and the resolved total_recipients. Poll Get Campaign to track progress via stats.

{
"data": {
"id": 42,
"name": "Summer Kayak Promo",
"description": "Promote summer kayak rentals",
"kind": "one_off",
"channel": "email",
"status": "sending",
"audience_type": "filter",
"audience_filter": {
"v": 2,
"preset": "recent"
},
"email_subject": "Summer is here, {customer_name}!",
"email_body": "<p>Hi {customer_name}, book your kayak now.</p>",
"template_key": "promo_blast",
"cta_text": "Book now",
"cta_url": "https://example.com/book",
"scheduled_at": null,
"sent_at": null,
"total_recipients": 250,
"total_sent": 0,
"created_at": "2026-07-01T09:00:00+00:00",
"updated_at": "2026-07-20T10:00:00+00:00"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-07-20T10:00:00+00:00"
}
}

Error Responsesโ€‹

StatusCodeDescription
403insufficient_scopeAPI key lacks campaigns:write scope
404resource_not_foundCampaign not found
422validation_erroremail_subject or email_body is missing
422invalid_stateOnly draft or scheduled campaigns can be sent
422invalid_stateNo recipients found for the selected audience