GET /api/v1/campaigns/{campaignId}
The campaign, plus three computed fields:
| Field | Description |
|---|---|
recipientCount | How many subscribed contacts the target reaches right now — computed live, never stored |
progress | {total, sent, failed, pending} of the actual sends |
sendingEnabled | false when mass sending is switched off — nothing will leave, whatever you do |
recipientCount counts subscribers only: unsubscribed, bounced and complained contacts are already
out. It is the honest answer to "how many people will get this", and it is also how you catch a
target that matches nobody before sending.
Authorization
| Role in the organization | This endpoint |
|---|---|
OWNER | Allowed |
ADMIN | Allowed |
MEMBER | Allowed |
Example
bash
curl -H "x-api-key: $AGENTMAIL_API_KEY" \
"https://www.agentsmail.io/api/v1/campaigns/$CAMPAIGN_ID"Response
200 OK— the call succeeded.401 Unauthorized— missing or invalid key, or its owner left the organization.404 Not Found— no such resource, or it belongs to another organization. The API never confirms that an id exists to a caller who has no right to it.429 Too Many Requests— over 120 requests in a minute for this key.
Response fields
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates if the operation was successful |
data.id | string | Unique identifier for the campaign |
data.name | string | Its internal name |
data.subject | string | The subject recipients see |
data.status | string | draft, scheduled, sending, sent, failed |
data.listId | string | The list it targets |
data.tagId | string | null |
data.segmentId | string | null |
data.scheduledAt | string | null |
data.sentAt | string | null |
data.createdAt | string | ISO creation date |
data.updatedAt | string | ISO date of the last change |
data.recipientCount | number | How many subscribers the target hits right now — live, never stored |
data.progress | object | {total, sent, failed, pending, sending, lastSentAt} |
data.sendingEnabled | boolean | Whether sending is currently enabled across AgentsMail |
Example response
json
{
"success": true,
"data": {
"id": "4d19c0a2",
"name": "Newsletter",
"subject": "August news",
"status": "subscribed",
"listId": "0b7c51e8",
"tagId": "7c2ef4b1",
"segmentId": "3f81aa2c",
"scheduledAt": "2026-08-23T10:22:05.000Z",
"sentAt": "2026-08-23T10:22:05.000Z",
"createdAt": "2026-08-23T10:22:05.000Z",
"updatedAt": "2026-08-23T10:22:05.000Z",
"recipientCount": 12,
"progress": {
"total": 1240,
"sent": 1240,
"failed": 0,
"pending": 0,
"sending": 0,
"lastSentAt": "2026-08-23T10:31:44.000Z"
},
"sendingEnabled": true
}
}