Mailchimp
When a supplier has connected Mailchimp (Settings > API & Integrations > Mailchimp), their customers are added to the Mailchimp audience they picked, tagged by what they booked. Anyone who unsubscribes or hard-bounces in Mailchimp is recorded as not wanting marketing email, so the supplier's own campaigns skip them too.
Connecting is an OAuth (browser) flow and is not an API action.
Requires the Mailchimp plan feature (Growth and above).
Get connection statusโ
GET /api/v1/settings/mailchimp
Scope: mailchimp:read
{
"data": {
"connected": true,
"needs_reconnect": false,
"account_name": "Example Rentals",
"audience": { "id": "a1b2c3d4e5", "name": "Newsletter" },
"sync_scope": "opted_in",
"tag_bookings": true,
"unsubscribes_come_back": true,
"customers_in_mailchimp": 1284,
"subscribed": 1190,
"last_synced_at": "2026-09-30T10:15:00+00:00",
"problem": null
},
"meta": { "request_id": "..." }
}
When Mailchimp is not connected, connected is false and the other fields are null or 0.
| Field | Meaning |
|---|---|
sync_scope | opted_in: only customers whose latest answer to marketing email is yes. everyone: every customer with an email; those who never said yes are added as Mailchimp transactional contacts, which Mailchimp does not send marketing to. |
tag_bookings | When true, customers are tagged Rentals, Experiences, Store or Services, plus Booked: <item name> for each item they booked. |
unsubscribes_come_back | true when Mailchimp accepted our webhook, so unsubscribes and hard bounces are recorded in EquipDash. |
needs_reconnect / problem | Set when Mailchimp stopped accepting the connection or the audience was deleted. Syncing is paused until the supplier reconnects in the portal. |
Change who goes to Mailchimpโ
PATCH /api/v1/settings/mailchimp
Scope: mailchimp:write
{
"sync_scope": "everyone",
"tag_bookings": true
}
Both fields are optional. sync_scope must be opted_in or everyone (otherwise 422). A change queues every customer in scope again. Returns the updated status (same shape as Get connection status), or 422 with error.code = mailchimp_not_connected.
Sync nowโ
POST /api/v1/settings/mailchimp/sync
Scope: mailchimp:write
Queues every customer in scope. Runs in the background.
{
"data": { "queued": 1284 },
"meta": { "request_id": "..." }
}
Returns 422 with error.code = mailchimp_not_connected if Mailchimp is not connected or is paused.
Disconnectโ
DELETE /api/v1/settings/mailchimp
Scope: mailchimp:write
Stops syncing and removes the unsubscribe webhook from the audience. Contacts already in Mailchimp stay there. Returns 204.
MCP toolsโ
The same actions are available to AI tools as get_mailchimp_status, sync_mailchimp and update_mailchimp_settings.