Campaign Monitor
InTouch tool for the Campaign Monitor API v3.3.
List your account clients, read a client's contact lists, create email
campaign drafts, and pull campaign summary reports — all over the real
https://api.createsend.com/api/v3.3 endpoints using standard-library Python
only (no external dependencies).
Operations
| Operation | Method | Endpoint | Required params |
|---|---|---|---|
list-clients |
GET | /clients.json |
— |
list-lists |
GET | /clients/{clientId}/lists.json |
clientId |
create-campaign |
POST | /clients/{clientId}/campaigns.json |
clientId, name, subject, fromName, fromEmail, htmlUrl, listIds |
campaign-summary |
GET | /campaigns/{campaignId}/summary.json |
campaignId |
create-campaign creates a draft campaign. Sending/scheduling it is a
separate Campaign Monitor step and is intentionally out of scope for this tool.
apiKey setup
- Sign in to Campaign Monitor.
- Go to Account Settings (top-right menu) > API keys.
- Copy your API key.
Authentication uses HTTP Basic Auth where the username is your API key and
the password is a dummy value (x), exactly as shown in the official docs:
curl -u "<apiKey>:x" https://api.createsend.com/api/v3.3/clients.json
The tool encodes this for you — just pass your key as apiKey. The single API
key authenticates every operation; no OAuth flow or live browser auth is
required.
Inputs
| Name | Required | Default | Description |
|---|---|---|---|
apiKey |
yes | — | Campaign Monitor API key (Basic Auth username). |
operation |
yes | — | One of the operations above. |
clientId |
— | "" | Client ID (list-lists, create-campaign). |
campaignId |
— | "" | Campaign ID (campaign-summary). |
name |
— | "" | Campaign name (create-campaign). |
subject |
— | "" | Email subject line (create-campaign). |
fromName |
— | "" | From name shown to recipients (create-campaign). |
fromEmail |
— | "" | Confirmed sending From address (create-campaign). |
replyTo |
— | "" | Reply-To address; defaults to fromEmail when blank. |
htmlUrl |
— | "" | Public URL of the campaign HTML (create-campaign). |
listIds |
— | "" | Comma-separated contact list IDs (create-campaign). |
Outputs
result— the raw JSON response body from Campaign Monitor (as a string).status— the HTTP status code (e.g.200,201,400).
Examples
List the clients on your account:
{ "apiKey": "YOUR_KEY", "operation": "list-clients" }
List a client's contact lists:
{ "apiKey": "YOUR_KEY", "operation": "list-lists", "clientId": "abc123" }
Create a campaign draft:
{
"apiKey": "YOUR_KEY",
"operation": "create-campaign",
"clientId": "abc123",
"name": "June Newsletter",
"subject": "Our June Update",
"fromName": "Blue Isle",
"fromEmail": "[email protected]",
"htmlUrl": "https://example.com/campaigns/june.html",
"listIds": "list1,list2"
}
Pull a campaign's summary report:
{ "apiKey": "YOUR_KEY", "operation": "campaign-summary", "campaignId": "camp789" }