Skip to Content
Knowledge BaseConceptsSending Identities

Sending Identities

A sending identity is anything you’ve proven you control:

  • A domain (preferred — covers any address at that domain), or
  • A specific email address (limited to that one mailbox)

Every email you send must have a From: address that matches a verified identity. Sending from an unverified address returns 400 FROM_NOT_VERIFIED.

Why verification?

Without verification, anyone could claim to send from security@yourbank.com through our infrastructure. Verification proves you control the domain or address at the DNS / mailbox level.

This is the same reason AWS SES, SendGrid, Postmark, Mailgun, and every other ESP requires it. It’s not optional in 2026’s email landscape.

Domain verification

Verifying a domain takes 3 DNS records. Once published + checked, you can send from any address at the domain — hello@, alerts@, noreply@, etc.

Create the identity:

curl https://apis.splashifypro.com/api/v1/partner/email/identities \ -H "Authorization: Bearer $SPLASHIFY_API_KEY" \ -H "Content-Type: application/json" \ -d '{"identity_type": "DOMAIN", "identity_value": "yourcompany.com"}'

The response gives you the 3 records to publish:

TypeHostnameValue
TXTyourcompany.comv=spf1 include:_spf.mail.splashifypro.com ~all
CNAMEsplashify._domainkey.yourcompany.comsplashify._domainkey.mail.splashifypro.com
TXT_dmarc.yourcompany.comv=DMARC1; p=quarantine; rua=mailto:dmarc@splashifypro.com

After publishing on your DNS provider, trigger a re-check:

curl -X POST https://apis.splashifypro.com/api/v1/partner/email/identities/DOMAIN/yourcompany.com/verify \ -H "Authorization: Bearer $SPLASHIFY_API_KEY"

Once "status": "VERIFIED" lands, you’re good. We re-check verified domains every 24 hours; if any record disappears, status flips back to PENDING and we email you.

Email-address verification

For low-volume use cases or when you can’t add DNS records (you’re using a public-domain mailbox like Gmail), verify a single address:

curl https://apis.splashifypro.com/api/v1/partner/email/identities \ -H "Authorization: Bearer $SPLASHIFY_API_KEY" \ -H "Content-Type: application/json" \ -d '{"identity_type": "EMAIL_ADDRESS", "identity_value": "alerts@yourcompany.com"}'

We email a verification link to the address. Click it (or use the verify endpoint directly with the included token) and the address becomes verified.

Public-domain caveat: We refuse to verify addresses at common public providers (gmail.com, yahoo.com, outlook.com, etc.) — sending bulk through you@gmail.com violates Google’s TOS and would get our IP blocklisted within hours. Use your own domain.

Display name vs verified address

You can set a friendly display name without verifying it:

{ "from": "Sarah from Acme <sarah@acme.com>" }

acme.com must be verified. Sarah from Acme is unverified — recipients see whatever string you supply.

Multiple domains

Verify as many domains as you like. Common pattern: one for transactional (mail.acme.com), one for marketing (news.acme.com). Helps deliverability — bounces / complaints on the marketing domain don’t drag down transactional reputation.

Listing your identities

curl https://apis.splashifypro.com/api/v1/partner/email/identities \ -H "Authorization: Bearer $SPLASHIFY_API_KEY"

Removing an identity

curl -X DELETE https://apis.splashifypro.com/api/v1/partner/email/identities/DOMAIN/yourcompany.com \ -H "Authorization: Bearer $SPLASHIFY_API_KEY"

In-flight sends from that domain complete normally; new sends are rejected with FROM_NOT_VERIFIED.

Auto-recheck behaviour

Verified domains: re-checked every 24 hours. Pending domains: re-checked every 1 hour for 7 days, then drop to FAILED if all three records still aren’t published.

You can always re-trigger via POST /verify.

Read more