> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sendpost.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Setting Up SparkPost Integration

> Configure SparkPost as a Third-Party Sending Provider in SendPost with automatic webhook setup.

## Prerequisites

Before setting up the SparkPost integration, ensure you have:

### 1. SparkPost Account

* An active SparkPost account
* API key with appropriate permissions

### 2. SparkPost API Key

To create an API key in SparkPost:

<Steps>
  <Step title="Log in to SparkPost">
    Log in to your [SparkPost Dashboard](https://app.sparkpost.com)
  </Step>

  <Step title="Navigate to API Keys">
    Go to **Configuration** → **API Keys**
  </Step>

  <Step title="Create API Key">
    Click **Create API Key**
  </Step>

  <Step title="Set Permissions">
    Configure the following permissions:

    * **Transmissions**: Read/Write (required for sending)
    * **Webhooks**: Read/Write (required for event tracking)
  </Step>

  <Step title="Save Your Key">
    Click **Create API Key** and **copy your API key** (you won't be able to see it again)
  </Step>
</Steps>

### 3. SendPost Account

* A SendPost account with admin access
* At least one sub-account created

***

## Setting Up SparkPost Integration

### Step 1: Navigate to Providers

1. Log in to your [SendPost Dashboard](https://app.sendpost.io)
2. Go to **Settings** → **Providers** (or navigate to the Providers page)
3. Click the **NEW** button

### Step 2: Configure SparkPost Provider

1. **Name**: Enter a descriptive name (e.g., "Production SparkPost", "Marketing SparkPost")
2. **Type**: Select **SparkPost** from the dropdown
3. **Key**: Paste your SparkPost API key
4. Click **Save**

### Step 3: Automatic Webhook Configuration

When you save the provider, SendPost automatically:

<Check>Registers a webhook with SparkPost</Check>
<Check>Configures the webhook to receive all supported events</Check>
<Check>Creates the necessary processing infrastructure</Check>

**Webhook URL Format**: `https://api.sendpost.io/tpsp/sparkpost/account/{your-account-id}`

**Events Configured**:

* Injection (sent)
* Delivery
* Bounce
* Out of Band (async bounces)
* Delay
* Policy Rejection
* Spam Complaint
* Open / Initial Open
* Click
* List Unsubscribe / Link Unsubscribe

### Step 4: Configure IP Pool for SparkPost Routing

Before sending emails via SparkPost, you need to configure an IP Pool in SendPost that routes traffic to your SparkPost provider.

#### Why IP Pools?

IP Pools in SendPost allow you to control how your email traffic is distributed between SendPost's native infrastructure and third-party providers like SparkPost. This enables:

* **Volume-based routing**: Split your email volume between SparkPost and SendPost infrastructure
* **Easy traffic management**: Adjust the percentage of emails sent via SparkPost vs SendPost at any time
* **Gradual migration**: Start with a small percentage on SparkPost and increase as needed
* **Failover capability**: Route traffic to SparkPost when SendPost IPs are warming up

#### Setting Up IP Pool for SparkPost

<Steps>
  <Step title="Create IP Pool">
    1. Go to **Settings** → **IP Pools** in your SendPost dashboard
    2. Click **Create New IP Pool**
    3. Enter a descriptive name (e.g., "sparkpost-pool" or "transactional-sparkpost")
  </Step>

  <Step title="Configure Routing">
    1. In the IP Pool settings, configure the routing to use your SparkPost provider
    2. Set the volume percentage you want to route through SparkPost
    3. You can easily adjust this percentage later to control traffic distribution
  </Step>

  <Step title="Save Configuration">
    Save your IP Pool configuration. The pool name will be used in your API calls.
  </Step>
</Steps>

#### Volume-Based Routing

You can configure what percentage of your email volume goes through SparkPost vs SendPost's native infrastructure:

| Configuration    | SparkPost                | SendPost Infrastructure |
| ---------------- | ------------------------ | ----------------------- |
| 100% SparkPost   | All emails via SparkPost | None                    |
| 50/50 Split      | 50% of emails            | 50% of emails           |
| SparkPost Backup | 0% (failover only)       | 100% primary            |

<Info>
  You can change the volume distribution at any time through the SendPost UI without any code changes.
</Info>

### Step 5: Whitelist Your Sending Domain

You must whitelist the same sending domain in SendPost that you use in SparkPost.

<Warning>
  **Important**: The domain you use for sending emails (e.g., `yourdomain.com`) must be whitelisted in SendPost. This ensures proper email routing and deliverability.
</Warning>

1. Go to **Settings** → **Domains** in your SendPost dashboard
2. Click **Add Domain**
3. Enter the same domain you have configured in SparkPost (e.g., `yourdomain.com`)
4. Complete the domain verification process

<Note>
  If you're using multiple sending domains in SparkPost, you need to whitelist each domain in SendPost.
</Note>

***

## Next Steps

Once your SparkPost integration is set up, you can:

* [Send emails via SparkPost](/guides/sparkpost/sending-emails) using the SendPost API
* [Understand event types](/guides/sparkpost/event-types) for tracking email status
* [View analytics](/guides/sparkpost/analytics) for your SparkPost emails
