Skip to content

Mandrill API

by mandrillapp.com

No authHTTPSEmail
Open documentation ↗

Overview

Mandrill is a reliable, scalable, and secure delivery API for transactional emails from websites and applications. It's ideal for sending data-driven transactional emails, including targeted e-commerce and personalized one-to-one messages.

Mandrill is an email API from mandrillapp.com. It needs no API key. It is served over HTTPS. Its OpenAPI description documents 90 endpoints.

At a glance

Authentication
No auth
HTTPS
Yes
CORS
Unknown
Category
Email
Base URL
https://mandrillapp.com/api/1.0/
Version
1.0
Endpoints
90
Spec updated
2021-06-21

Make a first request

Replace the placeholders; the documentation says exactly where credentials go.

cURL
curl -X POST "https://mandrillapp.com/api/1.0/exports/activity.json" \
  -H "Accept: application/json"
JavaScript
const response = await fetch("https://mandrillapp.com/api/1.0/exports/activity.json", {
  method: "POST",
  headers: {
    "Accept": "application/json",
  },
});
const data = await response.json();
console.log(data);
Python
import requests

response = requests.request(
    "POST",
    "https://mandrillapp.com/api/1.0/exports/activity.json",
    headers={
    "Accept": "application/json",
    },
    timeout=30,
)
print(response.json())

Endpoints

