Skip to main content

Actions

The ballerinax/mailchimp.transactional package exposes the following clients:

ClientPurpose
ClientProvides access to all Mandrill API endpoints for transactional email sending, template management, webhooks, and more.

Client

Provides access to all Mandrill API endpoints for transactional email sending, template management, webhooks, and more.

Configuration

FieldTypeDefaultDescription
httpVersionhttp:HttpVersionHTTP_2_0HTTP protocol version.
timeoutdecimal30Request timeout in seconds.
retryConfighttp:RetryConfig()Retry configuration for failed requests.
secureSockethttp:ClientSecureSocket()SSL/TLS configuration.
proxyhttp:ProxyConfig()Proxy server configuration.
circuitBreakerhttp:CircuitBreakerConfig()Circuit breaker configuration for fault tolerance.
compressionhttp:CompressionCOMPRESSION_AUTOHTTP compression configuration.
cachehttp:CacheConfig{}HTTP response cache configuration.

Initializing the client

import ballerinax/mailchimp.'transactional as mailchimp;

mailchimp:Client mailchimpClient = check new ();

Operations

Send messages

Send a new transactional message

Sends a transactional email with full control over recipients, content, headers, attachments, and tracking options.

Parameters:

NameTypeRequiredDescription
payloadMessagesSendBodyYesThe message send request containing the API key, message details, and optional send parameters.

Returns: InlineResponse20028[]|error

Sample code:

configurable string apiKey = ?;

