The Mailchimp Actions API exposes 23 operations. It is one of 120 APIs that Mailchimp publishes on the network, described by both a machine-readable OpenAPI specification and an AsyncAPI event-driven specification, and it exposes 4 JSON Schema definitions.
The full artifact set is seven types deep:
- OpenAPI specification
- AsyncAPI specification
- API documentation
- An API reference
- A getting-started guide
- A JSON-LD context
- 4 JSON Schemas
That ties the Docusign ClickWraps entry covered earlier this week for the deepest artifact set in the sweep.
Actions are the verbs of a campaign
“Actions” in Mailchimp is the imperative half of the marketing API — send the campaign, pause it, resume it, schedule it, unschedule it, replicate it, test it, cancel the send. Twenty-three operations of do this thing now.
They are separated from the resource APIs deliberately, and it is a good separation. Creating a campaign is a POST you can retry safely. Sending one is not. A duplicate campaign object costs nothing; a duplicate send costs you your list.
Putting the irreversible verbs in their own API is a way of telling both a developer and an agent where the danger is, at the level of the surface’s structure rather than in a warning paragraph. More providers should do this.
The AsyncAPI is doing necessary work
Email is asynchronous in the way that actually matters: you call send, and then things happen for days. Delivered, opened, clicked, bounced, complained, unsubscribed.
Every one of those is an event you need in your own system, and none of them is available in the response to the send. Mailchimp publishing an AsyncAPI definition alongside the REST contract means the entire second half of the integration is described rather than reverse-engineered from a webhook payload sample.
Against 1,857 AsyncAPI definitions across 108,265 APIs in the catalog, that remains a small club.
The base URL is a placeholder wearing no marker
The entry’s base URL is https://server.api.mailchimp.com/3.0.
server is not a hostname. Mailchimp shards accounts across data centres and the real host carries your account’s prefix, which you derive from your API key. So this URL is a template — but unlike Commerce Layer’s {your-organization-slug} or ServiceNow’s {instance}, it carries no braces and no signal that substitution is required.
That distinction is small on a page and large in a pipeline. A client generated from this specification produces code that resolves server.api.mailchimp.com, fails, and gives the developer a DNS error rather than a substitution hint. An agent does the same thing, less gracefully.
Across the catalog, 10,950 of 87,612 specs are uncallable as published. Some of those are placeholders as obvious as example.com. This is the subtler and more dangerous version: a host that looks entirely plausible and is not real.
Takeaway
Seven artifact types, an AsyncAPI covering the days-long half of the integration, and the irreversible verbs deliberately quarantined into their own API. Mailchimp got the hard structural decisions right and then published a base URL that no client can call — one word away from complete.
Read the docs at mailchimp.com/developer/marketing/, and the provider entry at apis.io/providers/mailchimp/.