canonical: https://jentic.com/apis/campaignmonitor.com/campaignmonitor

# Campaign Monitor API

Jentic publishes the only available OpenAPI specification for Campaign Monitor API, keeping it validated and agent-ready. The Campaign Monitor REST API manages email-marketing accounts, client workspaces, subscriber lists, campaigns, segments, templates, transactional sends, journeys, and webhooks. Seventy-two endpoints cover the full lifecycle from creating a draft campaign through sending, retrieving recipient bounces, and exporting reporting data, with multi-client support that suits agencies running campaigns on behalf of multiple brands.

## For AI agents

Manage email-marketing clients, lists, subscribers, campaigns, segments, templates, journeys, and transactional sends through a multi-tenant agency-friendly API.

## Scope

Does not handle SMS, push notifications, paid advertising, or CRM contact management - use for email-marketing campaign and subscriber operations only.

## Capabilities

- Create and send draft email campaigns from `/campaigns/{clientid}.json` and `/campaigns/{campaignid}/send.json`
- Manage subscriber lists, segments, and webhooks per client across an agency portfolio
- Retrieve recipient activity and bounce reports for sent campaigns via `/campaigns/{campaignid}/recipients.json` and /bounces.json
- Onboard new client workspaces with primary contacts and billing details via /clients.json and /primarycontact.json
- Suppress and unsuppress email addresses at the client level to honour unsubscribes
- Send transactional and template-based email through the Transactional and Templates resources
- Send campaign previews to test addresses before broadcast via `/campaigns/{campaignid}/sendpreview.json`

## Use cases

### Agency Multi-Client Campaign Management

Marketing agencies running campaigns on behalf of many brands need a single API surface to create client workspaces, manage their lists, and dispatch campaigns. Campaign Monitor's client-scoped routes (/clients.json, `/clients/{clientid}/lists.json`, `/campaigns/{clientid}.json`) keep each brand's data isolated while letting the agency operate centrally.

Example prompt: Call POST /clients.json to onboard 'Acme Corp', create a list under that client via the Lists endpoints, then POST `/campaigns/{clientid}.json` to draft a launch announcement.

### Automated Campaign Send and Reporting

Marketing-ops teams want to schedule a campaign, broadcast it, and feed bounce and engagement data back into a CRM. The Campaign Monitor API exposes `/campaigns/{campaignid}/send.json` for dispatch and `/campaigns/{campaignid}/recipients.json` plus /bounces.json for downstream reporting in a single integration.

Example prompt: POST `/campaigns/{campaignid}/send.json` to dispatch a campaign, then poll `/campaigns/{campaignid}/bounces.json` hourly and write each bounce to the CRM contact record.

### Subscriber Hygiene and Compliance

Compliance workflows need to suppress unsubscribed or complained addresses across all of a client's lists. `/clients/{clientid}/suppress.json` adds addresses to the client-wide suppression list and /unsuppress.json reverses the action when a user re-opts in, helping keep deliverability scores high.

Example prompt: POST `/clients/{clientid}/suppress.json` with the email address from a complaint webhook to block future sends to that address.

### AI Agent Email Workflows via Jentic

Through Jentic, an agent searches for 'send an email campaign', loads the input schema for `/campaigns/{campaignid}/send.json`, and executes the dispatch without managing Basic Auth or OAuth tokens directly. Jentic's vault stores the API key or OAuth token so it never enters the agent's prompt context.

