Email marketing platform Intuit-owned since September 2021
Mailchimp logo

Mailchimp API + MCP (2026): Solid REST, Silent on MCP

Last verified Aug 12, 2026

Mailchimp’s Marketing API v3.0 has been stable since 2018, ships four official SDKs, and covers the full campaign and audience lifecycle. What it does not cover, as of August 2026, is Model Context Protocol. The Transactional side (Mandrill) has an official MCP server. The Marketing side does not. That gap has been filled by a growing set of community wrappers, some free on GitHub and some commercial with managed authentication. This tab inventories the API surface and the MCP landscape a buyer needs to evaluate before committing.

At a glance

v3.0Current API versionv2.0 deprecated, not yet shut off
4Official SDKsNode.js, PHP, Ruby, Python
0Official MCP for MarketingMandrill Transactional has one

MCP integration in 2026

Model Context Protocol is the emerging standard for connecting LLM agents to external tools. If you want an AI agent (Claude, ChatGPT, Cursor, custom OpenAI Agents SDK deployment) to read from or write to Mailchimp, MCP is now the connection layer of choice. Here is where Mailchimp stands.

i

Marketing API: no official MCP. Mandrill: yes.

Mailchimp ships an official MCP server for the Transactional API only, at mandrillapp.com/mcp. For the Marketing API (audiences, campaigns, automations, reports) there is no first-party MCP server as of August 2026. Buyers who want AI-agent access to Marketing data currently pick from community-maintained wrappers or commercial managed MCP servers listed below.

Available MCP servers for Mailchimp

Seven options as of August 2026, ordered by maturity and coverage. Only the first is official Mailchimp. The rest are community or commercial third parties. Tap any card to open its documentation.

Why buyers should careAI-driven email operations are moving from prototype to production in 2026. Reporting workflows, subscriber lookup by natural language, and campaign drafting from agent context are all common asks. The Model Context Protocol release candidate published on July 28, 2026 made stateless HTTP the default transport, which means MCP servers now scale on ordinary load balancers with cached tool lists. Expect more managed offerings in the next 6 to 12 months.

Marketing API v3.0 essentials

The Marketing API follows REST conventions with a few Mailchimp-specific quirks worth internalizing before writing your first request.

Base URLhttps://<dc>.api.mailchimp.com/3.0/
Data center suffixExtracted from your API key suffix (e.g. -us19). Not configurable per request.
Response formatJSON only
Request timeout120 seconds per call
Paginationcount (max 1000, default 10) + offset (default 0)
Partial responsesfields=foo,bar or exclude_fields=baz query params to shrink payload
Bulk operationsPOST /3.0/batches (async, bypasses concurrent-connection limit)
Subscriber lookup keyMD5 hash of the lowercase email address

The API generally follows REST: resources are nouns (/lists, /campaigns, /reports), actions map to HTTP methods, and anything that does not map cleanly ends up under an /actions/ subresource (for example POST /campaigns/{campaign_id}/actions/send). Subresources can nest several levels deep: /lists/{list_id}/members/{subscriber_hash}/notes/{id} is a valid path.

Authentication methods

Two mechanisms, both operating on the same permission model.

HTTP Basic Auth (API key)

Simplest. Use any string as the username and your API key as the password. The Authorization header is base64-encoded automatically by every HTTP client. The API key has full account access and no scope restriction. Rotate keys through the Mailchimp UI (Account → Extras → API keys). Alternate form: Authorization: Bearer YOUR_API_KEY is also accepted.

OAuth 2.0

Required if you are building a third-party app that acts on behalf of Mailchimp users. Standard three-leg OAuth 2.0 flow: authorization code exchange for a bearer token. The resulting token inherits the authorizing user’s role and permissions. Also gives you the data center prefix through the OAuth metadata endpoint, which you must resolve before constructing any request URL.

