Email API Integration for Every Application

Building email functionality is a surprisingly complex and specialized task. SparkPost’s robust email API makes it simple to embed email into any app or website.

curl -XPOST \
  https://api.sparkpost.com/api/v1/transmissions \
  -H "Authorization: <YOUR API KEY>" \
  -H "Content-Type: application/json" \
  -d '{"options": {"sandbox": true}, "content": {"from": "testing@sparkpostbox.com", "subject": "Oh hey", "text":"Testing SparkPost - the most awesomest email service in the world"}, "recipients": [{"address": "developers+curl@sparkpost.com"}]}'
const SparkPost = require('sparkpost');
const sparky = new SparkPost('<YOUR API KEY>');

sparky.transmissions.send({
    options: {
      sandbox: true
    },
    content: {
      from: 'testing@sparkpostbox.com',
      subject: 'Oh hey!',
      html:'<html><body><p>Testing SparkPost - the world\'s most awesomest email service!</p></body></html>'
    },
    recipients: [
      {address: 'developers+nodejs@sparkpost.com'}
    ]
  })
  .then(data => {
    console.log('Woohoo! You just sent your first mailing!');
    console.log(data);
  })
  .catch(err => {
    console.log('Whoops! Something went wrong');
    console.log(err);
  });
from sparkpost import SparkPost

sparky = SparkPost('<YOUR API KEY>')

response = sparky.transmissions.send(
    use_sandbox=True,
    recipients=['developers+python@sparkpost.com'],
    html='<html><body><p>Testing SparkPost - the world\'s most awesomest email service!</p></body></html>',
    from_email='testing@sparkpostbox.com',
    subject='Oh hey!')
<?php
use SparkPost\SparkPost;
use GuzzleHttp\Client;
use Http\Adapter\Guzzle6\Client as GuzzleAdapter;

$httpClient = new GuzzleAdapter(new Client());
$sparky = new SparkPost($httpClient, ['key' => '<YOUR API KEY>']);

$sparky->setOptions(['async' => false]);
$results = $sparky->transmissions->post([
  'options' => [
    'sandbox' => true
  ],
  'content' => [
    'from' => 'testing@sparkpostbox.com',
    'subject' => 'Oh hey!',
    'html' => '<html><body><p>Testing SparkPost - the world\'s most awesomest email service!</p></body></html>'
  ],
  'recipients' => [
    ['address' => ['email'=>'developers+php@sparkpost.com']]
  ]
]);
?>
package com.sparkpost;

import com.sparkpost.exception.SparkPostException;

public class SparkPost {

    public static void main(String[] args) throws SparkPostException {
        String API_KEY = "<YOUR API KEY>";
        Client sparky = new Client(API_KEY);

        sparky.sendMessage(
                "testing@sparkpostbox.com",
                "developers+java@sparkpost.com",
                "Oh hey!",
                "Testing SparkPost - the world's most awesomest email service!",
                "<p>Testing SparkPost - the world's most awesomest email service!</p>");
    }
}
var transmission = new Transmission();
transmission.Content.From.Email = "testing@sparkpostbox.com";
transmission.Content.Subject = "Oh hey!";
transmission.Content.Text = "Testing SparkPost - the world\'s most awesomest email service!";
transmission.Content.Html = "<html><body><p>Testing SparkPost - the world\'s most awesomest email service!</p></body></html>";

var recipient = new Recipient
{
    Address = new Address { Email = "my@email.com" }
};
transmission.Recipients.Add(recipient);

var client = new Client("<YOUR API KEY>");
client.Transmissions.Send(transmission);
// or client.Transmissions.Send(transmission).Wait();
package main

import (
    sp "github.com/SparkPost/gosparkpost"
    "log"
)

func main() {
    var sparky sp.Client
    err := sparky.Init(&sp.Config{ApiKey: "<YOUR API KEY>"})
    if err != nil {
        log.Fatalf("SparkPost client init failed: %s\n", err)
    }

    tx := &sp.Transmission{
        Recipients: []string{"developers+go@sparkpost.com"},
        Options:    &sp.TxOptions{Sandbox: true},
        Content: sp.Content{
            HTML:    "<p>Testing SparkPost - the world's most awesomest email service!</p>",
            From:    "test@sparkpostbox.com",
            Subject: "Oh hey!",
        },
    }
    id, _, err := sparky.Send(tx)
    if err != nil {
        log.Fatal(err)
    }

    log.Printf("Transmission sent with id [%s]\n", id)
}
alias SparkPost.{Content, Transmission}

defmodule MyApp do
  def main(args) do
    Transmission.send(%Transmission{
      recipients: ["developers+elixir@sparkpost.com"],
      content: %Content.Inline{
        from: "test@sparkpostbox.com",
        subject: "Oh hey!",
        html: "<p>Testing SparkPost - the world's most awesomest email service!</p>",
      },
      options: %Transmission.Options{sandbox: true}
    })
  end
end

Full Featured Email API

With SparkPost’s robust REST email API, your application can take control of every SparkPost feature: manipulating templates, generating messages, sending emails, and reporting performance data.

Simple, Flexible SMTP injection

If your app sends email with SMTP, it takes just a few configuration settings to start sending with SparkPost. Nearly every email API feature can be invoked via SMTP, so even legacy apps can leverage our robust delivery, analytics, and more.

The world’s most sophisticated senders rely on SparkPost to deliver billions of emails every day.

Intercom Logo
Zip Recruiter Logo
Pinterest Logo
Zillow Logo

Build Powerful Apps with Real-time Data

Real-time webhooks (HTTP callbacks) can trigger actions in your app when an email is opened, clicked-through, or bounced. Create as many different webhooks as your business needs, solving problems as diverse as product workflow and data warehouse ETL.

We Speak Your Language

Use SparkPost with the language of your choice and help your developers hit the ground running. Client libraries for popular languages like Node.js, C#, Python, Java, PHP, Go, and others mean SparkPost is an easy fit for every product.

Learn More about Email APIs and Integration

Develop your email expertise and master best practices with these practical resources.

Email API Use Cases

Email API Use Cases

Access the SparkPost Academy to learn why Email APIs are the most performant way to send and manage email notifications and other transactional email messages.

Email Tools for Developers

Email Tools for Developers

These free tools from the email experts at SparkPost make it easy to build and check your app’s emails.