Send with SparkPost
To send a SparkPost newsletter from ReputeCast, you connect an API key and the region of your SparkPost account (US or EU). ReputeCast registers a webhook protected by basic auth, sets up DKIM for your sending domain, turns SparkPost’s tracking off on every message and keeps both suppression lists in sync.
| Kind | API |
|---|---|
| Bulk marketing | Allowed |
| Event webhooks | Registered by ReputeCast; basic auth (SparkPost doesn't sign) |
| Domain setup | API |
| Suppression sync | Two-way |
| Batch size | 1 |
| Notes | Existing SparkPost accounts in the US or EU region. Reads the account's sending limit. One call per message. |
Before you begin
Section titled “Before you begin”- A SparkPost account at
app.sparkpost.com(US) orapp.eu.sparkpost.com(EU). The adapter speaks SparkPost’s API; Bird Email accounts use a different API and can’t be connected with it. - An API key with the Transmissions, Webhooks, Sending Domains, Suppression Lists, Account, Metrics and Message Events permissions, created under Configuration › API Keys in SparkPost (SparkPost: Create API keys, checked October 2026). EU accounts create keys in the EU app.
- Permissions. Connecting needs
providers:manage; adding a new sending domain needsdomains:manage. - A public HTTPS address for the webhook:
<public URL>/hooks/sparkpost/<token>. SparkPost posts a test batch to the address before it saves a webhook, so the address must be reachable. Until it is, ReputeCast can poll SparkPost’s events API every minute.
Connect SparkPost
Section titled “Connect SparkPost”-
Open Sending providers, choose Add provider and pick SparkPost in the catalog. Connect a sending provider explains the steps every provider shares.
-
Paste the API key and pick the Region:
usforapi.sparkpost.com,euforapi.eu.sparkpost.com. Under the extra SparkPost settings you can name an IP pool of dedicated IPs to send through. -
Choose Connect. ReputeCast reads your account and its usage with the key, then stores it encrypted. The card shows the account ID, its status and your plan.
-
In 2. Webhooks, ReputeCast tests its own public URL, then creates (or updates) a webhook named “ReputeCast” with basic auth (user
reputecast, a secret ReputeCast generates) for deliveries, bounces, out-of-band bounces, delays, spam complaints, policy rejections, generation failures and unsubscribes. Open and click events aren’t subscribed. If the endpoint isn’t reachable yet, choose Use polling for now. -
Choose Continue to domain verification and enter your sending domain. ReputeCast adds it as a SparkPost sending domain with a 2048-bit DKIM key and lists the DKIM TXT record. For a subdomain such as
news.acme.ioit also lists the bounce CNAME (tosparkpostmail.com, oreu.sparkpostmail.comin the EU); an apex domain such asacme.iocan’t hold a CNAME, so it gets DKIM only. ReputeCast suggests DMARC if the domain has none. -
In Test send, send a test and watch the delivery event arrive.
-
In Streams and Contacts, pick the streams and keep the option to pull SparkPost’s existing suppressions ticked.
Check that it worked
Section titled “Check that it worked”- The SparkPost card on Sending providers, then Providers shows Healthy and your monthly or daily sending limit with its usage.
- In SparkPost, the webhook list has a “ReputeCast” webhook that points at
/hooks/sparkpost/…with basic auth. - Deliveries and bounces appear under Sending providers, then Events & sync.
SparkPost doesn’t sign webhooks, so ReputeCast relies on the basic-auth credentials and the unguessable URL.
ReputeCast sends one transmission per message, with an idempotency key so a retried call never sends twice, and
with open and click tracking off. Every message goes out as transactional in SparkPost’s terms, because SparkPost
adds its own List-Unsubscribe header to other mail and ReputeCast already adds one with one-click unsubscribe. For
the same reason, ReputeCast pushes each suppressed address to both of SparkPost’s suppression lists, and pulls
SparkPost’s bounce, spam complaint and unsubscribe entries back.
Troubleshooting
Section titled “Troubleshooting”- “SparkPost rejected this key” with
401 Unauthorized. The key is wrong, lacks permissions, or belongs to the other region. Check the key’s permissions and that the region matches the app you created it in. - Webhook registration fails. SparkPost tests the URL before it saves a webhook, so registration fails while SparkPost can’t reach ReputeCast. Fix the public URL (see Reverse proxy and TLS), then choose Try registering again.
- The domain step lists only a DKIM record. You entered an apex domain. Send from a subdomain if you want SparkPost’s bounce domain to align with yours.
- Sending slows down with HTTP 420 errors. SparkPost answers 420 when your daily or monthly sending limit is used up. ReputeCast treats it as throttling and retries later; raise the limit in SparkPost or route part of the traffic to another provider.
- The catalog shows a “Sandbox domain” badge. ReputeCast has no SparkPost sandbox mode: connect a real sending domain.
- Account-level tracking is on. The tracking check on the Events & sync tab says so even though ReputeCast turns tracking off on every message it sends. To change the account defaults through the API, the key needs write access to Account.
- You disconnected SparkPost. ReputeCast deletes the webhooks that point at its URL. The sending domain and the pushed suppressions stay in SparkPost.