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โ
| Parameter | Type | Description |
|---|---|---|
id | integer | The 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โ
| Field | Type | Description |
|---|---|---|
total_recipients | integer | Recipients resolved for the campaign |
total_sent | integer | Emails successfully sent |
pending | integer | Recipients not yet processed |
sent | integer | Recipients the email was sent to |
failed | integer | Recipients whose delivery failed |
skipped | integer | Recipients deliberately not emailed (e.g., marketing opt-outs) |
bounced | integer | Recipients whose inbox rejected the email for good. They no longer get your marketing email |
complained | integer | Recipients who marked the email as spam. They no longer get your marketing email |
opened | integer | Recipients who opened the email |
clicked | integer | Recipients who clicked a link |
attributed_bookings | integer | Bookings attributed to this campaign |
attributed_revenue | float | Total of attributed bookings, in your currency |
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 401 | invalid_api_key | Invalid API key |
| 403 | insufficient_scope | API key lacks campaigns:read scope |
| 404 | resource_not_found | Campaign not found |
Example Requestโ
curl -X GET "https://app.equipdash.com/api/v1/campaigns/42" \
-H "Authorization: Bearer eqd_live_abc123xyz789..."