4.1 KiB
4.1 KiB
Mailchimp Routing Reference
App name: mailchimp
Base URL proxied: {dc}.api.mailchimp.com
API Path Pattern
/mailchimp/3.0/{resource}
Common Endpoints
Get All Lists (Audiences)
GET /mailchimp/3.0/lists
Query parameters:
count- Number of records to return (default 10, max 1000)offset- Number of records to skip (for pagination)
Get a List
GET /mailchimp/3.0/lists/{list_id}
Create a List
POST /mailchimp/3.0/lists
Content-Type: application/json
{
"name": "Newsletter",
"contact": {
"company": "Acme Corp",
"address1": "123 Main St",
"city": "New York",
"state": "NY",
"zip": "10001",
"country": "US"
},
"permission_reminder": "You signed up for our newsletter",
"campaign_defaults": {
"from_name": "Acme Corp",
"from_email": "newsletter@acme.com",
"subject": "",
"language": "en"
},
"email_type_option": true
}
Get List Members
GET /mailchimp/3.0/lists/{list_id}/members?status=subscribed&count=50
Add a Member
POST /mailchimp/3.0/lists/{list_id}/members
Content-Type: application/json
{
"email_address": "newuser@example.com",
"status": "subscribed",
"merge_fields": {
"FNAME": "Jane",
"LNAME": "Smith"
}
}
Update a Member
PATCH /mailchimp/3.0/lists/{list_id}/members/{subscriber_hash}
Content-Type: application/json
{
"merge_fields": {
"FNAME": "Jane",
"LNAME": "Doe"
}
}
Add or Update a Member (Upsert)
PUT /mailchimp/3.0/lists/{list_id}/members/{subscriber_hash}
Content-Type: application/json
{
"email_address": "user@example.com",
"status_if_new": "subscribed",
"merge_fields": {
"FNAME": "Jane",
"LNAME": "Smith"
}
}
Delete a Member
DELETE /mailchimp/3.0/lists/{list_id}/members/{subscriber_hash}
Add or Remove Tags
POST /mailchimp/3.0/lists/{list_id}/members/{subscriber_hash}/tags
Content-Type: application/json
{
"tags": [
{"name": "VIP", "status": "active"},
{"name": "Old Tag", "status": "inactive"}
]
}
Get Segments
GET /mailchimp/3.0/lists/{list_id}/segments
Get All Campaigns
GET /mailchimp/3.0/campaigns?status=sent&count=20
Create a Campaign
POST /mailchimp/3.0/campaigns
Content-Type: application/json
{
"type": "regular",
"recipients": {
"list_id": "LIST_ID"
},
"settings": {
"subject_line": "Your Monthly Update",
"from_name": "Acme Corp",
"reply_to": "hello@acme.com"
}
}
Set Campaign Content
PUT /mailchimp/3.0/campaigns/{campaign_id}/content
Content-Type: application/json
{
"html": "<html><body><h1>Hello!</h1><p>Newsletter content here.</p></body></html>",
"plain_text": "Hello! Newsletter content here."
}
Send a Campaign
POST /mailchimp/3.0/campaigns/{campaign_id}/actions/send
Schedule a Campaign
POST /mailchimp/3.0/campaigns/{campaign_id}/actions/schedule
Content-Type: application/json
{
"schedule_time": "2025-03-01T10:00:00+00:00"
}
Get All Templates
GET /mailchimp/3.0/templates?type=user
Get All Automations
GET /mailchimp/3.0/automations
Start an Automation
POST /mailchimp/3.0/automations/{workflow_id}/actions/start-all-emails
Get Campaign Reports
GET /mailchimp/3.0/reports?count=20
Get Campaign Report
GET /mailchimp/3.0/reports/{campaign_id}
Notes
- List IDs are 10-character alphanumeric strings
- Subscriber hashes are MD5 hashes of lowercase email addresses
- Timestamps are in ISO 8601 format
- Maximum 1000 records per request for list endpoints
- "Audience" and "list" are used interchangeably (app vs API terminology)
- "Contact" and "member" are used interchangeably (app vs API terminology)
- Use offset-based pagination with
countandoffsetparameters