Verify a domain
Live emails must come from a domain you control and have verified. Verification proves ownership and sets up authentication (SPF, DKIM) so mailbox providers trust your mail.
1. Add the domain
curl -X POST https://api.sendbyte.africa/v1/domains \ -H "Authorization: Bearer sk_live_..." \ -H "Content-Type: application/json" \ -d '{"domain": "yourcompany.ng"}'The response includes dns_records: the exact records to publish.
| Purpose | Host | Value | Required |
|---|---|---|---|
| SPF | yourcompany.ng | v=spf1 include:spf.sendbyte.africa ~all | Yes |
| DKIM | sb._domainkey.yourcompany.ng | v=DKIM1; k=rsa; p=... | Yes |
| DMARC | _dmarc.yourcompany.ng | v=DMARC1; p=none; rua=mailto:dmarc@sendbyte.africa | Recommended |
2. Publish the records
Add them as TXT records at your DNS host (Cloudflare, Route 53, your registrar). Propagation is usually minutes, occasionally up to an hour.
3. Check verification
curl -X POST https://api.sendbyte.africa/v1/domains/{domain_id}/verify \ -H "Authorization: Bearer sk_live_..."The response shows a per-record pass/fail. When both required records pass, the domain flips to verified and live sending from any address at that domain works immediately. The dashboard does the same with one click.
Troubleshooting
- SPF fails but I added it: check you don’t have two SPF records; merge them.
- DKIM fails: some DNS hosts split long TXT values into chunks; that’s fine, we join them. Make sure the host is exactly
sb._domainkey.yourdomain, notsb._domainkey.yourdomain.yourdomain. - Still pending after an hour: query your records directly with
dig TXT sb._domainkey.yourcompany.ngand compare against the dashboard values.