Get one campaign's analytics
https://api.norreach.app/v1/analytics/campaigns/{id}One campaign's (or automation's) numbers: where its contacts stand now (in progress, paused, completed, replied, meeting booked), and its messages sent, delivered, opened, clicked and replied to and its AI calls over the range. Over from–to (YYYY-MM-DD, UTC; default the last 30 days, at most 366 days). Another workspace's campaign is 404. Read-only.
curl -X GET "https://api.norreach.app/v1/analytics/campaigns/{id}" \
-H "Authorization: Bearer $NORREACH_API_KEY"{
"object": "campaign_analytics",
"campaign_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"name": "Clinics — winter staffing",
"kind": "campaign",
"status": "active",
"from": "2026-10-07",
"to": "2026-11-05",
"enrollments": {
"total": 240,
"in_progress": 150,
"paused": 6,
"completed": 60,
"replied": 19,
"meetings_booked": 5
},
"messages": {
"sent": 610,
"delivered": 598,
"opened": 0,
"clicked": 0,
"replies": 22
},
"calls": {
"total": 30,
"connected": 11
}
}Authorizations
Bearer authentication: send Authorization: Bearer <key>, with an API key or an OAuth access token. The key needs the scope analytics:read. API keys and scopes
Path parameters
An id (UUID).
Query parameters
First day (YYYY-MM-DD, UTC; default 29 days before to).
Last day (YYYY-MM-DD, UTC; default today).
Response
200application/json— Get one campaign's analytics
An id (UUID).
campaignautomationFirst day (YYYY-MM-DD, UTC).
Last day (YYYY-MM-DD, UTC).
Where the campaign's contacts stand now (not limited to the range).
Show child attributesHide child attributes
Messages of this campaign in the range.
Show child attributesHide child attributes
AI calls of this campaign in the range.
Show child attributesHide child attributes
Errors
Errors are application/problem+json with a stable code.
| Status | Code | Meaning |
|---|---|---|
| 400 | bad_request | The request couldn't be read. |
| 400 | unknown_field | The request has a field this operation doesn't know. |
| 401 | unauthorized | A valid API key is required. |
| 403 | insufficient_scope | This API key doesn't have the scope this operation needs. |
| 403 | feature_not_enabled | The API isn't switched on for this workspace. |
| 404 | not_found | That doesn't exist. |
| 422 | validation_failed | The request has invalid fields. |
| 429 | rate_limited | Too many requests. Slow down and try again. |
| 500 | server_error | Something went wrong on our side. |
| 503 | unavailable | The API isn't available right now. Try again shortly. |