The most performant email delivery service—whether your app or website sends hundreds, or billions, of messages

Deliver email, come rain or shine
Missing or delayed emails lead to customer churn. SparkPost offers unmatched inbox delivery and reliability backed by an enterprise SLA.

Powerful email analytics
Bounce, open, and click-through rates can indicate serious email delivery issues. Get real-time insight on your email delivery health.

Access the industry’s best experts
The world’s most demanding senders rely on our team. Our Technical Account Managers provide full-service support on a first-name basis.
More than just an email API—sophisticated features for applications big and small
Powerful templating, multiple webhook addresses, and multi-account features let you build applications that engage, retain, and rapidly grow your user base.
Missing or delayed product emails lead to customer churn
App-generated emails—often called transactional emails—are messages sent by your application or website in response to a user’s behavior. They play a critical role in acquiring and retaining users, and customers churn when transactional emails are delayed or lost in spam folders.

Activation Email

Welcome / Onboarding

User Invites and Sharing

Two Factor Authentication

Product Updates

Password Resets

Activity Notifications

Reports / Dashboards
Focus on delighting users, not managing email servers
Easily embed email into any app or website with SparkPost’s REST and SMTP email APIs.
Or use client libraries available for many popular languages.
|
1 2 3 4 5 |
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": "[email protected]", "subject": "Oh hey", "text":"Testing SparkPost - the most awesomest email service in the world"}, "recipients": [{"address": "[email protected]"}]}' |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
const SparkPost = require('sparkpost'); const sparky = new SparkPost('<YOUR API KEY>'); sparky.transmissions.send({ options: { sandbox: true }, content: { subject: 'Oh hey!', html:'<html><body><p>Testing SparkPost - the world\'s most awesomest email service!</p></body></html>' }, recipients: [ ] }) .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); }); |
|
1 2 3 4 5 6 7 8 9 10 |
from sparkpost import SparkPost sparky = SparkPost('<YOUR API KEY>') response = sparky.transmissions.send( use_sandbox=True, html='<html><body><p>Testing SparkPost - the world\'s most awesomest email service!</p></body></html>', subject='Oh hey!') |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?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' => [ 'subject' => 'Oh hey!', 'html' => '<html><body><p>Testing SparkPost - the world\'s most awesomest email service!</p></body></html>' ], 'recipients' => [ ] ]); ?> |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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( "Oh hey!", "Testing SparkPost - the world's most awesomest email service!", "<p>Testing SparkPost - the world's most awesomest email service!</p>"); } } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
var transmission = new Transmission(); 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 { }; transmission.Recipients.Add(recipient); var client = new Client("<YOUR API KEY>"); client.Transmissions.Send(transmission); // or client.Transmissions.Send(transmission).Wait(); |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
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{ Options: &sp.TxOptions{Sandbox: true}, Content: sp.Content{ HTML: "<p>Testing SparkPost - the world's most awesomest email service!</p>", Subject: "Oh hey!", }, } id, _, err := sparky.Send(tx) if err != nil { log.Fatal(err) } log.Printf("Transmission sent with id [%s]\n", id) } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
alias SparkPost.{Content, Transmission} defmodule MyApp do def main(args) do Transmission.send(%Transmission{ content: %Content.Inline{ subject: "Oh hey!", html: "<p>Testing SparkPost - the world's most awesomest email service!</p>", }, options: %Transmission.Options{sandbox: true} }) end end |
Customer Story: Zillow
Zillow treats email as a essential feature of their product. Find out how email drives user engagement with their app.
read more2018 Transactional Email Benchmark Report
We surveyed 1,800 businesses. Get the data-driven benchmarks that define the state of transactional email—and recommendations that will improve the effectiveness of your own messages.
read moreEmail Tools for Developers
These free tools from the email experts at SparkPost make it easy to build and check your app’s emails.
read more