{"openapi":"3.1.0","info":{"title":"Mailchimp (BYOK) API","version":"0.1.0","description":"Mailchimp (BYOK) lets an AI assistant read your own Mailchimp data through the Mailchimp API with a key you supply (API key (its suffix after the hyphen is your server prefix)). Read-only: 9 tools (get_account, list_audiences, list_audience_members, list_segments, list_campaigns, get_campaign, list_campaign_reports, get_campaign_report, list_automations). The BYOK key travels with each request,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-mailchimp.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-mailchimp/docs"},"termsOfService":"https://connectorbay.com/byok-mailchimp/terms"},"servers":[{"url":"https://byok-mailchimp.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-mailchimp/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_account":{"post":{"operationId":"get_account","summary":"Show the Mailchimp account the key belongs to: account name, owner, plan type, time zone, total subscribers and last log","description":"Show the Mailchimp account the key belongs to: account name, owner, plan type, time zone, total subscribers and last login. Use for \"Which Mailchimp account am I connected to and how many subscribers does it have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc":{"description":"Your Mailchimp server prefix (data center): the suffix after the hyphen in your API key, for example 'us6' for a key ending in -us6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc","type":"string"}},"required":["dc"],"title":"get_accountArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_audiences":{"post":{"operationId":"list_audiences","summary":"List audiences (lists) with member, unsubscribe and cleaned counts, campaign count, last send date and average open and ","description":"List audiences (lists) with member, unsubscribe and cleaned counts, campaign count, last send date and average open and click rates. Use for \"How many subscribers are on each of my Mailchimp audiences\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc":{"description":"Your Mailchimp server prefix (data center): the suffix after the hyphen in your API key, for example 'us6' for a key ending in -us6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc","type":"string"},"count":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return (1 to 50; the connector shows at most 50 per answer).","title":"Count"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging. Use the previous offset plus count for the next page.","title":"Offset"},"since_date_created":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only audiences created after this ISO 8601 time, for example 2026-01-01T00:00:00+00:00.","title":"Since Date Created"},"email":{"anyOf":[{"maxLength":254,"type":"string"},{"type":"null"}],"default":null,"description":"Only audiences that include this subscriber email address.","title":"Email"},"sort_field":{"anyOf":[{"const":"date_created","type":"string"},{"type":"null"}],"default":null,"description":"Sort field; only date_created is supported.","title":"Sort Field"},"sort_dir":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: ASC or DESC.","title":"Sort Dir"}},"required":["dc"],"title":"list_audiencesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_audience_members":{"post":{"operationId":"list_audience_members","summary":"List the contacts of one audience with email, name, status, signup and last-changed dates, language, VIP flag, rating an","description":"List the contacts of one audience with email, name, status, signup and last-changed dates, language, VIP flag, rating and tags count; filter by status or change date. Use for \"Who unsubscribed from my Mailchimp audience recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc":{"description":"Your Mailchimp server prefix (data center): the suffix after the hyphen in your API key, for example 'us6' for a key ending in -us6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc","type":"string"},"list_id":{"description":"The audience (list) id, for example '57afe96172' (the id field returned by list_audiences).","maxLength":200,"title":"List Id","type":"string"},"count":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return (1 to 50; the connector shows at most 50 per answer).","title":"Count"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging. Use the previous offset plus count for the next page.","title":"Offset"},"status":{"anyOf":[{"enum":["subscribed","unsubscribed","cleaned","pending","transactional","archived"],"type":"string"},{"type":"null"}],"default":null,"description":"Only members with this status.","title":"Status"},"since_last_changed":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only members changed after this ISO 8601 time, for example 2026-01-01T00:00:00+00:00.","title":"Since Last Changed"},"unsubscribed_since":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only members who unsubscribed since this ISO 8601 time (use with status unsubscribed).","title":"Unsubscribed Since"},"vip_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return only VIP members.","title":"Vip Only"},"sort_field":{"anyOf":[{"enum":["timestamp_opt","timestamp_signup","last_changed"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by timestamp_opt, timestamp_signup or last_changed.","title":"Sort Field"},"sort_dir":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: ASC or DESC.","title":"Sort Dir"}},"required":["dc","list_id"],"title":"list_audience_membersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_segments":{"post":{"operationId":"list_segments","summary":"List the saved, static and fuzzy segments of an audience with member counts and creation and update times. Use for \"What","description":"List the saved, static and fuzzy segments of an audience with member counts and creation and update times. Use for \"What segments does my Mailchimp audience have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc":{"description":"Your Mailchimp server prefix (data center): the suffix after the hyphen in your API key, for example 'us6' for a key ending in -us6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc","type":"string"},"list_id":{"description":"The audience (list) id, for example '57afe96172' (the id field returned by list_audiences).","maxLength":200,"title":"List Id","type":"string"},"count":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return (1 to 50; the connector shows at most 50 per answer).","title":"Count"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging. Use the previous offset plus count for the next page.","title":"Offset"},"type":{"anyOf":[{"enum":["saved","static","fuzzy"],"type":"string"},{"type":"null"}],"default":null,"description":"Only segments of this type: saved, static or fuzzy.","title":"Type"}},"required":["dc","list_id"],"title":"list_segmentsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_campaigns":{"post":{"operationId":"list_campaigns","summary":"List campaigns with type, status, send time, recipients and open and click summary; filter by status, type, audience or ","description":"List campaigns with type, status, send time, recipients and open and click summary; filter by status, type, audience or send date. Use for \"What Mailchimp campaigns did I send last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc":{"description":"Your Mailchimp server prefix (data center): the suffix after the hyphen in your API key, for example 'us6' for a key ending in -us6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc","type":"string"},"count":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return (1 to 50; the connector shows at most 50 per answer).","title":"Count"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging. Use the previous offset plus count for the next page.","title":"Offset"},"status":{"anyOf":[{"enum":["save","paused","schedule","sending","sent"],"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns with this status.","title":"Status"},"type":{"anyOf":[{"enum":["regular","plaintext","absplit","rss","variate"],"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns of this type.","title":"Type"},"list_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns sent to this audience id.","title":"List Id"},"since_send_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns sent after this ISO 8601 time, for example 2026-01-01T00:00:00+00:00.","title":"Since Send Time"},"before_send_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns sent before this ISO 8601 time.","title":"Before Send Time"},"sort_field":{"anyOf":[{"enum":["create_time","send_time"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by create_time or send_time.","title":"Sort Field"},"sort_dir":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: ASC or DESC.","title":"Sort Dir"}},"required":["dc"],"title":"list_campaignsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_campaign":{"post":{"operationId":"get_campaign","summary":"Get one campaign with type, status, subject line, sender, recipients, send time and open and click summary. Use for \"Sho","description":"Get one campaign with type, status, subject line, sender, recipients, send time and open and click summary. Use for \"Show the details of one Mailchimp campaign\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc":{"description":"Your Mailchimp server prefix (data center): the suffix after the hyphen in your API key, for example 'us6' for a key ending in -us6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc","type":"string"},"campaign_id":{"description":"The campaign id, for example '42694e9e57' (the id field returned by list_campaigns).","maxLength":200,"title":"Campaign Id","type":"string"}},"required":["dc","campaign_id"],"title":"get_campaignArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_campaign_reports":{"post":{"operationId":"list_campaign_reports","summary":"List campaign reports with emails sent, opens, clicks, bounces, unsubscribes, abuse reports and e-commerce revenue; filt","description":"List campaign reports with emails sent, opens, clicks, bounces, unsubscribes, abuse reports and e-commerce revenue; filter by send date or type. Use for \"Which Mailchimp campaign had the best open rate\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc":{"description":"Your Mailchimp server prefix (data center): the suffix after the hyphen in your API key, for example 'us6' for a key ending in -us6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc","type":"string"},"count":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return (1 to 50; the connector shows at most 50 per answer).","title":"Count"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging. Use the previous offset plus count for the next page.","title":"Offset"},"type":{"anyOf":[{"enum":["regular","plaintext","absplit","rss","variate"],"type":"string"},{"type":"null"}],"default":null,"description":"Only reports of this campaign type.","title":"Type"},"since_send_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns sent after this ISO 8601 time, for example 2026-01-01T00:00:00+00:00.","title":"Since Send Time"},"before_send_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns sent before this ISO 8601 time.","title":"Before Send Time"}},"required":["dc"],"title":"list_campaign_reportsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_campaign_report":{"post":{"operationId":"get_campaign_report","summary":"Get the report of one sent campaign: emails sent, opens, clicks, bounces, unsubscribes, abuse reports and e-commerce rev","description":"Get the report of one sent campaign: emails sent, opens, clicks, bounces, unsubscribes, abuse reports and e-commerce revenue. Use for \"How did my last Mailchimp campaign perform\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc":{"description":"Your Mailchimp server prefix (data center): the suffix after the hyphen in your API key, for example 'us6' for a key ending in -us6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc","type":"string"},"campaign_id":{"description":"The campaign id, for example '42694e9e57' (the id field returned by list_campaigns).","maxLength":200,"title":"Campaign Id","type":"string"}},"required":["dc","campaign_id"],"title":"get_campaign_reportArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_automations":{"post":{"operationId":"list_automations","summary":"List classic automations with status, start time, emails sent, audience, workflow type and open and click summary. Use f","description":"List classic automations with status, start time, emails sent, audience, workflow type and open and click summary. Use for \"Which Mailchimp automations are running\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dc":{"description":"Your Mailchimp server prefix (data center): the suffix after the hyphen in your API key, for example 'us6' for a key ending in -us6.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Dc","type":"string"},"count":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many records to return (1 to 50; the connector shows at most 50 per answer).","title":"Count"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many records to skip, for paging. Use the previous offset plus count for the next page.","title":"Offset"},"status":{"anyOf":[{"enum":["save","paused","sending"],"type":"string"},{"type":"null"}],"default":null,"description":"Only automations with this status.","title":"Status"},"since_create_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only automations created after this ISO 8601 time.","title":"Since Create Time"}},"required":["dc"],"title":"list_automationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}