Sending Domains

Before sending email through SendPipe, you must verify ownership of your sending domain. Domain verification ensures deliverability and protects your sender reputation through proper SPF, DKIM, and DMARC configuration.

Verification Flow

Domain verification is a four-step process. SendPipe generates the required DNS records for you -- add them to your domain registrar, then trigger verification.

1Add domain -- Call POST /v1/domains with your domain name. SendPipe returns the DNS records you need to add.
2Get DNS records -- The response includes SPF, DKIM, DMARC, and a verification TXT record.
3Configure registrar -- Add the DNS records at your domain registrar (Cloudflare, Route 53, Namecheap, etc.). DNS propagation may take up to 48 hours.
4Verify -- Call GET /v1/domains/:id/verify to trigger verification. SendPipe checks each record and updates the domain status.

Required DNS Records

When you add a domain, SendPipe generates the following DNS records. All four must be configured for full verification.

RecordTypeNamePurpose
SPFTXT@Authorizes SendPipe to send on your behalf
DKIMCNAMEsendpipe._domainkeyCryptographic signature for email authentication
DMARCTXT_dmarcPolicy for handling SPF/DKIM failures
VerificationTXT_sendpipe-verifyProves domain ownership to SendPipe

Endpoints

POST
/v1/domains

Add a new sending domain. Returns the domain record with generated DNS entries.

GET
/v1/domains

List all domains for the current project with verification status.

GET
/v1/domains/:id/verify

Trigger DNS verification for a pending domain. Returns updated verification status per record.

DELETE
/v1/domains/:id

Remove a sending domain. Messages can no longer be sent from this domain.

Create Domain Body

POST /v1/domains

Request Body
NameTypeRequiredDescription
domainstringYesThe domain name to verify (e.g. "notifications.yourapp.com"). Must be a valid domain.

Example: Add and Verify a Domain

Step 1: Add the domain

curl -X POST https://api.sendpipe.io/v1/domains \
  -H "X-SendPipe-Key: sp_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "notifications.yourapp.com"
  }'

# Response:
# {
#   "id": "dom_clx4...",
#   "domain": "notifications.yourapp.com",
#   "status": "pending",
#   "dnsRecords": [
#     { "type": "TXT", "name": "@", "value": "v=spf1 include:sendpipe.io ~all" },
#     { "type": "CNAME", "name": "sendpipe._domainkey", "value": "dkim.sendpipe.io" },
#     { "type": "TXT", "name": "_dmarc", "value": "v=DMARC1; p=none; ..." },
#     { "type": "TXT", "name": "_sendpipe-verify", "value": "sendpipe-verify=dom_clx4..." }
#   ]
# }

Step 2: Trigger verification after adding DNS records

bash
curl https://api.sendpipe.io/v1/domains/dom_clx4.../verify \
  -H "X-SendPipe-Key: sp_live_your_key_here"

# Response:
# {
#   "id": "dom_clx4...",
#   "domain": "notifications.yourapp.com",
#   "status": "verified",
#   "spf": true,
#   "dkim": true,
#   "dmarc": true,
#   "verification": true
# }