{"files":{"SKILL.md":"---\nname: mailchimp-transactional-api\ndescription: \"Mailchimp Transactional API skill. Use when working with Mailchimp Transactional for allowlists, exports, ips. Covers 99 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Mailchimp Transactional API\nAPI version: 1.4.0\n\n## Auth\nDetected auth parameter: `key` (found in parameter)\n\n## Base URL\nhttps://mandrillapp.com/api/1.4\n\n## Setup\n1. Set the `key` parameter for authentication\n2. Verify API access with a test request\n3. POST /allowlists/add -- create first add\n\n## Endpoints\n99 endpoints across 15 groups. See references/api-spec.lap for full details.\n\n### Allowlists\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /allowlists/add | Add email to allowlist |\n| POST | /allowlists/list | List allowlist entries |\n| POST | /allowlists/delete | Remove email from allowlist |\n\n### Exports\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /exports/info | Get export job information |\n| POST | /exports/list | List export jobs |\n| POST | /exports/rejects | Export rejection blacklist |\n| POST | /exports/whitelist | Export rejection allowlist (legacy) |\n| POST | /exports/allowlist | Export rejection allowlist |\n| POST | /exports/activity | Export activity history |\n\n### Ips\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /ips/list | List dedicated IPs |\n| POST | /ips/info | Get dedicated IP information |\n| POST | /ips/provision | Request dedicated IP provisioning |\n| POST | /ips/start-warmup | Start IP warmup process |\n| POST | /ips/cancel-warmup | Cancel IP warmup process |\n| POST | /ips/set-pool | Move IP to different pool |\n| POST | /ips/delete | Delete dedicated IP |\n| POST | /ips/list-pools | List dedicated IP pools |\n| POST | /ips/pool-info | Get pool information |\n| POST | /ips/create-pool | Create dedicated IP pool |\n| POST | /ips/delete-pool | Delete dedicated IP pool |\n| POST | /ips/check-custom-dns | Test custom DNS configuration |\n| POST | /ips/set-custom-dns | Configure custom DNS for IP |\n\n### Inbound\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /inbound/domains | List inbound domains |\n| POST | /inbound/add-domain | Add inbound domain |\n| POST | /inbound/check-domain | Check domain settings |\n| POST | /inbound/delete-domain | Delete inbound domain |\n| POST | /inbound/routes | List mailbox routes |\n| POST | /inbound/add-route | Add mailbox route |\n| POST | /inbound/update-route | Update mailbox route |\n| POST | /inbound/delete-route | Delete mailbox route |\n| POST | /inbound/send-raw | Send mime document |\n\n### Mctemplates\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /mctemplates/info | Get Mailchimp Transactional template information |\n| POST | /mctemplates/list | List Mailchimp Transactional templates |\n| POST | /mctemplates/render | Render a Mailchimp Transactional template |\n| POST | /mctemplates/time-series | Get Mailchimp Transactional template time series |\n\n### Messages\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /messages/send | Send a new transactional message through the Transactional API. |\n| POST | /messages/send-template | Send a new transactional message using a template |\n| POST | /messages/send-mc-template | Send using Mailchimp template |\n| POST | /messages/search | Search recently sent messages |\n| POST | /messages/search-time-series | Get time series data for message search |\n| POST | /messages/info | Get information about a single sent message |\n| POST | /messages/content | Get the full content of a sent message |\n| POST | /messages/parse | Parse a MIME message |\n| POST | /messages/send-raw | Send a raw MIME message through Mandrill |\n| POST | /messages/list-scheduled | Get scheduled emails |\n| POST | /messages/cancel-scheduled | Cancel a scheduled email |\n| POST | /messages/reschedule | Reschedule a scheduled email |\n| POST | /messages/send-sms | Send SMS message |\n\n### Metadata\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /metadata/list | List custom metadata fields |\n| POST | /metadata/add | Add custom metadata field |\n| POST | /metadata/update | Update custom metadata field |\n| POST | /metadata/delete | Delete custom metadata field |\n\n### Rejects\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /rejects/add | Add email to rejection blacklist |\n| POST | /rejects/add-sms | Add phone number to SMS rejection denylist |\n| POST | /rejects/list | List rejection blacklist entries |\n| POST | /rejects/list-sms | List SMS rejection denylist entries |\n| POST | /rejects/delete | Delete email from rejection blacklist |\n| POST | /rejects/delete-sms | Delete phone number from SMS rejection denylist |\n\n### Senders\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /senders/list | List senders used by this account |\n| POST | /senders/domains | List sender domains |\n| POST | /senders/add-domain | Add a sender domain |\n| POST | /senders/check-domain | Check domain SPF and DKIM |\n| POST | /senders/verify-domain | Verify a sender domain by email |\n| POST | /senders/info | Get detailed information for a sender |\n| POST | /senders/time-series | Get hourly stats for a sender |\n| POST | /senders/delete-domain | Delete a sender domain |\n\n### Subaccounts\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /subaccounts/list | List subaccounts |\n| POST | /subaccounts/add | Add a new subaccount |\n| POST | /subaccounts/info | Get subaccount information |\n| POST | /subaccounts/update | Update an existing subaccount |\n| POST | /subaccounts/delete | Delete a subaccount |\n| POST | /subaccounts/pause | Pause a subaccount |\n| POST | /subaccounts/resume | Resume a paused subaccount |\n\n### Tags\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /tags/list | List all user-defined tags |\n| POST | /tags/delete | Delete a tag permanently |\n| POST | /tags/info | Get detailed information about a tag |\n| POST | /tags/time-series | Get time series data for a specific tag |\n| POST | /tags/all-time-series | Get time series data for all tags |\n\n### Templates\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /templates/add | Add a new template |\n| POST | /templates/info | Get template information |\n| POST | /templates/update | Update an existing template |\n| POST | /templates/publish | Publish a template |\n| POST | /templates/delete | Delete a template |\n| POST | /templates/list | List all templates |\n| POST | /templates/time-series | Get template time series data |\n| POST | /templates/render | Render a template |\n\n### Urls\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /urls/tracking-domains | Get tracking domains |\n| POST | /urls/add-tracking-domain | Add tracking domain |\n| POST | /urls/check-tracking-domain | Check tracking domain |\n| POST | /urls/delete-tracking-domain | Delete a tracking domain |\n\n### Users\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /users/info | Return the information about the API-connected user |\n| POST | /users/ping | Validate an API key and respond to a ping |\n| POST | /users/ping2 | Validate an API key and respond to a ping (strict JSON parser version) |\n| POST | /users/senders | Return the senders that have tried to use this account |\n\n### Webhooks\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /webhooks/list | Get the list of all webhooks |\n| POST | /webhooks/add | Add a new webhook |\n| POST | /webhooks/info | Get webhook information |\n| POST | /webhooks/update | Update an existing webhook |\n| POST | /webhooks/delete | Delete an existing webhook |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a add?\" -> POST /allowlists/add\n- \"Create a list?\" -> POST /allowlists/list\n- \"Create a delete?\" -> POST /allowlists/delete\n- \"Create a info?\" -> POST /exports/info\n- \"Create a reject?\" -> POST /exports/rejects\n- \"Create a whitelist?\" -> POST /exports/whitelist\n- \"Create a allowlist?\" -> POST /exports/allowlist\n- \"Create a activity?\" -> POST /exports/activity\n- \"Create a provision?\" -> POST /ips/provision\n- \"Create a start-warmup?\" -> POST /ips/start-warmup\n- \"Create a cancel-warmup?\" -> POST /ips/cancel-warmup\n- \"Create a set-pool?\" -> POST /ips/set-pool\n- \"Create a list-pool?\" -> POST /ips/list-pools\n- \"Create a pool-info?\" -> POST /ips/pool-info\n- \"Create a create-pool?\" -> POST /ips/create-pool\n- \"Create a delete-pool?\" -> POST /ips/delete-pool\n- \"Create a check-custom-dn?\" -> POST /ips/check-custom-dns\n- \"Create a set-custom-dn?\" -> POST /ips/set-custom-dns\n- \"Create a domain?\" -> POST /inbound/domains\n- \"Create a add-domain?\" -> POST /inbound/add-domain\n- \"Create a check-domain?\" -> POST /inbound/check-domain\n- \"Create a delete-domain?\" -> POST /inbound/delete-domain\n- \"Create a route?\" -> POST /inbound/routes\n- \"Create a add-route?\" -> POST /inbound/add-route\n- \"Create a update-route?\" -> POST /inbound/update-route\n- \"Create a delete-route?\" -> POST /inbound/delete-route\n- \"Create a send-raw?\" -> POST /inbound/send-raw\n- \"Create a render?\" -> POST /mctemplates/render\n- \"Create a time-sery?\" -> POST /mctemplates/time-series\n- \"Create a send?\" -> POST /messages/send\n- \"Create a send-template?\" -> POST /messages/send-template\n- \"Create a send-mc-template?\" -> POST /messages/send-mc-template\n- \"Create a search?\" -> POST /messages/search\n- \"Create a search-time-sery?\" -> POST /messages/search-time-series\n- \"Create a content?\" -> POST /messages/content\n- \"Create a parse?\" -> POST /messages/parse\n- \"Create a list-scheduled?\" -> POST /messages/list-scheduled\n- \"Create a cancel-scheduled?\" -> POST /messages/cancel-scheduled\n- \"Create a reschedule?\" -> POST /messages/reschedule\n- \"Create a send-sm?\" -> POST /messages/send-sms\n- \"Create a update?\" -> POST /metadata/update\n- \"Create a add-sm?\" -> POST /rejects/add-sms\n- \"Create a list-sm?\" -> POST /rejects/list-sms\n- \"Create a delete-sm?\" -> POST /rejects/delete-sms\n- \"Create a verify-domain?\" -> POST /senders/verify-domain\n- \"Create a pause?\" -> POST /subaccounts/pause\n- \"Create a resume?\" -> POST /subaccounts/resume\n- \"Create a all-time-sery?\" -> POST /tags/all-time-series\n- \"Create a publish?\" -> POST /templates/publish\n- \"Create a tracking-domain?\" -> POST /urls/tracking-domains\n- \"Create a add-tracking-domain?\" -> POST /urls/add-tracking-domain\n- \"Create a check-tracking-domain?\" -> POST /urls/check-tracking-domain\n- \"Create a delete-tracking-domain?\" -> POST /urls/delete-tracking-domain\n- \"Create a ping?\" -> POST /users/ping\n- \"Create a ping2?\" -> POST /users/ping2\n- \"Create a sender?\" -> POST /users/senders\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Mailchimp Transactional API\n@base https://mandrillapp.com/api/1.4\n@version 1.4.0\n@endpoints 99\n@hint download_for_search\n@toc allowlists(3), exports(6), ips(13), inbound(9), mctemplates(4), messages(13), metadata(4), rejects(6), senders(8), subaccounts(7), tags(5), templates(8), urls(4), users(4), webhooks(5)\n\n@group allowlists\n@endpoint POST /allowlists/add\n@desc Add email to allowlist\n@returns(200) {email: str(email), added: bool} # Success\n@errors {401: Invalid or missing API key., 422: One or more request parameters failed validation., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /allowlists/list\n@desc List allowlist entries\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /allowlists/delete\n@desc Remove email from allowlist\n@returns(200) {email: str(email), deleted: bool} # Success\n@errors {401: Invalid or missing API key., 422: One or more request parameters failed validation., 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group exports\n@endpoint POST /exports/info\n@desc Get export job information\n@returns(200) {id: str, created_at: str, type: str, finished_at: str?, state: str, result_url: str(uri)?} # Success\n@errors {401: Invalid or missing API key., 404: Unknown export job, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /exports/list\n@desc List export jobs\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /exports/rejects\n@desc Export rejection blacklist\n@returns(200) {id: str, created_at: str, type: str, finished_at: str?, state: str, result_url: str(uri)?} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /exports/whitelist\n@desc Export rejection allowlist (legacy)\n@returns(200) {id: str, created_at: str, type: str, finished_at: str?, state: str, result_url: str(uri)?} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /exports/allowlist\n@desc Export rejection allowlist\n@returns(200) {id: str, created_at: str, type: str, finished_at: str?, state: str, result_url: str(uri)?} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /exports/activity\n@desc Export activity history\n@required {key: map{key!: str} # API key field included in request bodies.}\n@optional {notify_email: str(email) # Optional email address to notify when the export job has finished, date_from: str # Start date as a UTC string in YYYY-MM-DD HH:MM:SS format, date_to: str # End date as a UTC string in YYYY-MM-DD HH:MM:SS format, tags: [str] # Array of tag names to narrow the export to; will match messages that contain ANY of the tags, senders: [str(email)] # Array of sender email addresses to narrow the export to, states: [str] # Array of message states to narrow the export to; messages with ANY of the states will be included, api_keys: [str] # Array of API keys to narrow the export to; messages sent with ANY of the keys will be included}\n@returns(200) {id: str, created_at: str, type: str, finished_at: str?, state: str, result_url: str(uri)?} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group ips\n@endpoint POST /ips/list\n@desc List dedicated IPs\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /ips/info\n@desc Get dedicated IP information\n@returns(200) {ip: str(ipv4), created_at: str, pool: str, domain: str, custom_dns: map{enabled: bool, valid: bool, error: str?}, warmup: map{warming_up: bool, start_at: str?, end_at: str?}} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /ips/provision\n@desc Request dedicated IP provisioning\n@returns(200) {requested_at: str} # Success\n@errors {401: Invalid or missing API key., 402: A paid plan is required to use this feature., 404: Unknown IP pool, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /ips/start-warmup\n@desc Start IP warmup process\n@returns(200) {ip: str(ipv4), created_at: str, pool: str, domain: str, custom_dns: map{enabled: bool, valid: bool, error: str?}, warmup: map{warming_up: bool, start_at: str?, end_at: str?}} # Success\n@errors {401: Invalid or missing API key., 404: Unknown dedicated IP, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /ips/cancel-warmup\n@desc Cancel IP warmup process\n@returns(200) {ip: str(ipv4), created_at: str, pool: str, domain: str, custom_dns: map{enabled: bool, valid: bool, error: str?}, warmup: map{warming_up: bool, start_at: str?, end_at: str?}} # Success\n@errors {401: Invalid or missing API key., 404: Unknown dedicated IP, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /ips/set-pool\n@desc Move IP to different pool\n@returns(200) {ip: str(ipv4), created_at: str, pool: str, domain: str, custom_dns: map{enabled: bool, valid: bool, error: str?}, warmup: map{warming_up: bool, start_at: str?, end_at: str?}} # Success\n@errors {400: Cannot leave default pool empty, 401: Invalid or missing API key., 404: Unknown IP or pool, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /ips/delete\n@desc Delete dedicated IP\n@returns(200) {ip: str, deleted: bool} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /ips/list-pools\n@desc List dedicated IP pools\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /ips/pool-info\n@desc Get pool information\n@returns(200) {name: str, created_at: str, ips: [map]} # Success\n@errors {401: Invalid or missing API key., 404: Unknown IP pool, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /ips/create-pool\n@desc Create dedicated IP pool\n@returns(200) {name: str, created_at: str, ips: [map]} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /ips/delete-pool\n@desc Delete dedicated IP pool\n@returns(200) {pool: str, deleted: bool} # Success\n@errors {400: Cannot delete default pool or non-empty pool, 401: Invalid or missing API key., 404: Unknown IP pool, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /ips/check-custom-dns\n@desc Test custom DNS configuration\n@returns(200) {valid: bool, error: str?} # Success\n@errors {401: Invalid or missing API key., 404: Unknown dedicated IP, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /ips/set-custom-dns\n@desc Configure custom DNS for IP\n@returns(200) {ip: str(ipv4), created_at: str, pool: str, domain: str, custom_dns: map{enabled: bool, valid: bool, error: str?}, warmup: map{warming_up: bool, start_at: str?, end_at: str?}} # Success\n@errors {400: Invalid custom DNS configuration, 401: Invalid or missing API key., 404: Unknown dedicated IP, 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group inbound\n@endpoint POST /inbound/domains\n@desc List inbound domains\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /inbound/add-domain\n@desc Add inbound domain\n@returns(200) {domain: str, created_at: str, valid_mx: bool} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /inbound/check-domain\n@desc Check domain settings\n@returns(200) {domain: str, created_at: str, valid_mx: bool} # Success\n@errors {401: Invalid or missing API key., 404: Unknown inbound domain, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /inbound/delete-domain\n@desc Delete inbound domain\n@returns(200) {domain: str, created_at: str, valid_mx: bool} # Success\n@errors {401: Invalid or missing API key., 404: Unknown inbound domain, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /inbound/routes\n@desc List mailbox routes\n@returns(200) Success\n@errors {401: Invalid or missing API key., 404: Unknown inbound domain, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /inbound/add-route\n@desc Add mailbox route\n@returns(200) {id: str, pattern: str, url: str(uri)} # Success\n@errors {401: Invalid or missing API key., 404: Unknown inbound domain, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /inbound/update-route\n@desc Update mailbox route\n@returns(200) {id: str, pattern: str, url: str(uri)} # Success\n@errors {401: Invalid or missing API key., 404: Unknown inbound route, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /inbound/delete-route\n@desc Delete mailbox route\n@returns(200) {id: str, pattern: str, url: str(uri)} # Success\n@errors {401: Invalid or missing API key., 404: Unknown inbound route, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /inbound/send-raw\n@desc Send mime document\n@returns(200) Success\n@errors {401: Invalid or missing API key., 404: Unknown inbound domain, 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group mctemplates\n@endpoint POST /mctemplates/info\n@desc Get Mailchimp Transactional template information\n@returns(200) Success\n@errors {401: Invalid or missing API key., 404: Mailchimp template not found, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /mctemplates/list\n@desc List Mailchimp Transactional templates\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /mctemplates/render\n@desc Render a Mailchimp Transactional template\n@returns(200) {html: str} # Success\n@errors {401: Invalid or missing API key., 404: Mailchimp template not found, 422: Invalid mc_template_version parameter, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /mctemplates/time-series\n@desc Get Mailchimp Transactional template time series\n@returns(200) Success\n@errors {401: Invalid or missing API key., 404: Mailchimp template not found, 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group messages\n@endpoint POST /messages/send\n@desc Send a new transactional message through the Transactional API.\n@returns(200) Success\n@errors {401: Invalid or missing API key., 402: A paid plan is required to use this feature., 404: Unknown subaccount, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /messages/send-template\n@desc Send a new transactional message using a template\n@returns(200) Success\n@errors {401: Invalid or missing API key., 402: A paid plan is required to use this feature., 404: Template or subaccount not found, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /messages/send-mc-template\n@desc Send using Mailchimp template\n@returns(200) Success\n@errors {401: Invalid or missing API key., 402: A paid plan is required to use this feature., 404: Template or subaccount not found, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /messages/search\n@desc Search recently sent messages\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred., 503: Service unavailable}\n\n@endpoint POST /messages/search-time-series\n@desc Get time series data for message search\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred., 503: Service unavailable}\n\n@endpoint POST /messages/info\n@desc Get information about a single sent message\n@returns(200) Success\n@errors {401: Invalid or missing API key., 404: Message not found, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /messages/content\n@desc Get the full content of a sent message\n@returns(200) Success\n@errors {401: Invalid or missing API key., 404: Message not found, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /messages/parse\n@desc Parse a MIME message\n@returns(200) {headers: map, text: str, text_flowed: bool, attachments: [map], from_email: str(email), from_name: str, html: str?, to: [map], subject: str?} # Success\n@errors {401: Invalid or missing API key., 422: One or more request parameters failed validation., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /messages/send-raw\n@desc Send a raw MIME message through Mandrill\n@returns(200) Success\n@errors {401: Invalid or missing API key., 402: A paid plan is required to use this feature., 404: Unknown subaccount, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /messages/list-scheduled\n@desc Get scheduled emails\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /messages/cancel-scheduled\n@desc Cancel a scheduled email\n@returns(200) {_id: str, created_at: str, send_at: str, from_email: str(email), to: str(email), subject: str} # Success\n@errors {401: Invalid or missing API key., 404: Message not found, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /messages/reschedule\n@desc Reschedule a scheduled email\n@returns(200) {_id: str, created_at: str, send_at: str, from_email: str(email), to: str(email), subject: str} # Success\n@errors {401: Invalid or missing API key., 404: Message not found, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /messages/send-sms\n@desc Send SMS message\n@returns(200) Success\n@errors {401: Invalid or missing API key., 404: Unknown subaccount for SMS message, 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group metadata\n@endpoint POST /metadata/list\n@desc List custom metadata fields\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /metadata/add\n@desc Add custom metadata field\n@returns(200) {name: str, state: str, view_template: str?} # Success\n@errors {401: Invalid or missing API key., 422: One or more request parameters failed validation., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /metadata/update\n@desc Update custom metadata field\n@returns(200) {name: str, state: str, view_template: str?} # Success\n@errors {401: Invalid or missing API key., 404: Unknown metadata field, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /metadata/delete\n@desc Delete custom metadata field\n@returns(200) {name: str, state: str, view_template: str?} # Success\n@errors {401: Invalid or missing API key., 404: Unknown metadata field, 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group rejects\n@endpoint POST /rejects/add\n@desc Add email to rejection blacklist\n@returns(200) {email: str(email), added: bool} # Success\n@errors {401: Invalid or missing API key., 404: Unknown subaccount, 422: One or more request parameters failed validation., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /rejects/add-sms\n@desc Add phone number to SMS rejection denylist\n@returns(200) {phone: str, added: bool, deleted: bool, subaccount: str?} # Success\n@errors {401: Invalid or missing API key., 404: Unknown subaccount, 422: One or more request parameters failed validation., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /rejects/list\n@desc List rejection blacklist entries\n@returns(200) Success\n@errors {401: Invalid or missing API key., 404: Unknown subaccount, 429: Request rate limit exceeded. Retry after a brief delay., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /rejects/list-sms\n@desc List SMS rejection denylist entries\n@returns(200) Success\n@errors {401: Invalid or missing API key., 422: One or more request parameters failed validation., 429: Request rate limit exceeded. Retry after a brief delay., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /rejects/delete\n@desc Delete email from rejection blacklist\n@returns(200) {email: str(email), deleted: bool, subaccount: str} # Success\n@errors {401: Invalid or missing API key., 404: Email not found in rejection list or unknown subaccount, 422: One or more request parameters failed validation., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /rejects/delete-sms\n@desc Delete phone number from SMS rejection denylist\n@returns(200) {phone: str, added: bool, deleted: bool, subaccount: str?} # Success\n@errors {401: Invalid or missing API key., 404: Phone number not found in rejection list or unknown subaccount, 422: One or more request parameters failed validation., 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group senders\n@endpoint POST /senders/list\n@desc List senders used by this account\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /senders/domains\n@desc List sender domains\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /senders/add-domain\n@desc Add a sender domain\n@returns(200) {domain: str(hostname), created_at: str(date-time), last_tested_at: str(date-time), spf: map{valid: bool, valid_after: str(date-time), error: str}, dkim: map{valid: bool, valid_after: str(date-time), error: str}, dkim2: map{valid: bool, valid_after: str(date-time), error: str}, dmarc: map{valid: bool, error: str}, verified_at: str(date-time), valid_signing: bool, verify_txt_key: str} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /senders/check-domain\n@desc Check domain SPF and DKIM\n@returns(200) {domain: str(hostname), created_at: str(date-time), last_tested_at: str(date-time), spf: map{valid: bool, valid_after: str(date-time), error: str}, dkim: map{valid: bool, valid_after: str(date-time), error: str}, dkim2: map{valid: bool, valid_after: str(date-time), error: str}, dmarc: map{valid: bool, error: str}, verified_at: str(date-time), valid_signing: bool, verify_txt_key: str} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /senders/verify-domain\n@desc Verify a sender domain by email\n@returns(200) {status: str, domain: str(hostname), email: str(email)} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /senders/info\n@desc Get detailed information for a sender\n@returns(200) Success\n@errors {401: Invalid or missing API key., 404: Unknown sender, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /senders/time-series\n@desc Get hourly stats for a sender\n@returns(200) Success\n@errors {401: Invalid or missing API key., 404: Unknown sender, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /senders/delete-domain\n@desc Delete a sender domain\n@returns(200) {domain: str(hostname), created_at: str(date-time), last_tested_at: str(date-time), spf: map{valid: bool, valid_after: str(date-time), error: str}, dkim: map{valid: bool, valid_after: str(date-time), error: str}, dkim2: map{valid: bool, valid_after: str(date-time), error: str}, dmarc: map{valid: bool, error: str}, verified_at: str(date-time), valid_signing: bool, verify_txt_key: str} # Success\n@errors {401: Invalid or missing API key., 403: Cannot delete verified sender domain — please login to confirm deletion, 404: Unknown sender domain, 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group subaccounts\n@endpoint POST /subaccounts/list\n@desc List subaccounts\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /subaccounts/add\n@desc Add a new subaccount\n@returns(200) {id: str, name: str, created_at: str, first_sent_at: str?, status: str, reputation: int, sent_weekly: int, sent_monthly: int, sent_total: int, custom_quota: int} # Success\n@errors {401: Invalid or missing API key., 422: One or more request parameters failed validation., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /subaccounts/info\n@desc Get subaccount information\n@returns(200) Success\n@errors {401: Invalid or missing API key., 404: Unknown subaccount, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /subaccounts/update\n@desc Update an existing subaccount\n@returns(200) {id: str, name: str, created_at: str, first_sent_at: str?, status: str, reputation: int, sent_weekly: int, sent_monthly: int, sent_total: int, custom_quota: int} # Success\n@errors {401: Invalid or missing API key., 404: Unknown subaccount, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /subaccounts/delete\n@desc Delete a subaccount\n@returns(200) {id: str, name: str, created_at: str, first_sent_at: str?, status: str, reputation: int, sent_weekly: int, sent_monthly: int, sent_total: int, custom_quota: int} # Success\n@errors {401: Invalid or missing API key., 404: Unknown subaccount, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /subaccounts/pause\n@desc Pause a subaccount\n@returns(200) {id: str, name: str, created_at: str, first_sent_at: str?, status: str, reputation: int, sent_weekly: int, sent_monthly: int, sent_total: int, custom_quota: int} # Success\n@errors {401: Invalid or missing API key., 404: Unknown subaccount, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /subaccounts/resume\n@desc Resume a paused subaccount\n@returns(200) {id: str, name: str, created_at: str, first_sent_at: str?, status: str, reputation: int, sent_weekly: int, sent_monthly: int, sent_total: int, custom_quota: int} # Success\n@errors {401: Invalid or missing API key., 404: Unknown subaccount, 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group tags\n@endpoint POST /tags/list\n@desc List all user-defined tags\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /tags/delete\n@desc Delete a tag permanently\n@returns(200) {tag: str, sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, clicks: int, unique_opens: int, unique_clicks: int, reputation: int} # Success\n@errors {400: Invalid tag name, 401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /tags/info\n@desc Get detailed information about a tag\n@returns(200) {tag: str, sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, clicks: int, unique_opens: int, unique_clicks: int, reputation: int, stats: map{today: map{sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, unique_opens: int, clicks: int, unique_clicks: int}, last_7_days: map{sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, unique_opens: int, clicks: int, unique_clicks: int}, last_30_days: map{sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, unique_opens: int, clicks: int, unique_clicks: int}, last_60_days: map{sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, unique_opens: int, clicks: int, unique_clicks: int}, last_90_days: map{sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, unique_opens: int, clicks: int, unique_clicks: int}}} # Success\n@errors {400: Invalid tag name, 401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /tags/time-series\n@desc Get time series data for a specific tag\n@returns(200) Success\n@errors {400: Invalid tag name, 401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /tags/all-time-series\n@desc Get time series data for all tags\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group templates\n@endpoint POST /templates/add\n@desc Add a new template\n@returns(200) {slug: str, name: str, labels: [str], code: str?, subject: str?, from_email: str(email)?, from_name: str?, text: str?, publish_name: str, publish_code: str?, publish_subject: str?, publish_from_email: str(email)?, publish_from_name: str?, publish_text: str?, published_at: str(date-time)?, created_at: str(date-time), updated_at: str(date-time), draft_updated_at: str(date-time), is_broken_template: bool} # Success\n@errors {401: Invalid or missing API key., 422: Invalid template data, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /templates/info\n@desc Get template information\n@returns(200) {slug: str, name: str, labels: [str], code: str?, subject: str?, from_email: str(email)?, from_name: str?, text: str?, publish_name: str, publish_code: str?, publish_subject: str?, publish_from_email: str(email)?, publish_from_name: str?, publish_text: str?, published_at: str(date-time)?, created_at: str(date-time), updated_at: str(date-time), draft_updated_at: str(date-time), is_broken_template: bool} # Success\n@errors {401: Invalid or missing API key., 404: Template not found, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /templates/update\n@desc Update an existing template\n@returns(200) {slug: str, name: str, labels: [str], code: str?, subject: str?, from_email: str(email)?, from_name: str?, text: str?, publish_name: str, publish_code: str?, publish_subject: str?, publish_from_email: str(email)?, publish_from_name: str?, publish_text: str?, published_at: str(date-time)?, created_at: str(date-time), updated_at: str(date-time), draft_updated_at: str(date-time), is_broken_template: bool} # Success\n@errors {401: Invalid or missing API key., 404: Template not found, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /templates/publish\n@desc Publish a template\n@returns(200) {slug: str, name: str, labels: [str], code: str?, subject: str?, from_email: str(email)?, from_name: str?, text: str?, publish_name: str, publish_code: str?, publish_subject: str?, publish_from_email: str(email)?, publish_from_name: str?, publish_text: str?, published_at: str(date-time)?, created_at: str(date-time), updated_at: str(date-time), draft_updated_at: str(date-time), is_broken_template: bool} # Success\n@errors {401: Invalid or missing API key., 404: Template not found, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /templates/delete\n@desc Delete a template\n@returns(200) {slug: str, name: str, labels: [str], code: str?, subject: str?, from_email: str(email)?, from_name: str?, text: str?, publish_name: str, publish_code: str?, publish_subject: str?, publish_from_email: str(email)?, publish_from_name: str?, publish_text: str?, published_at: str(date-time)?, created_at: str(date-time), updated_at: str(date-time), draft_updated_at: str(date-time), is_broken_template: bool} # Success\n@errors {401: Invalid or missing API key., 404: Template not found, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /templates/list\n@desc List all templates\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /templates/time-series\n@desc Get template time series data\n@returns(200) Success\n@errors {401: Invalid or missing API key., 404: Template not found, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /templates/render\n@desc Render a template\n@returns(200) {html: str} # Success\n@errors {401: Invalid or missing API key., 404: Template not found, 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group urls\n@endpoint POST /urls/tracking-domains\n@desc Get tracking domains\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /urls/add-tracking-domain\n@desc Add tracking domain\n@returns(200) {domain: str(hostname), created_at: str, last_tested_at: str, cname: map{valid: bool, valid_after: str?, error: str?}, valid_tracking: bool} # Success\n@errors {400: Invalid tracking domain, 401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /urls/check-tracking-domain\n@desc Check tracking domain\n@returns(200) {domain: str(hostname), created_at: str, last_tested_at: str, cname: map{valid: bool, valid_after: str?, error: str?}, valid_tracking: bool} # Success\n@errors {401: Invalid or missing API key., 404: Unknown tracking domain, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /urls/delete-tracking-domain\n@desc Delete a tracking domain\n@returns(200) {domain: str(hostname), created_at: str, last_tested_at: str, cname: map{valid: bool, valid_after: str?, error: str?}, valid_tracking: bool} # Success\n@errors {401: Invalid or missing API key., 403: Cannot delete verified tracking domain — please login to confirm deletion, 404: Unknown tracking domain, 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group users\n@endpoint POST /users/info\n@desc Return the information about the API-connected user\n@returns(200) {username: str, created_at: str, public_id: str, reputation: int, hourly_quota: int, backlog: int, stats: map{today: map{sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, unique_opens: int, clicks: int, unique_clicks: int}, last_7_days: map{sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, unique_opens: int, clicks: int, unique_clicks: int}, last_30_days: map{sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, unique_opens: int, clicks: int, unique_clicks: int}, last_60_days: map{sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, unique_opens: int, clicks: int, unique_clicks: int}, last_90_days: map{sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, unique_opens: int, clicks: int, unique_clicks: int}, all_time: map{sent: int, hard_bounces: int, soft_bounces: int, rejects: int, complaints: int, unsubs: int, opens: int, unique_opens: int, clicks: int, unique_clicks: int}}} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /users/ping\n@desc Validate an API key and respond to a ping\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /users/ping2\n@desc Validate an API key and respond to a ping (strict JSON parser version)\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /users/senders\n@desc Return the senders that have tried to use this account\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@group webhooks\n@endpoint POST /webhooks/list\n@desc Get the list of all webhooks\n@returns(200) Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /webhooks/add\n@desc Add a new webhook\n@returns(200) {id: int, url: str(uri), auth_key: str?, description: str?, events: [str], created_at: str, last_sent_at: str?, batches_sent: int, events_sent: int, last_error: str?} # Success\n@errors {401: Invalid or missing API key., 500: An unexpected internal server error occurred.}\n\n@endpoint POST /webhooks/info\n@desc Get webhook information\n@returns(200) {id: int, url: str(uri), auth_key: str?, description: str?, events: [str], created_at: str, last_sent_at: str?, batches_sent: int, events_sent: int, last_error: str?} # Success\n@errors {401: Invalid or missing API key., 404: Unknown webhook, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /webhooks/update\n@desc Update an existing webhook\n@returns(200) {id: int, url: str(uri), auth_key: str?, description: str?, events: [str], created_at: str, last_sent_at: str?, batches_sent: int, events_sent: int, last_error: str?} # Success\n@errors {401: Invalid or missing API key., 404: Unknown webhook, 500: An unexpected internal server error occurred.}\n\n@endpoint POST /webhooks/delete\n@desc Delete an existing webhook\n@returns(200) {id: int, url: str(uri), auth_key: str?, description: str?, events: [str], created_at: str, last_sent_at: str?, batches_sent: int, events_sent: int, last_error: str?} # Success\n@errors {401: Invalid or missing API key., 404: Unknown webhook, 500: An unexpected internal server error occurred.}\n\n@endgroup\n\n@end\n"}}