Permission scope caveatMailchimp API access is tied to the user who created the key or authorized the OAuth app. If that user’s role changes (or the user leaves), the API access changes with them. Best practice: create API keys under a dedicated admin service account, not under a personal user.

Rate limits

Mailchimp’s rate-limiting model is simpler than most competitors: no daily quota, no per-endpoint budget, one hard constraint on concurrency.

LimitValueNotes
Simultaneous connections10 per userEnforced across all API keys and integrations sharing the account. Applies to third-party tools (Airbyte, Zapier, dltHub) too.
Response on exceedHTTP 429Too Many Requests. No standard Retry-After header. Implement exponential backoff.
Request timeout120 secondsLong-running operations should use the Batch endpoint instead of blocking.
Message searchRate-limitedThe /search-members and /search-campaigns endpoints have a separate rate limit that was tightened per July 2025 release notes.
Webhook response15 secondsYour endpoint must return HTTP 200 within 15 seconds or Mailchimp retries the delivery.

The 10-connection ceiling is the number one thing that surprises developers coming from SendGrid or Postmark, both of which have more generous concurrent limits. Working around it: batch async operations through POST /3.0/batches, cache aggressively on your side, and coordinate multiple integrations on the same account so they do not compete for the same 10 slots.

Official SDKs

Four official client libraries for the Marketing API. All auto-generated from a single OpenAPI-derived codegen tool (mailchimp-client-lib-codegen).

LanguagePackageInstallRepo
Node.js@mailchimp/mailchimp_marketingnpm installGitHub
PHPmailchimp/marketingcomposer requireGitHub
RubyMailchimpMarketinggem installGitHub
Pythonmailchimp-marketingpip installGitHub
The Marketing SDKs have not been updated since November 2022That is a critical fact for any team betting on the official SDK. Endpoints added after that date (message search rate-limit changes, ecommerce enhancements) are not reflected in the SDK method surface. Options: fork the SDK and regenerate from current OpenAPI, drop to raw HTTP for new endpoints, or use a community wrapper that stays current (for example damientilman’s MCP wrapper uses raw HTTP for that reason). The Transactional SDKs are more actively maintained, with the last update in March 2026.

Notable community SDKs

Mailchimp does not ship official SDKs for .NET, Java, Go, Rust, Kotlin, or Swift. Community wrappers fill the gap for .NET (MailChimp.Net.V3 by Brandon Seydel, MIT license, actively maintained, requires TLS 1.2) and to a lesser extent for Kotlin and Swift. For Go, Rust, or Java projects, most teams call the API directly with the standard HTTP client of their language.

Endpoints reference

The 15 endpoint groups you will actually use. Full reference at mailchimp.com/developer/marketing/api covers over 250 individual operations across all subresources.

ResourceHTTP methodsDescription
Lists / Audiences
/lists
GET, POSTCreate and list audiences. Foundation for all subscriber operations.
List members
/lists/{list_id}/members
GET, POST, PUT, DELETEAdd, update, remove subscribers. Subscriber lookup uses MD5 hash of lowercase email.
Segments
/lists/{list_id}/segments
GET, POSTStatic and saved segments for targeted campaigns.
Merge fields
/lists/{list_id}/merge-fields
GET, POSTCustom fields for subscriber data. Required before importing enriched contacts.
Tags
/lists/{list_id}/segments (type=static)
GET, POSTTag operations expose through the static segments resource. Not a first-class endpoint.
Campaigns
/campaigns
GET, POSTCreate, list, schedule regular and plaintext campaigns. Full CRUD.
Campaign send
/campaigns/{campaign_id}/actions/send
POSTTrigger a campaign send. No payload needed once the campaign is set up.
Automations
/automations
GET, POSTClassic Automations only. Customer Journey Builder is not exposed through the API.
Reports
/reports/{campaign_id}
GETAggregate campaign performance. Nested subresources for open-details, click-details, unsubscribes, bounces.
Templates
/templates
GET, POST, PATCH, DELETEFull CRUD on custom email templates. Also read-only access to Mailchimp gallery templates.
Ecommerce stores
/ecommerce/stores/{store_id}
GET, POST, PATCHEcommerce integration primitives: stores, customers, products, orders, carts, promo rules.
File manager
/file-manager/files
GET, POST, DELETEUpload and organize images and files used in campaigns.
Batches
/batches
GET, POST, DELETEAsync batch endpoint. Bypasses the 10-concurrent-connections limit. Recommended for bulk imports.
Search members
/search-members
GETSearch subscribers by email or field value across all lists. Now rate-limited per July 2025 release notes.
Webhooks
/lists/{list_id}/webhooks
GET, POSTList-level webhooks. Fire on subscribe, unsubscribe, profile update, email change, cleaned address, campaign send.

