Skip to main content

Get Campaign

Retrieve a single campaign, including delivery, engagement, and attribution stats.

Endpointโ€‹

GET /v1/campaigns/{id}

Authenticationโ€‹

Requires an API key with the campaigns:read scope.

Path Parametersโ€‹

ParameterTypeDescription
idintegerThe campaign ID

Response (200 OK)โ€‹

{
"data": {
"id": 42,
"name": "Summer Kayak Promo",
"description": "Promote summer kayak rentals",
"kind": "one_off",
"channel": "email",
"status": "sent",
"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": "2026-07-05T10:00:00+00:00",
"total_recipients": 250,
"total_sent": 248,
"promo_codes": [
{
"id": 7,
"code": "SUMMER25",
"name": "Summer Sale"
}
],
"created_at": "2026-07-01T09:00:00+00:00",
"updated_at": "2026-07-05T10:05:00+00:00",
"stats": {
"total_recipients": 250,
"total_sent": 248,
"pending": 0,
"sent": 245,
"failed": 3,
"skipped": 2,
"bounced": 1,
"complained": 0,
"opened": 120,
"clicked": 34,
"attributed_bookings": 12,
"attributed_revenue": 1840.00
}
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-07-20T12:00:00+00:00"
}
}

Stats Fieldsโ€‹

FieldTypeDescription
total_recipientsintegerRecipients resolved for the campaign
total_sentintegerEmails successfully sent
pendingintegerRecipients not yet processed
sentintegerRecipients the email was sent to
failedintegerRecipients whose delivery failed
skippedintegerRecipients deliberately not emailed (e.g., marketing opt-outs)
bouncedintegerRecipients whose inbox rejected the email for good. They no longer get your marketing email
complainedintegerRecipients who marked the email as spam. They no longer get your marketing email
openedintegerRecipients who opened the email
clickedintegerRecipients who clicked a link
attributed_bookingsintegerBookings attributed to this campaign
attributed_revenuefloatTotal of attributed bookings, in your currency

Errorsโ€‹

StatusCodeDescription
401authentication_requiredNo API key provided
401invalid_api_keyInvalid API key
403insufficient_scopeAPI key lacks campaigns:read scope
404resource_not_foundCampaign not found

Example Requestโ€‹

curl -X GET "https://app.equipdash.com/api/v1/campaigns/42" \
-H "Authorization: Bearer eqd_live_abc123xyz789..."