InlineResponse20028[] response = check mailchimpClient->/messages/send.post({
'key: apiKey,
message: {
fromEmail: "[email protected]",
fromName: "Example Sender",
to: [
{email: "[email protected]", name: "Recipient", 'type: "to"}
],
subject: "Order Confirmation",
html: "<h1>Thank you for your order!</h1><p>Your order #12345 has been confirmed.</p>",
trackOpens: true,
trackClicks: true,
tags: ["order-confirmation"]
}
});

Sample response:

[{"email": "[email protected]", "status": "sent", "_id": "abc123def456", "reject_reason": null}]
Send using an email template

Sends a transactional email using a previously created template, with dynamic merge variable substitution.

Parameters:

NameTypeRequiredDescription
payloadMessagesSendTemplateBodyYesThe template send request containing template name, content overrides, merge variables, and message details.

Returns: InlineResponse20029[]|error

Sample code:

InlineResponse20029[] response = check mailchimpClient->/messages/send\-template.post({
'key: apiKey,
templateName: "welcome-email",
templateContent: [
{name: "header", content: "Welcome to Our Service!"}
],
message: {
fromEmail: "[email protected]",
to: [{email: "[email protected]", 'type: "to"}],
subject: "Welcome!",
globalMergeVars: [
{name: "FNAME", content: "John"},
{name: "COMPANY", content: "Acme Corp"}
]
}
});

Sample response:

[{"email": "[email protected]", "status": "sent", "_id": "xyz789ghi012", "reject_reason": null}]
Send a raw MIME message

Sends a raw MIME message, useful when you have pre-built email content in MIME format.

Parameters:

NameTypeRequiredDescription
payloadMessagesSendRawBodyYesThe raw message request containing the MIME content and optional send parameters.

Returns: record {}|error

Sample code:

record {} response = check mailchimpClient->/messages/send\-raw.post({
'key: apiKey,
rawMessage: "From: [email protected]\nTo: [email protected]\nSubject: Test\nMIME-Version: 1.0\nContent-Type: text/plain\n\nHello from raw MIME!"
});

Sample response:

{}

Message search & info

Search sent messages

Searches recently sent messages by query string, date range, tags, senders, or API keys.

Parameters:

NameTypeRequiredDescription
payloadMessagesSearchBodyYesSearch criteria including query, date range, tags, and limits.

Returns: InlineResponse20030[]|error

Sample code:

InlineResponse20030[] results = check mailchimpClient->/messages/search.post({
'key: apiKey,
query: "email:[email protected]",
dateFrom: "2026-03-01",
dateTo: "2026-03-17",
'limit: 10
});

Sample response:

[{"ts": 1710000000, "_id": "abc123", "sender": "[email protected]", "template": null, "subject": "Order Confirmation", "email": "[email protected]", "tags": ["order-confirmation"], "opens": 1, "clicks": 0, "state": "sent"}]
Get message info

Retrieves detailed information about a single sent message, including its delivery history and SMTP events.

Parameters:

NameTypeRequiredDescription
payloadMessagesInfoBodyYesThe message info request containing the API key and message ID.

Returns: InlineResponse20032|error

Sample code:

InlineResponse20032 info = check mailchimpClient->/messages/info.post({
'key: apiKey,
id: "abc123def456"
});

Sample response:

{"ts": 1710000000, "_id": "abc123def456", "sender": "[email protected]", "subject": "Order Confirmation", "email": "[email protected]", "tags": ["order-confirmation"], "opens": 2, "clicks": 1, "state": "sent", "smtp_events": [{"ts": 1710000000, "type": "sent", "diag": "250 OK"}]}
Get message content

Retrieves the full content of a recently sent message, including HTML and text bodies.

Parameters:

NameTypeRequiredDescription
payloadMessagesInfoBodyYesThe content request containing the API key and message ID.

Returns: InlineResponse20033|error

Sample code:

InlineResponse20033 content = check mailchimpClient->/messages/content.post({
'key: apiKey,
id: "abc123def456"
});

Sample response:

{"ts": 1710000000, "_id": "abc123def456", "from_email": "[email protected]", "from_name": "Example Sender", "subject": "Order Confirmation", "to": {"email": "[email protected]", "name": "Recipient"}, "html": "<h1>Thank you!</h1>", "text": "Thank you!"}
Search message time-series

Returns hourly statistics for a query within a date range, useful for volume and delivery analytics.

Parameters:

NameTypeRequiredDescription
payloadMessagesSearchTimeSeriesBodyYesTime-series search criteria including query, date range, and tags.

Returns: InlineResponse20031[]|error

Sample code:

InlineResponse20031[] timeSeries = check mailchimpClient->/messages/search\-time\-series.post({
'key: apiKey,
query: "tag:order-confirmation"
});

Sample response:

[{"time": "2026-03-17 00:00:00", "sent": 150, "hard_bounces": 2, "soft_bounces": 5, "rejects": 0, "complaints": 0, "unsubs": 1, "opens": 120, "unique_opens": 95, "clicks": 30, "unique_clicks": 25}]

Scheduled messages

List scheduled messages

Lists all currently scheduled messages, optionally filtered by recipient email.

Parameters:

NameTypeRequiredDescription
payloadMessagesListScheduledBodyYesThe list request containing the API key and optional recipient filter.

Returns: InlineResponse20035[]|error

Sample code:

InlineResponse20035[] scheduled = check mailchimpClient->/messages/list\-scheduled.post({
'key: apiKey,
to: "[email protected]"
});

Sample response:

[{"_id": "sched123", "created_at": "2026-03-17 10:00:00", "send_at": "2026-03-18 09:00:00", "from_email": "[email protected]", "to": "[email protected]", "subject": "Scheduled Reminder"}]
Cancel a scheduled message

Cancels a previously scheduled message by its ID.

Parameters:

NameTypeRequiredDescription
payloadMessagesCancelScheduledBodyYesThe cancel request containing the API key and scheduled message ID.

Returns: InlineResponse20035[]|error

Sample code:

InlineResponse20035[] cancelled = check mailchimpClient->/messages/cancel\-scheduled.post({
'key: apiKey,
id: "sched123"
});

Sample response:

[{"_id": "sched123", "created_at": "2026-03-17 10:00:00", "send_at": "2026-03-18 09:00:00", "from_email": "[email protected]", "to": "[email protected]", "subject": "Scheduled Reminder"}]
Reschedule a message

Changes the scheduled send time of a previously scheduled message.

Parameters:

NameTypeRequiredDescription
payloadMessagesRescheduleBodyYesThe reschedule request containing the API key, message ID, and new send time.

Returns: InlineResponse20035[]|error

Sample code:

InlineResponse20035[] rescheduled = check mailchimpClient->/messages/reschedule.post({
'key: apiKey,
id: "sched123",
sendAt: "2026-03-20 14:00:00"
});

Sample response:

[{"_id": "sched123", "created_at": "2026-03-17 10:00:00", "send_at": "2026-03-20 14:00:00", "from_email": "[email protected]", "to": "[email protected]", "subject": "Scheduled Reminder"}]

Template management

Add a new template

Creates a new email template with optional HTML content, subject line, and labels.

Parameters:

NameTypeRequiredDescription
payloadTemplatesAddBodyYesThe template creation request containing the API key, name, and optional content fields.

Returns: InlineResponse20060|error

Sample code:

InlineResponse20060 template = check mailchimpClient->/templates/add.post({
'key: apiKey,
name: "welcome-email",
fromEmail: "[email protected]",
fromName: "Acme Corp",
subject: "Welcome to Acme!",
code: "<h1>Hello *|FNAME|*!</h1><p>Welcome to our service.</p>",
text: "Hello *|FNAME|*! Welcome to our service.",
publish: true,
labels: ["onboarding"]
});

Sample response:

{"slug": "welcome-email", "name": "welcome-email", "labels": ["onboarding"], "code": "<h1>Hello *|FNAME|*!</h1><p>Welcome to our service.</p>", "subject": "Welcome to Acme!", "from_email": "[email protected]", "from_name": "Acme Corp", "text": "Hello *|FNAME|*! Welcome to our service.", "publish_name": "welcome-email", "publish_code": "<h1>Hello *|FNAME|*!</h1><p>Welcome to our service.</p>", "publish_subject": "Welcome to Acme!", "publish_from_email": "[email protected]", "publish_from_name": "Acme Corp", "publish_text": "Hello *|FNAME|*! Welcome to our service.", "published_at": "2026-03-17 12:00:00", "created_at": "2026-03-17 12:00:00", "updated_at": "2026-03-17 12:00:00"}
Get template info

Retrieves detailed information about an existing template by its name.

Parameters:

NameTypeRequiredDescription
payloadTemplatesInfoBodyYesThe info request containing the API key and template name.

Returns: InlineResponse20061|error

Sample code:

InlineResponse20061 info = check mailchimpClient->/templates/info.post({
'key: apiKey,
name: "welcome-email"
});

Sample response:

{"slug": "welcome-email", "name": "welcome-email", "labels": ["onboarding"], "code": "<h1>Hello *|FNAME|*!</h1>", "subject": "Welcome to Acme!", "from_email": "[email protected]", "from_name": "Acme Corp", "publish_name": "welcome-email", "published_at": "2026-03-17 12:00:00", "created_at": "2026-03-17 12:00:00", "updated_at": "2026-03-17 12:00:00"}
Update a template

Updates an existing template's content, subject, labels, or other properties.

Parameters:

NameTypeRequiredDescription
payloadTemplatesUpdateBodyYesThe update request containing the API key, template name, and fields to update.

Returns: InlineResponse20062|error

Sample code:

InlineResponse20062 updated = check mailchimpClient->/templates/update.post({
'key: apiKey,
name: "welcome-email",
subject: "Welcome to Acme Corp!",
code: "<h1>Hello *|FNAME|*!</h1><p>Welcome aboard.</p>",
publish: true
});

Sample response:

{"slug": "welcome-email", "name": "welcome-email", "labels": ["onboarding"], "code": "<h1>Hello *|FNAME|*!</h1><p>Welcome aboard.</p>", "subject": "Welcome to Acme Corp!", "from_email": "[email protected]", "from_name": "Acme Corp", "published_at": "2026-03-17 13:00:00", "created_at": "2026-03-17 12:00:00", "updated_at": "2026-03-17 13:00:00"}
Publish a template

Publishes the current draft content of a template, making it the active version used for sending.

Parameters:

NameTypeRequiredDescription
payloadTemplatesInfoBodyYesThe publish request containing the API key and template name.

Returns: InlineResponse20063|error

Sample code:

InlineResponse20063 published = check mailchimpClient->/templates/publish.post({
'key: apiKey,
name: "welcome-email"
});

Sample response:

{"slug": "welcome-email", "name": "welcome-email", "labels": ["onboarding"], "code": "<h1>Hello *|FNAME|*!</h1>", "subject": "Welcome to Acme!", "published_at": "2026-03-17 13:30:00", "created_at": "2026-03-17 12:00:00", "updated_at": "2026-03-17 13:30:00"}
Render a template

Renders a template with the provided merge variables and template content, returning the final HTML output.

Parameters:

NameTypeRequiredDescription
payloadTemplatesRenderBodyYesThe render request containing the template name, content blocks, and merge variables.

Returns: InlineResponse20066|error

Sample code:

InlineResponse20066 rendered = check mailchimpClient->/templates/render.post({
'key: apiKey,
templateName: "welcome-email",
templateContent: [
{name: "header", content: "Welcome!"}
],
mergeVars: [
{name: "FNAME", content: "John"}
]
});

Sample response:

{"html": "<h1>Hello John!</h1><p>Welcome to our service.</p>"}
List all templates

Returns a list of all templates in the account, optionally filtered by label.

Parameters:

NameTypeRequiredDescription
payloadTemplatesListBodyYesThe list request containing the API key and optional label filter.

Returns: InlineResponse20065[]|error

Sample code:

InlineResponse20065[] templates = check mailchimpClient->/templates/list.post({
'key: apiKey,
label: "onboarding"
});

Sample response:

[{"slug": "welcome-email", "name": "welcome-email", "labels": ["onboarding"], "subject": "Welcome to Acme!", "from_email": "[email protected]", "from_name": "Acme Corp", "published_at": "2026-03-17 12:00:00", "created_at": "2026-03-17 12:00:00", "updated_at": "2026-03-17 12:00:00"}]
Delete a template

Permanently deletes a template by name.

Parameters:

NameTypeRequiredDescription
payloadTemplatesInfoBodyYesThe delete request containing the API key and template name.

Returns: InlineResponse20064|error

Sample code:

InlineResponse20064 deleted = check mailchimpClient->/templates/delete.post({
'key: apiKey,
name: "welcome-email"
});

Sample response:

{"slug": "welcome-email", "name": "welcome-email", "labels": ["onboarding"], "subject": "Welcome to Acme!", "from_email": "[email protected]", "from_name": "Acme Corp", "created_at": "2026-03-17 12:00:00", "updated_at": "2026-03-17 13:30:00"}

Webhook management

List webhooks

Returns all configured webhooks for the account.

Parameters:

NameTypeRequiredDescription
payloadExportsListBodyYesThe list request containing the API key.

Returns: InlineResponse20074[]|error

Sample code:

InlineResponse20074[] webhooks = check mailchimpClient->/webhooks/list.post({
'key: apiKey
});

Sample response:

[{"id": 42, "url": "https://example.com/webhooks/mandrill", "description": "Production webhook", "auth_key": "wh_key_123", "events": ["send", "open", "click", "hard_bounce"], "created_at": "2026-03-10 08:00:00", "last_sent_at": "2026-03-17 11:00:00", "batches_sent": 156, "events_sent": 4230, "last_error": null}]
Add a webhook

Creates a new webhook that will receive event notifications at the specified URL.

Parameters:

NameTypeRequiredDescription
payloadWebhooksAddBodyYesThe webhook creation request containing the API key, URL, and event types.

Returns: InlineResponse20075|error

Sample code:

InlineResponse20075 webhook = check mailchimpClient->/webhooks/add.post({
'key: apiKey,
url: "https://example.com/webhooks/mandrill",
events: ["send", "open", "click", "hard_bounce", "soft_bounce"]
});

Sample response:

{"id": 43, "url": "https://example.com/webhooks/mandrill", "description": "", "auth_key": "wh_key_456", "events": ["send", "open", "click", "hard_bounce", "soft_bounce"], "created_at": "2026-03-17 14:00:00", "last_sent_at": null, "batches_sent": 0, "events_sent": 0, "last_error": null}
Get webhook info

Retrieves detailed information about a specific webhook by ID.

Parameters:

NameTypeRequiredDescription
payloadWebhooksInfoBodyYesThe info request containing the API key and webhook ID.

Returns: InlineResponse20076|error

Sample code:

InlineResponse20076 info = check mailchimpClient->/webhooks/info.post({
'key: apiKey,
id: 43
});

Sample response:

{"id": 43, "url": "https://example.com/webhooks/mandrill", "description": "", "auth_key": "wh_key_456", "events": ["send", "open", "click", "hard_bounce", "soft_bounce"], "created_at": "2026-03-17 14:00:00", "last_sent_at": null, "batches_sent": 0, "events_sent": 0, "last_error": null}
Update a webhook

Updates the URL, events, or description of an existing webhook.

Parameters:

NameTypeRequiredDescription
payloadWebhooksUpdateBodyYesThe update request containing the API key, webhook ID, and fields to update.

Returns: InlineResponse20077|error

Sample code:

InlineResponse20077 updated = check mailchimpClient->/webhooks/update.post({
'key: apiKey,
id: 43,
url: "https://example.com/webhooks/mandrill-v2",
events: ["send", "open", "click", "hard_bounce", "soft_bounce", "reject"]
});

Sample response:

{"id": 43, "url": "https://example.com/webhooks/mandrill-v2", "description": "", "auth_key": "wh_key_456", "events": ["send", "open", "click", "hard_bounce", "soft_bounce", "reject"], "created_at": "2026-03-17 14:00:00", "last_sent_at": null, "batches_sent": 0, "events_sent": 0, "last_error": null}
Delete a webhook

Permanently deletes a webhook by ID.

Parameters:

NameTypeRequiredDescription
payloadWebhooksInfoBodyYesThe delete request containing the API key and webhook ID.

Returns: InlineResponse20078|error

Sample code:

InlineResponse20078 deleted = check mailchimpClient->/webhooks/delete.post({
'key: apiKey,
id: 43
});

Sample response:

{"id": 43, "url": "https://example.com/webhooks/mandrill-v2"}

Sender management

List senders

Returns a list of all senders that have tried to send through the account, with aggregated stats.

Parameters:

NameTypeRequiredDescription
payloadExportsListBodyYesThe list request containing the API key.

Returns: InlineResponse20043[]|error

Sample code:

InlineResponse20043[] senders = check mailchimpClient->/senders/list.post({
'key: apiKey
});

Sample response:

[{"address": "[email protected]", "created_at": "2026-01-15 09:00:00", "sent": 5430, "hard_bounces": 12, "soft_bounces": 45, "rejects": 3, "complaints": 1, "unsubs": 8, "opens": 4200, "clicks": 1800, "unique_opens": 3100, "unique_clicks": 1200}]
Get sender info

Retrieves detailed information and aggregated statistics for a specific sender address.

Parameters:

NameTypeRequiredDescription
payloadSendersInfoBodyYesThe info request containing the API key and sender address.

Returns: InlineResponse20048|error

Sample code:

InlineResponse20048 senderInfo = check mailchimpClient->/senders/info.post({
'key: apiKey,
address: "[email protected]"
});

Sample response:

{"address": "[email protected]", "created_at": "2026-01-15 09:00:00", "sent": 5430, "hard_bounces": 12, "soft_bounces": 45, "rejects": 3, "complaints": 1, "unsubs": 8, "opens": 4200, "clicks": 1800, "unique_opens": 3100, "unique_clicks": 1200}
List sender domains

Returns a list of all sender domains with their verification and DKIM/SPF status.

Parameters:

NameTypeRequiredDescription
payloadExportsListBodyYesThe list request containing the API key.

Returns: InlineResponse20044[]|error

Sample code:

InlineResponse20044[] domains = check mailchimpClient->/senders/domains.post({
'key: apiKey
});

Sample response:

[{"domain": "example.com", "created_at": "2026-01-10 08:00:00", "last_tested_at": "2026-03-17 10:00:00", "spf": {"valid": true, "valid_after": null, "error": null}, "dkim": {"valid": true, "valid_after": null, "error": null}, "verified_at": "2026-01-10 08:30:00", "valid_signing": true}]
Verify a sender domain

Sends a verification email to the domain's postmaster address to verify ownership.

Parameters:

NameTypeRequiredDescription
payloadSendersVerifyDomainBodyYesThe verify request containing the API key, domain name, and mailbox.

Returns: InlineResponse20047|error

Sample code:

InlineResponse20047 verifyResult = check mailchimpClient->/senders/verify\-domain.post({
'key: apiKey,
domain: "example.com",
mailbox: "postmaster"
});

Sample response:

{"status": "sent", "domain": "example.com", "email": "[email protected]"}

Tags

List tags

Returns a list of all tags with aggregated sending statistics.

Parameters:

NameTypeRequiredDescription
payloadExportsListBodyYesThe list request containing the API key.

Returns: InlineResponse20057[]|error

Sample code:

InlineResponse20057[] tags = check mailchimpClient->/tags/list.post({
'key: apiKey
});

Sample response:

[{"tag": "order-confirmation", "reputation": 95, "sent": 3200, "hard_bounces": 5, "soft_bounces": 12, "rejects": 1, "complaints": 0, "unsubs": 2, "opens": 2800, "clicks": 900, "unique_opens": 2100, "unique_clicks": 700}]
Get tag info

Retrieves detailed information and time-series statistics for a specific tag.

Parameters:

NameTypeRequiredDescription
payloadTagsInfoBodyYesThe info request containing the API key and tag name.

Returns: InlineResponse20059|error

Sample code:

InlineResponse20059 tagInfo = check mailchimpClient->/tags/info.post({
'key: apiKey,
tag: "order-confirmation"
});

Sample response:

{"tag": "order-confirmation", "reputation": 95, "sent": 3200, "hard_bounces": 5, "soft_bounces": 12, "rejects": 1, "complaints": 0, "unsubs": 2, "opens": 2800, "clicks": 900, "stats": {"today": {"sent": 45, "hard_bounces": 0, "soft_bounces": 1, "rejects": 0, "complaints": 0, "unsubs": 0, "opens": 38, "clicks": 12}}}
Delete a tag

Permanently deletes a tag and removes it from all associated messages.

Parameters:

NameTypeRequiredDescription
payloadTagsDeleteBodyYesThe delete request containing the API key and tag name.

Returns: InlineResponse20058|error

Sample code:

InlineResponse20058 deleted = check mailchimpClient->/tags/delete.post({
'key: apiKey,
tag: "old-campaign"
});

Sample response:

{"tag": "old-campaign"}

Reject & allowlist management

Add to reject list

Adds an email address to the account-level reject list, preventing all future delivery.

Parameters:

NameTypeRequiredDescription
payloadRejectsAddBodyYesThe reject request containing the API key, email address, and optional comment and subaccount.

Returns: InlineResponse20040|error

Sample code:

InlineResponse20040 reject = check mailchimpClient->/rejects/add.post({
'key: apiKey,
email: "[email protected]",
comment: "Persistent hard bounce"
});

Sample response:

{"email": "[email protected]", "added": true}
List rejected emails

Returns all email addresses on the reject list with reason and expiration details.

Parameters:

NameTypeRequiredDescription
payloadRejectsListBodyYesThe list request containing the API key and optional email/subaccount filters.

Returns: InlineResponse20041[]|error

Sample code:

InlineResponse20041[] rejects = check mailchimpClient->/rejects/list.post({
'key: apiKey
});

Sample response:

[{"email": "[email protected]", "reason": "manual", "detail": "Persistent hard bounce", "created_at": "2026-03-17 14:00:00", "last_event_at": "2026-03-17 14:00:00", "expires_at": null, "expired": false, "sender": null, "subaccount": null}]
Delete from reject list

Removes an email address from the reject list, allowing future delivery.

Parameters:

NameTypeRequiredDescription
payloadRejectsDeleteBodyYesThe delete request containing the API key and email address.

Returns: InlineResponse20042|error

Sample code:

InlineResponse20042 removed = check mailchimpClient->/rejects/delete.post({
'key: apiKey,
email: "[email protected]"
});

Sample response:

{"email": "[email protected]", "deleted": true}
Add to allowlist

Adds an email address or domain to the allowlist, ensuring delivery even if the address is on the reject list.

Parameters:

NameTypeRequiredDescription
payloadAllowlistsAddBodyYesThe allowlist request containing the API key and email or domain.

Returns: InlineResponse200|error

Sample code:

InlineResponse200 allowed = check mailchimpClient->/allowlists/add.post({
'key: apiKey,
email: "[email protected]"
});

Sample response:

{"email": "[email protected]", "added": true}
List allowlist entries

Returns all entries on the account allowlist.

Parameters:

NameTypeRequiredDescription
payloadAllowlistsListBodyYesThe list request containing the API key and optional email filter.

Returns: InlineResponse2001[]|error

Sample code:

InlineResponse2001[] allowlist = check mailchimpClient->/allowlists/list.post({
'key: apiKey
});

Sample response:

[{"email": "[email protected]", "detail": "", "created_at": "2026-03-17 15:00:00"}]

Subaccount management

List subaccounts

Returns a list of all subaccounts with their status and sending statistics.

Parameters:

NameTypeRequiredDescription
payloadSubaccountsListBodyYesThe list request containing the API key and optional query filter.

Returns: InlineResponse20050[]|error

Sample code:

InlineResponse20050[] subaccounts = check mailchimpClient->/subaccounts/list.post({
'key: apiKey,
q: "client-a"
});

Sample response:

[{"id": "client-a", "name": "Client A", "custom_quota": 10000, "status": "active", "reputation": 92, "created_at": "2026-01-01 00:00:00", "first_sent_at": "2026-01-02 10:00:00", "sent_weekly": 450, "sent_monthly": 1800, "sent_total": 12000}]
Add a subaccount

Creates a new subaccount for organizing sends and managing quotas.

Parameters:

NameTypeRequiredDescription
payloadSubaccountsAddBodyYesThe creation request containing the API key, subaccount ID, name, and optional quota.

Returns: InlineResponse20051|error

Sample code:

InlineResponse20051 subaccount = check mailchimpClient->/subaccounts/add.post({
'key: apiKey,
id: "client-b",
name: "Client B",
customQuota: 5000
});

Sample response:

{"id": "client-b", "name": "Client B", "custom_quota": 5000, "status": "active", "reputation": 0, "created_at": "2026-03-17 15:30:00", "first_sent_at": null, "sent_weekly": 0, "sent_monthly": 0, "sent_total": 0}
Delete a subaccount

Permanently deletes a subaccount. All messages sent by this subaccount remain in the system.

Parameters:

NameTypeRequiredDescription
payloadSubaccountsDeleteBodyYesThe delete request containing the API key and subaccount ID.

Returns: InlineResponse20054|error

Sample code:

InlineResponse20054 deleted = check mailchimpClient->/subaccounts/delete.post({
'key: apiKey,
id: "client-b"
});

Sample response:

{"id": "client-b", "name": "Client B", "custom_quota": 5000, "status": "active", "reputation": 0, "created_at": "2026-03-17 15:30:00"}

User & account info

Get account info

Returns information about the API-connected user, including quota, reputation, and historical stats.

Parameters:

NameTypeRequiredDescription
payloadExportsListBodyYesThe info request containing the API key.

Returns: InlineResponse20072|error

Sample code:

InlineResponse20072 userInfo = check mailchimpClient->/users/info.post({
'key: apiKey
});

Sample response:

{"username": "myuser", "created_at": "2025-06-01 00:00:00", "public_id": "abc123xyz", "reputation": 95, "hourly_quota": 5000, "backlog": 0, "stats": {"today": {"sent": 230, "hard_bounces": 1, "soft_bounces": 3, "rejects": 0, "complaints": 0, "unsubs": 0, "opens": 180, "unique_opens": 140, "clicks": 55, "unique_clicks": 42}}}
Ping the API

A simple health check that returns "PONG!" if the API key is valid and the service is reachable.

Parameters:

NameTypeRequiredDescription
payloadExportsListBodyYesThe ping request containing the API key.

Returns: string|error

Sample code:

string pong = check mailchimpClient->/users/ping.post({
'key: apiKey
});

Sample response:

"PONG!"

IP management

List dedicated IPs

Returns all dedicated IPs provisioned for the account with warmup status and pool info.

Parameters:

NameTypeRequiredDescription
payloadExportsListBodyYesThe list request containing the API key.

Returns: InlineResponse20017[]|error

Sample code:

InlineResponse20017[] ips = check mailchimpClient->/ips/list.post({
'key: apiKey
});

Sample response:

[{"ip": "198.51.100.10", "created_at": "2026-01-15 00:00:00", "pool": "Main Pool", "domain": "example.com", "custom_dns": {"enabled": false, "valid": false, "error": ""}, "warmup": {"warming_up": false, "start_at": null, "end_at": null}}]
Get IP info

Retrieves detailed information about a specific dedicated IP address.

Parameters:

NameTypeRequiredDescription
payloadIpsInfoBodyYesThe info request containing the API key and IP address.

Returns: InlineResponse20018|error

Sample code:

InlineResponse20018 ipInfo = check mailchimpClient->/ips/info.post({
'key: apiKey,
ip: "198.51.100.10"
});

Sample response:

{"ip": "198.51.100.10", "created_at": "2026-01-15 00:00:00", "pool": "Main Pool", "domain": "example.com", "custom_dns": {"enabled": false, "valid": false, "error": ""}, "warmup": {"warming_up": false, "start_at": null, "end_at": null}}

Inbound routing

List inbound domains

Returns a list of all inbound domains configured for the account.

Parameters:

NameTypeRequiredDescription
payloadExportsListBodyYesThe list request containing the API key.

Returns: InlineResponse2008[]|error

Sample code:

InlineResponse2008[] inboundDomains = check mailchimpClient->/inbound/domains.post({
'key: apiKey
});

Sample response:

[{"domain": "inbound.example.com", "created_at": "2026-02-01 00:00:00", "valid_mx": true}]
List inbound routes

Returns all inbound routes for a domain, including their URL patterns and webhook destinations.

Parameters:

NameTypeRequiredDescription
payloadInboundRoutesBodyYesThe routes request containing the API key and domain.

Returns: InlineResponse20012[]|error

Sample code:

InlineResponse20012[] routes = check mailchimpClient->/inbound/routes.post({
'key: apiKey,
domain: "inbound.example.com"
});

Sample response:

[{"id": "route123", "pattern": "support@", "url": "https://example.com/inbound/support"}]

URL tracking

List tracked URLs

Returns the 100 most-clicked URLs with click statistics.

Parameters:

NameTypeRequiredDescription
payloadExportsListBodyYesThe list request containing the API key.

Returns: InlineResponse20067[]|error

Sample code:

InlineResponse20067[] urls = check mailchimpClient->/urls/list.post({
'key: apiKey
});

Sample response:

[{"url": "https://example.com/pricing", "sent": 2400, "clicks": 890, "unique_clicks": 650}]
List tracking domains

Returns a list of all custom tracking domains configured for the account.

Parameters:

NameTypeRequiredDescription
payloadExportsListBodyYesThe list request containing the API key.

Returns: InlineResponse20070[]|error

Sample code:

InlineResponse20070[] trackingDomains = check mailchimpClient->/urls/tracking\-domains.post({
'key: apiKey
});

Sample response:

[{"domain": "track.example.com", "created_at": "2026-01-20 00:00:00", "last_tested_at": "2026-03-17 10:00:00", "cname": {"valid": true, "valid_after": null, "error": null}, "valid_tracking": true}]

Metadata

List custom metadata fields

Returns all custom metadata fields defined in the account.

Parameters:

NameTypeRequiredDescription
payloadExportsListBodyYesThe list request containing the API key.

Returns: InlineResponse20036[]|error

Sample code:

InlineResponse20036[] metadata = check mailchimpClient->/metadata/list.post({
'key: apiKey
});

Sample response:

[{"name": "campaign_id", "state": "active", "view_template": ""}]
Add a metadata field

Creates a new custom metadata field for tagging messages with additional data.

Parameters:

NameTypeRequiredDescription
payloadMetadataAddBodyYesThe add request containing the API key, field name, and optional view template.

Returns: InlineResponse20037|error

Sample code:

InlineResponse20037 field = check mailchimpClient->/metadata/add.post({
'key: apiKey,
name: "order_id",
viewTemplate: "order_id"
});

Sample response:

{"name": "order_id", "state": "active", "view_template": "order_id"}

Export data

List exports

Returns a list of all data export jobs for the account.

Parameters:

NameTypeRequiredDescription
payloadExportsListBodyYesThe list request containing the API key.

Returns: InlineResponse2004[]|error

Sample code:

InlineResponse2004[] exports = check mailchimpClient->/exports/list.post({
'key: apiKey
});

Sample response:

[{"id": "exp_abc123", "created_at": "2026-03-17 10:00:00", "type": "activity", "finished_at": "2026-03-17 10:05:00", "state": "complete", "result_url": "https://mandrillapp.com/exports/exp_abc123.zip"}]
Export activity

Starts a new export job for account sending activity data.

Parameters:

NameTypeRequiredDescription
payloadExportsActivityBodyYesThe export request containing the API key and optional date range and tag filters.

Returns: InlineResponse2007|error

Sample code:

InlineResponse2007 exportJob = check mailchimpClient->/exports/activity.post({
'key: apiKey,
dateFrom: "2026-03-01 00:00:00",
dateTo: "2026-03-17 23:59:59"
});

Sample response:

{"id": "exp_xyz789", "created_at": "2026-03-17 16:00:00", "type": "activity", "finished_at": null, "state": "waiting", "result_url": null}