Example prompt: Use the Jentic SDK to search 'send an email campaign', load the `/campaigns/{campaignid}/send.json` operation, and execute it with the campaign ID returned from a draft creation step.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/clients.json` | Create a client workspace |
| POST | `/campaigns/{clientid}.json` | Create a draft campaign for a client |
| POST | `/campaigns/{campaignid}/send.json` | Send a draft campaign |
| GET | `/campaigns/{campaignid}/recipients.json` | List campaign recipients |
| GET | `/campaigns/{campaignid}/bounces.json` | List campaign bounces |
| GET | `/clients/{clientid}/lists.json` | List subscriber lists for a client |
| POST | `/clients/{clientid}/suppress.json` | Suppress email addresses for a client |

## Key resources

- **Account** — Manage administrators, billing details, system metadata, and primary contact
- **Clients** — Create and manage client workspaces with their lists, segments, and campaigns
- **Campaigns** — Draft, send, preview, and report on email campaigns
- **Lists** — Create and manage subscriber lists
- **Subscribers** — Add, update, and unsubscribe contacts
- **Segments** — Define audience segments for targeted sends
- **Templates** — Manage reusable email templates
- **Transactional** — Send transactional emails outside of broadcast campaigns
- **Journeys** — Manage automated email journey workflows

## Why Jentic

- **Setup:** Wiring the Campaign Monitor API by hand means choosing between HTTP Basic keys and OAuth 2.0, then finding the right client, campaign, and list routes across 72 operations. Through Jentic you install once, import Campaign Monitor from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** Campaign Monitor puts the client id in the URL path (`/clients/{clientid}/lists.json`), so a rule can pin your agent to one client: it can manage that client's campaigns and lists and nothing else. You choose the operations it may call, so sending a campaign or suppressing subscribers is not included unless you add it.
- **Credential handling:** Your Campaign Monitor key or OAuth token is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send an email campaign' or 'list a client's subscriber lists', and Jentic returns the matching Campaign Monitor operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Mailchimp Marketing API** — Mailchimp offers a broader marketing platform with audiences, automations, and e-commerce, where Campaign Monitor focuses on multi-client agency-style campaign management.
- **SendGrid Mail Send API** — SendGrid Mail focuses on high-volume transactional email delivery, where Campaign Monitor's strength is marketing campaign orchestration and reporting.
- **Constant Contact API** — Constant Contact targets small-business email marketing, where Campaign Monitor offers stronger agency multi-client features.

## FAQ

### Why is there no official OpenAPI spec for Campaign Monitor API?

Campaign Monitor does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Campaign Monitor API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Campaign Monitor API use?

It supports HTTP Basic auth (API key as username, any value as password) or OAuth 2.0 authorization-code flow against https://api.createsend.com/oauth. Through Jentic, either credential type is held in your Jentic One instance and injected at execution time so it never enters the agent's prompt context.

### Can I send a campaign through Jentic?

Yes. Search 'send an email campaign' through the Jentic SDK. Jentic returns POST `/campaigns/{campaignid}/send.json` with its input schema. Provide the campaign ID from a prior draft creation and execute the operation to dispatch the campaign.

### How do I retrieve the bounce report for a sent campaign?

Call GET `/campaigns/{campaignid}/bounces.json` with the campaign ID. The response paginates through hard and soft bounces, which you can then write to a CRM or suppression list using POST `/clients/{clientid}/suppress.json.`

### Does the API support multiple client workspaces under one agency account?

Yes. Use POST /clients.json to create a client workspace and the `/clients/{clientid}`/* routes (lists, segments, campaigns, suppression) to manage that client's data in isolation while the agency operates from a single account.

### Are transactional emails available through this API?

Yes. The Transactional resource exposes endpoints for sending transactional messages outside of broadcast campaigns. Use them when an email is triggered by a user action rather than scheduled to a list.

### Can I limit what my agent is allowed to do with the Campaign Monitor API?

Yes. Because you run Jentic One yourself, your own rules decide which Campaign Monitor operations and credentials the agent may use. Campaign Monitor puts the client id in the URL path, such as `/clients/{clientid}/lists.json`, so a rule can pin the agent to a single client and let it manage only that client's lists and campaigns. You also choose the specific operations it can call, so higher-impact actions like POST `/campaigns/{campaignid}/send.json` or POST `/clients/{clientid}/suppress.json` are excluded unless you add them.
