SparkPost Email Sending Service

Email delivered on time and to the inbox. Send hundreds, or billions, of emails from your app to your customer’s inbox.

Easily add email to your app with our API

SparkPost’s email sending service lets you easily send email from your app. Reduce customer churn and acquire new customers by sending transactional emails that reach the inbox on time.

Activation Email

Welcome / Onboarding

User Invites and Sharing

Two Factor Authentication

Product Updates

Password Resets

Activity Notifications

Reports / Dashboards

The world’s most demanding senders rely on SparkPost to deliver billions of emails every day. That’s more than 37% of the world’s business email.

Linkedin Logo
Intercom Logo
Zip Recruiter Logo
Pinterest Logo
Zillow Logo
Hubspot Logo

An email sending service that supports your language

Embed email directly into any component of your app or website. Access our pre-built client libraries (Node.js, PHP, Python, and more) and build emails in a language that’s native to you.

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

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

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

response = sparky.transmissions.send(
    html='<html><body><p>Testing SparkPost - the world\'s most awesomest email service!</p></body></html>',
    subject='Oh hey!')
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' => '',
    'subject' => 'Oh hey!',
    'html' => '<html><body><p>Testing SparkPost - the world\'s most awesomest email service!</p></body></html>'
  'recipients' => [
    ['address' => ['email'=>'']]
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);

                "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 = "";
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 = "" }

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

import (
    sp ""

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{""},
        Options:    &sp.TxOptions{Sandbox: true},
        Content: sp.Content{
            HTML:    "<p>Testing SparkPost - the world's most awesomest email service!</p>",
            From:    "",
            Subject: "Oh hey!",
    id, _, err := sparky.Send(tx)
    if err != nil {

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

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

App generated emails play a critical role in acquiring and retaining users

As your customers engage with your product, improve their experience by connecting with them at critical moments of the customer journey. Take advantage of transactional and trigger-based emails that are known to influence product loyalty.

Send quickly, and send in the cloud with our cloud-based email API. SparkPost’s email sending service gives you the ability to manage customer relationships by building programmatic API-generated emails sent directly from your product to your users inbox.

Manage your email sending efforts and access real-time performance data

Visualize your email performance in one centralized location. With SparkPost, you have the ability to build reports, segment analytics, and access over 35 real-time metrics of message performance and customer engagement with product emails.

Whether you want a quick overview or need sophisticated filtered views, SparkPost’s analytics dashboard makes easy work of interactive queries of email metrics. Drill down by recipient, campaign, template, and more.

Speak with a SparkPost team member to learn more

Complete the form below and an expert SparkPost team member will reach out to you to help you get started and start sending.