MethodPathWhat it does
POST/exports/activity.jsonBegins an export of your activity history. The activity will be exported to a zip archive containing a single file named activity.csv in the same format as you
POST/exports/info.jsonReturns information about an export job. If the export job's state is 'complete', the returned data will include a URL you can use to fetch the results. Every e
POST/exports/list.jsonReturns a list of your exports.
POST/exports/rejects.jsonBegins an export of your rejection blacklist. The blacklist will be exported to a zip archive containing a single file named rejects.csv that includes the follo
POST/exports/whitelist.jsonBegins an export of your rejection whitelist. The whitelist will be exported to a zip archive containing a single file named whitelist.csv that includes the fol
POST/inbound/add-domain.jsonAdd an inbound domain to your account
POST/inbound/add-route.jsonAdd a new mailbox route to an inbound domain
POST/inbound/check-domain.jsonCheck the MX settings for an inbound domain. The domain must have already been added with the add-domain call
POST/inbound/delete-domain.jsonDelete an inbound domain from the account. All mail will stop routing for this domain immediately.
POST/inbound/delete-route.jsonDelete an existing inbound mailbox route
POST/inbound/domains.jsonList the domains that have been configured for inbound delivery
POST/inbound/routes.jsonList the mailbox routes defined for an inbound domain
POST/inbound/send-raw.jsonTake a raw MIME document destined for a domain with inbound domains set up, and send it to the inbound hook exactly as if it had been sent over SMTP
POST/inbound/update-route.jsonUpdate the pattern or webhook of an existing inbound mailbox route. If null is provided for any fields, the values will remain unchanged.
POST/ips/cancel-warmup.jsonCancels the warmup process for a dedicated IP.
POST/ips/check-custom-dns.jsonTests whether a domain name is valid for use as the custom reverse DNS for a dedicated IP.
POST/ips/create-pool.jsonCreates a pool and returns it. If a pool already exists with this name, no action will be performed.
POST/ips/delete-pool.jsonDeletes a pool. A pool must be empty before you can delete it, and you cannot delete your default pool.
POST/ips/delete.jsonDeletes a dedicated IP. This is permanent and cannot be undone.
POST/ips/info.jsonRetrieves information about a single dedicated ip.
POST/ips/list-pools.jsonLists your dedicated IP pools.
POST/ips/list.jsonLists your dedicated IPs.
POST/ips/pool-info.jsonDescribes a single dedicated IP pool.
POST/ips/provision.jsonRequests an additional dedicated IP for your account. Accounts may have one outstanding request at any time, and provisioning requests are processed within 24 h
POST/ips/set-custom-dns.jsonConfigures the custom DNS name for a dedicated IP.
POST/ips/set-pool.jsonMoves a dedicated IP to a different pool.
POST/ips/start-warmup.jsonBegins the warmup process for a dedicated IP. During the warmup process, Mandrill will gradually increase the percentage of your mail that is sent over the warm
POST/messages/cancel-scheduled.jsonCancels a scheduled email.
POST/messages/content.jsonGet the full content of a recently sent message
POST/messages/info.jsonGet the information for a single recently sent message
POST/messages/list-scheduled.jsonQueries your scheduled emails by sender or recipient, or both.
POST/messages/parse.jsonParse the full MIME document for an email message, returning the content of the message broken into its constituent pieces
POST/messages/reschedule.jsonReschedules a scheduled email.
POST/messages/search-time-series.jsonSearch the content of recently sent messages and return the aggregated hourly stats for matching messages
POST/messages/search.jsonSearch the content of recently sent messages and optionally narrow by date range, tags and senders. This method may be called up to 20 times per minute. If you
POST/messages/send-raw.jsonTake a raw MIME document for a message, and send it exactly as if it were sent through Mandrill's SMTP servers
POST/messages/send-template.jsonSend a new transactional message through Mandrill using a template
POST/messages/send.jsonSend a new transactional message through Mandrill
POST/metadata/add.jsonAdd a new custom metadata field to be indexed for the account.
POST/metadata/delete.jsonDelete an existing custom metadata field. Deletion isn't instataneous, and /metadata/list will continue to return the field until the asynchronous deletion proc
POST/metadata/list.jsonGet the list of custom metadata fields indexed for the account.
POST/metadata/update.jsonUpdate an existing custom metadata field.
POST/rejects/add.jsonAdds an email to your email rejection blacklist. Addresses that you add manually will never expire and there is no reputation penalty for removing them from you
POST/rejects/delete.jsonDeletes an email rejection. There is no limit to how many rejections you can remove from your blacklist, but keep in mind that each deletion has an affect on yo
POST/rejects/list.jsonRetrieves your email rejection blacklist. You can provide an email address to limit the results. Returns up to 1000 results. By default, entries that have expir
POST/senders/add-domain.jsonAdds a sender domain to your account. Sender domains are added automatically as you send, but you can use this call to add them ahead of time.
POST/senders/check-domain.jsonChecks the SPF and DKIM settings for a domain. If you haven't already added this domain to your account, it will be added automatically.
POST/senders/domains.jsonReturns the sender domains that have been added to this account.
POST/senders/info.jsonReturn more detailed information about a single sender, including aggregates of recent stats
POST/senders/list.jsonReturn the senders that have tried to use this account.
POST/senders/time-series.jsonReturn the recent history (hourly stats for the last 30 days) for a sender
POST/senders/verify-domain.jsonSends a verification email in order to verify ownership of a domain. Domain verification is an optional step to confirm ownership of a domain. Once a domain has
POST/subaccounts/add.jsonAdd a new subaccount
POST/subaccounts/delete.jsonDelete an existing subaccount. Any email related to the subaccount will be saved, but stats will be removed and any future sending calls to this subaccount will
POST/subaccounts/info.jsonGiven the ID of an existing subaccount, return the data about it
POST/subaccounts/list.jsonGet the list of subaccounts defined for the account, optionally filtered by a prefix
POST/subaccounts/pause.jsonPause a subaccount's sending. Any future emails delivered to this subaccount will be queued for a maximum of 3 days until the subaccount is resumed.
POST/subaccounts/resume.jsonResume a paused subaccount's sending
POST/subaccounts/update.jsonUpdate an existing subaccount
POST/tags/all-time-series.jsonReturn the recent history (hourly stats for the last 30 days) for all tags
POST/tags/delete.jsonDeletes a tag permanently. Deleting a tag removes the tag from any messages that have been sent, and also deletes the tag's stats. There is no way to undo this
POST/tags/info.jsonReturn more detailed information about a single tag, including aggregates of recent stats
POST/tags/list.jsonReturn all of the user-defined tag information
POST/tags/time-series.jsonReturn the recent history (hourly stats for the last 30 days) for a tag
POST/templates/add.jsonAdd a new template
POST/templates/delete.jsonDelete a template
POST/templates/info.jsonGet the information for an existing template
POST/templates/list.jsonReturn a list of all the templates available to this user
POST/templates/publish.jsonPublish the content for the template. Any new messages sent using this template will start using the content that was previously in draft.
POST/templates/render.jsonInject content and optionally merge fields into a template, returning the HTML that results
POST/templates/time-series.jsonReturn the recent history (hourly stats for the last 30 days) for a template
POST/templates/update.jsonUpdate the code for an existing template. If null is provided for any fields, the values will remain unchanged.
POST/urls/add-tracking-domain.jsonAdd a tracking domain to your account
POST/urls/check-tracking-domain.jsonChecks the CNAME settings for a tracking domain. The domain must have been added already with the add-tracking-domain call
POST/urls/list.jsonGet the 100 most clicked URLs
POST/urls/search.jsonReturn the 100 most clicked URLs that match the search query given
POST/urls/time-series.jsonReturn the recent history (hourly stats for the last 30 days) for a url
POST/urls/tracking-domains.jsonGet the list of tracking domains set up for this account
POST/users/info.jsonReturn the information about the API-connected user
POST/users/ping.jsonValidate an API key and respond to a ping
POST/users/ping2.jsonValidate an API key and respond to a ping (anal JSON parser version)
POST/users/senders.jsonReturn the senders that have tried to use this account, both verified and unverified
POST/webhooks/add.jsonAdd a new webhook
POST/webhooks/delete.jsonDelete an existing webhook
POST/webhooks/info.jsonGiven the ID of an existing webhook, return the data about it
POST/webhooks/list.jsonGet the list of all webhooks defined on the account
POST/webhooks/update.jsonUpdate an existing webhook
POST/whitelists/add.jsonAdds an email to your email rejection whitelist. If the address is currently on your blacklist, that blacklist entry will be removed automatically.
POST/whitelists/delete.jsonRemoves an email address from the whitelist.
POST/whitelists/list.jsonRetrieves your email rejection whitelist. You can provide an email address or search prefix to limit the results. Returns up to 1000 results.

Questions

Does the Mandrill API need an API key?

No. The Mandrill API can be called without an API key or sign-up, which makes it handy for prototypes and front-end demos.

Does the Mandrill API support HTTPS?

Yes, the Mandrill API is served over HTTPS.

How many endpoints does the Mandrill API have?

Its OpenAPI description lists 90 endpoints in version 1.0. All of them are shown on this page.

What are alternatives to the Mandrill API?

Other Email APIs include Sendgrid, Sendinblue, mail.tm, Guerrilla Mail, Postmark Account-level API.

Compare alternatives →

Listed from APIs.guru (CC0).