The DNS records
SparkPost returns the selector and public key when you create the sending domain. The values below follow the examples in SparkPost's API reference; publish the ones your account shows.
DKIM key generated by SparkPost
Type: TXT · Host: scph0316._domainkey
v=DKIM1; k=rsa; h=sha256; p=<public key from SparkPost>
scph0316 is SparkPost's example selector. If you sign for a subdomain, the name becomes <selector>._domainkey.<subdomain>.
Your own key under your own selector (API)
Type: TXT · Host: <selector>._domainkey
v=DKIM1; k=rsa; h=sha256; p=<your public key>
Supply the private key, public key and selector together when you create or update the sending domain.
Bounce domain (for the return path, not DKIM)
Type: CNAME · Host: bounces
sparkpostmail.com
SparkPost EU accounts use eu.sparkpostmail.com; Enterprise accounts use <public_tenant_id>.mail.e.sparkpost.com.
Set it up and turn on signing
- Create the sending domain in SparkPost (in the app or with
POST /api/v1/sending-domains). Let SparkPost generate the key, or send your ownprivate,publicandselectorvalues. - Publish the TXT record at the
_domainkeyname SparkPost returns. Keys over 1024 bits need a TXT value split into several strings; SparkPost says to use 1024 bits if your DNS host can't do that. - Ask SparkPost to check it (
dkim_verifyin the API). Verify within two weeks, or SparkPost removes the domain from your account. - Optionally add a bounce subdomain with a CNAME to your account's SparkPost domain and verify it with
cname_verify.
DMARC alignment
With the TXT key verified, SparkPost signs your messages with your domain, so the DKIM result can align with your From address under DMARC. SparkPost lets you verify a domain through a mailbox instead of DNS, but warns that it can't DKIM-sign mail for a domain verified that way. Use DNS verification if you want an aligned signature.
Key length and rotation
New sending domains default to a 2048-bit key, and keys you supply must be between 1024 and 4096 bits. A domain can hold up to 256 additional DKIM keys, which helps when you change keys: publish the new selector first, then switch. Replacing the main key means sending a new private key, public key and selector together, and that resets the domain's DKIM status to unverified until the new TXT record is checked. SparkPost doesn't publish a rotation schedule.
Common mistakes
- One string for a 2048-bit key. Many DNS hosts reject a TXT value that long. Split it into strings or choose a 1024-bit key.
- Mailbox verification. It lets you send, but SparkPost then can't DKIM-sign, so DMARC has nothing aligned to rely on.
- Changing the key fields without republishing. Any change to
signing_domainor the key resetsdkim_statusto unverified. - Waiting too long. Sending domains that stay unverified for two weeks are removed.
Check your SparkPost DKIM key
Enter your domain and the selector from your SparkPost account. Free, reads public DNS only.
Need your own key pair for this setup? The DKIM Record Generator creates one in your browser.
Frequently asked questions
What does the scph selector in SparkPost DKIM mean?
It is the name SparkPost's examples give a generated key, such as scph0316, and the record lives at scph0316._domainkey.example.com. Your account may show a different selector, so publish the one it returns.
Can I use my own DKIM key with SparkPost?
Yes. When you create or update a sending domain through the API, send your private key, public key and selector together. Publish the public key as a TXT record at <selector>._domainkey and verify it.
Why can't SparkPost sign my mail after mailbox verification?
Mailbox verification only proves you control an address at the domain; no DKIM key is published in DNS. SparkPost says it then can't DKIM-sign, which can hurt delivery, so it recommends DNS verification wherever possible.
Sources
- SparkPost API Reference: Sending Domains
- RFC 6376: DomainKeys Identified Mail (DKIM) Signatures
- RFC 8301: Cryptographic Algorithm and Key Usage Update to DKIM
Checked against SparkPost's documentation on November 3, 2026. Providers change their setup screens; if yours differs, follow the values your admin console shows.
DKIM records for other providers
- Microsoft 365CNAME: selector1, selector2
- Google WorkspaceTXT: google
- Zoho MailTXT: you choose (e.g. zoho)
- GoDaddyCNAME: secureserver1, secureserver2
- FastmailCNAME: fm1, fm2, fm3
- Proton MailCNAME: protonmail, protonmail2, protonmail3
- iCloud MailCNAME: sig1
- HostingerCNAME: hostingermail-a, hostingermail-b, hostingermail-c
- Private EmailTXT: privateemail, default (bought before 2 June 2026)
- IONOSCNAME: s1-ionos, s2-ionos, s42582890
- Rackspace EmailTXT: shown in the Cloud Office Control Panel
- Amazon SESCNAME or TXT: <token1>, <token2>, <token3> (Easy DKIM), your own (BYODKIM)
- SendGridCNAME or TXT: s1, s2
- MailgunTXT or CNAME: assigned by Mailgun (e.g. pic, krs, smtp), pdk1, pdk2 (Automatic Sender Security)
- PostmarkTXT: <timestamp>pm (e.g. 20131031155228pm)
- MailjetTXT: mailjet
- SMTP2GOCNAME: shown in SMTP2GO for your domain
- Elastic EmailTXT: api
- ResendTXT: resend
- MailerSendCNAME: ms1, ms2
- MailchimpCNAME: k2 and a second CNAME (Marketing), mte1, mte2 (Transactional)
- BrevoTXT or CNAME: mail (TXT), 2 CNAMEs from your account
- HubSpotCNAME: hs1-<number>, hs2-<number>
- KlaviyoCNAME: km1, km2 (marketing), kt1, kt2 (transactional), ks1, ks2 (service)
- ActiveCampaignCNAME: acdkim1, acdkim2
- Constant ContactCNAME or TXT: ctct1, ctct2 (CNAME), generated per key (TXT)
- SquarespaceCNAME: squarespace
- Dynamics 365 Customer InsightsCNAME: CNAME1 and CNAME2 from the wizard (e.g. namkey1)
- MailerLiteCNAME: litesrv
- Campaign MonitorTXT: cm, your own (existing keys)
- KitCNAME: cka
- MarketoTXT: chosen by you in Marketo
- Account Engagement (Pardot)TXT: shown in Expected DNS Entries
- Customer.ioTXT: cio
- Zoho CampaignsTXT: numbered per account (e.g. 2232)
- SalesforceCNAME: you choose two (e.g. example-sf-a, example-sf-b)
- ZendeskCNAME: zendesk1, zendesk2
- Help ScoutCNAME: strong1, strong2
- IntercomCNAME: intercom
- OdooCNAME: odoo
Compare every provider's selectors in one table · SPF record for SparkPost
Related guides
How to find a domain's DKIM selector, and check its key
Find a DKIM selector from the s= tag in an email header, see the selectors Microsoft 365, Google Workspace and common senders use, then check the key.
8 min read SPF, DKIM & DMARCHow to rotate DKIM keys without breaking email
How often to rotate DKIM keys, which key length to use, how to name selectors, and how to rotate in Microsoft 365, Google Workspace and on your own server.
9 min read SPF, DKIM & DMARCDKIM "body hash did not verify" and other DKIM failures: causes and fixes
Fix DKIM failures: body hash did not verify, signature did not verify, no key for signature and short keys. Causes from mailing lists to broken TXT records.
9 min readLast updated