\*\*\*updated 10/24/2018 with the latest plan information

We have a [Mandrill alternative](https://www.sparkpost.com/pricing?utm_source=blog&utm_medium=social-media&utm_campaign=all&utm_content=blog-mandrill-alternative) for you. If you want to get started with SparkPost fast, our developer community has got you covered! Here’s a quick guide to getting started and getting your transactional emails up and running.

### TL;DR

1.  Create a SparkPost account
2.  Configure sending domains, DKIM, and SPF
3.  Migrate to the SparkPost API
4.  Migrate your templates
5.  Build something awesome

### 1\. Create a SparkPost Account

First, [sign up for a SparkPost account](https://app.sparkpost.com/join?plan=free-0817&sfdcid=7016000000198J1&https://app.sparkpost.com/join?plan=free-0817&sfdcid=7016000000198J1&src=SP-Websitesrc=SP-Website) if you haven’t already. BTW, we’ve made it really easy to get started. Our free developer test account includes up to 500 emails per month. It offers the same built-in functionality and performance as our paid plans.

### 2\. Configure Sending Domains, DKIM, and SPF

Check out our [Getting Started with SparkPost](https://www.sparkpost.com/docs/getting-started/getting-started-sparkpost/) page for an easy quick start. Or if you’d rather, simply follow the in-app [SparkPost dashboard](https://app.sparkpost.com/dashboard) as it walks you through the basic account configuration steps.

### 3\. Migrate to the SparkPost API

SparkPost’s API is fantastic. [Here’s the API documentation](https://developers.sparkpost.com/api/). As a general rule, if you see it in our UI, you can access it in our API, too.

**API Clients**

Just want to get your hands in some code? You’ll find client libraries for the usual suspects on GitHub (and maybe some unusual ones, too):

- [NodeJS](https://github.com/SparkPost/node-sparkpost) – [sample](https://github.com/SparkPost/node-sparkpost/blob/master/examples/transmissions/send_stored_recipients_inline_content.js)
- [PHP](https://github.com/SparkPost/php-sparkpost) – [sample](https://github.com/SparkPost/php-sparkpost/blob/master/examples/transmissions/create_transmission_with_recipient_list.php)
- [Java](https://github.com/SparkPost/java-sparkpost) – [sample](https://github.com/SparkPost/java-sparkpost/blob/master/apps/sparkpost-samples-app/src/main/java/com/sparkpost/samples/SendEmailSample.java)
- [Python](https://github.com/SparkPost/python-sparkpost) – [sample](https://github.com/SparkPost/python-sparkpost/blob/master/examples/transmissions/send_transmission.py)
- [Elixir](https://github.com/SparkPost/elixir-sparkpost) – [sample](https://github.com/SparkPost/elixir-sparkpost/blob/master/examples/simplesend.exs)
- [Go](https://github.com/SparkPost/gosparkpost) – [sample](https://github.com/SparkPost/gosparkpost#send-a-message)

**Basic Concepts**

**_Sending: Transmissions_**

The Transmissions endpoint is the business end of SparkPost’s email sending capability. It supports both transactional and non-transactional mail streams, templating, tracking, variable substitution, attachments and all the usual goodies. It’s [documented here](https://developers.sparkpost.com/api/#/reference/transmissions) with sample code in all the usual languages.

_**Sending: SMTP**_

You can also use traditional SMTP to inject your mail into SparkPost. Here’s an [intro video](https://support.sparkpost.com/customer/en/portal/articles/2051794-setting-up-smtp-video-walkthrough?b_id=7411) and [documentation](https://developers.sparkpost.com/api/#/reference/smtp-api) for the readers.

_**Receiving: Relay Webhooks**_

On the inbound side, you can use our [Relay Webhooks](https://developers.sparkpost.com/api/#/reference/relay-webhooks) along with [Inbound Domains](https://developers.sparkpost.com/api/#/reference/inbound-domains) to accept inbound mail.

_**Tracking: Webhooks and Message Event**s_

Beyond delivery and receipt, you can use Webhooks or the Message Events endpoint keep track of deliveries, bounces, opens, clicks, and all the other events SparkPost emits.

BTW, here’s [a definitive reference to the available events](https://support.sparkpost.com/customer/en/portal/articles/1976204-webhook-event-reference).

### Translating Mandrill to SparkPost Terminology

Mandrill and SparkPost use slightly different nomenclature to describe similar functions. Here’s a SparkPost terminology primer for those coming from Mandrill’s API.

|
Mandrill Term

|

SparkPost Term

|

Notes

| |
| ------------------------------------------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| merge vars | substitution data | SparkPost’s [substitution data](https://developers.sparkpost.com/api/#/introduction/substitutions-reference) is similar to Mandrill’s with rich JSON-like structure. |
| messages/search-time-series | metrics | [SparkPost Metrics](https://developers.sparkpost.com/api/#/reference/metrics) offer time-series aggregate views on everything to do with your mail streams. They also power the [reporting UI](https://app.sparkpost.com/reports/summary). |
| messages/send messages/send-template messages/send-raw | transmissions | A single endpoint for all types of transmission. |

###  4. Migrate Your Templates

Try out our Mandrill to SparkPost template migration tool. Now, it’s even easier to get started with SparkPost as a Mandrill alternative. If that sounds good to you, [go get it and read how to use the tool to convert and migrate your Mandrill templates](https://www.sparkpost.com/blog/mandrill-template-migration-tool-mst3k/).

Like Mandrill, SparkPost’s templates use a handlebars-like syntax with {{braces}}  surrounding variables.  You can edit templates in the [SparkPost UI](https://app.sparkpost.com/templates) or directly using the [templates API endpoint](https://developers.sparkpost.com/api/#/reference/templates).

If you’re just pulling variables into your template for simple personalization, you might be able to use your Mandrill templates unchanged with SparkPost. Otherwise, here are a few syntax pointers.

|
Feature

|

Mandrill Syntax

|

SparkPost Syntax

| |
| ---------------- | --------------------------------------- | ----------------------------------------- |
| conditions | {{#if condition}} ... {{/if}} | {{if condition}} ... {{end}} |
| loops | {{#each list}} ...{{this}}... {{/each}} | {{each list}} ...{{loop\_var}}... {{end}} |
| nested variables | {{nested.var}} | {{nested.var}} |
| variables | {{var}} | {{var}} |

### 5\. Build Something Awesome

**Support Resources**

- General help: You can find help with most questions about SparkPost functionality, account configuration, and our web app in the [SparkPost Support Center](https://support.sparkpost.com/).
- Developer stuff: For help with code and general developer support, the [SparkPost Developer Hub](https://developers.sparkpost.com/) is a great resource. And, if you want to chat something through with our developer community team, [join our Slack community](http://slack.sparkpost.com/).

**Integrations**

- WordPress: take a look at [our plugin](https://wordpress.org/plugins/sparkpost).
- Zapier: we do have a [zap](https://zapier.com/zapbook/sparkpost/)!
- And here’s a list of [lots of other integrations](https://support.sparkpost.com/customer/en/portal/topics/780292-integrations/articles).

–Ewan