Code examples

Two representative snippets covering the most common first-day tasks: ping the API to verify auth, then add a subscriber to a list.

Python: ping + add subscriber

import mailchimp_marketing as MailchimpMarketing
from mailchimp_marketing.api_client import ApiClientError
import hashlib

client = MailchimpMarketing.Client()
client.set_config({
    "api_key": "YOUR_API_KEY-us19",
    "server": "us19"
})

try:
    response = client.ping.get()
    print(response)
except ApiClientError as e:
    print(f"error: {e.text}")

# Add a subscriber (email lowercase, then MD5)
email = "user@example.com".lower()
subscriber_hash = hashlib.md5(email.encode()).hexdigest()

client.lists.set_list_member(
    list_id="abc123",
    subscriber_hash=subscriber_hash,
    body={
        "email_address": email,
        "status_if_new": "subscribed",
        "merge_fields": {"FNAME": "Alaa", "LNAME": "Touil"}
    }
)

Node.js: create and send a campaign

const mailchimp = require('@mailchimp/mailchimp_marketing');

mailchimp.setConfig({
    apiKey: 'YOUR_API_KEY-us19',
    server: 'us19',
});

async function sendCampaign(listId) {
    // 1. Create the campaign
    const campaign = await mailchimp.campaigns.create({
        type: 'regular',
        recipients: { list_id: listId },
        settings: {
            subject_line: 'Test from the API',
            from_name: 'SMTPedia',
            reply_to: 'hello@smtpedia.com'
        }
    });

    // 2. Set the HTML content
    await mailchimp.campaigns.setContent(campaign.id, {
        html: '

Hello

This is a test.

' }); // 3. Send it await mailchimp.campaigns.send(campaign.id); console.log(`Sent campaign ${campaign.id}`); } sendCampaign('abc123').catch(console.error);

Common gotchas

The data center suffix is not optional

The -us19 at the end of your API key IS the data center. Strip it and your requests hit the wrong host. Always parse it out and use it as the server prefix in the base URL. Every official SDK requires you to pass it separately.

MD5 the lowercase email, not the mixed-case one

Subscriber lookup uses the MD5 hash of the email address. If you hash User@Example.com directly you get a different hash than the Mailchimp server generated on subscribe time (which lowercased first). Always lowercase before hashing. This is the single most common cause of 404s on subscriber endpoints.

The 10-connection limit is per USER, not per API key

Creating multiple API keys under the same account does not multiply your concurrent capacity. All keys owned by the same user share the 10-connection budget. Third-party integrations (Airbyte, Zapier, custom apps) all draw from the same pool. Symptom: intermittent 429s in an app that “should not” be hitting the limit.

Customer Journey Builder is UI-only

The /automations endpoints only cover Classic Automations. If you are trying to programmatically create or manage a Customer Journey (the new visual builder), there is no API for it. Confirmed by every community MCP wrapper documentation, and by Mailchimp’s own docs. Plan around it: for new automations, either use Classic Automations from the API or accept UI-only workflow creation.

Batch results require polling or webhooks

The Batch endpoint (POST /3.0/batches) returns a batch ID immediately, not results. You either poll GET /3.0/batches/{batch_id} until status is finished, or register a webhook to be notified. First-time Batch users often assume the response is synchronous and end up with empty result sets.

Deprecations and changelog

Mailchimp maintains a public release notes feed at mailchimp.com/developer/release-notes. Key deprecations to know:

  • API 2.0 and Export API 1.0 retired on June 1, 2023. Any legacy integration on those APIs stopped working that day. Migrate to v3.0.
  • Marketing API v3.0 is current. No successor announced. No known deprecation timeline.
  • Marketing API 2.0 is documented as “deprecated and unsupported” but has not been shut off. Mailchimp will announce a shutoff date in advance when they schedule one. Do not build anything new on it.
  • Message search rate limit enforced – added as a distinct throttle in a July 2025 release-notes update. If your code loops /search-members or /search-campaigns, add backoff.
  • Marketing SDKs frozen since November 2, 2022. No official acknowledgment or roadmap; the autogen infrastructure (mailchimp-client-lib-codegen) still exists but has not published updates.

Frequently asked questions

Does Mailchimp have an official MCP server for AI agents?

Only for the Transactional API (Mandrill), at mandrillapp.com/mcp. The Marketing API has no official MCP server as of 2026. Coverage for Marketing comes from community-maintained wrappers on GitHub (cyanheads, AgentX-ai, damientilman, mattcoatsworth), from commercial managed MCP servers (StackOne, Apify), or from the Zapier MCP layer as a bridge.

Which programming languages have official Mailchimp SDKs?

Four languages: Node.js, PHP, Ruby, and Python. Both Marketing and Transactional APIs ship official clients for these four. There is no official .NET, Java, Go, or Rust SDK. The community MailChimp.Net.V3 NuGet package (maintained by Brandon Seydel) is the de facto choice for C# projects. Note: the official Marketing SDKs have not been updated since November 2022.

What is the Mailchimp API rate limit?

Ten simultaneous connections per user, enforced across the entire account (all API keys and integrations combined). Exceeding this returns HTTP 429 Too Many Requests. There is no standard Retry-After header, so exponential backoff is your responsibility. For high-volume operations, use the Batch endpoint (POST /3.0/batches) to bypass the concurrent-connection limit.

How do I authenticate with the Mailchimp Marketing API?

Two methods: HTTP Basic Auth (any string as username, your API key as password) or OAuth 2.0 for third-party apps. The API key suffix (for example -us19) tells you the data center prefix that must go in your base URL: https://us19.api.mailchimp.com/3.0/. Access is scoped to the role of the user who created the key or authorized the OAuth app.

Can I access Mailchimp’s Customer Journey automations through the API?

No. The /automations endpoints only cover Classic Automations, which Mailchimp is gradually deprecating in favor of Customer Journey Builder. The Journey Builder is currently UI-only with no programmatic access. This is a documented API gap and one of the most common reasons developers hit walls when replicating the Mailchimp UI experience programmatically.

What is the difference between the Marketing API and the Transactional API?

The Marketing API (v3.0) handles bulk campaigns, audiences, automations, ecommerce, and reports. The Transactional API (Mandrill) handles single-recipient triggered emails: password resets, receipts, order confirmations. They are separate services with separate billing, separate API keys, separate SDKs, and, crucially, separate MCP support. Mandrill has an official MCP server; Marketing does not.

Changelog (recent)

  • 2026-08-15 API + MCP tab published. First SMTPedia review to inventory the community MCP wrapper landscape.
  • 2026-07-28 MCP specification 2026-07-28 released. Stateless protocol core, Extensions framework, Tasks, MCP Apps.
  • 2026-04-20 cyanheads/mailchimp-mcp-server released - first full-coverage community MCP wrapper for the Marketing API.
AAlaa Touil RRabeb How we test →

This review follows our email infrastructure testing methodology. We disclose affiliate relationships in our editorial independence policy.