
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.
Flexible Integration for Any Product, Website, or App
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
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.
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.
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.
Develop your email expertise and master best practices with these practical resources.
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 has a number of details that turn out to be gotchas for developers. Here are 10 things you might not realize about email.
These free tools from the email experts at SparkPost make it easy to build and check your app’s emails.
Get started today and see how SparkPost delivers more value for your buck.