Getting started
DKIMkit authenticates your customers' sending domains with SendGrid, Postmark, Mailgun or Amazon SES. It creates the DNS records, writes them for your customers or shows them what to add, keeps checking until your email provider verifies the domain, and tells your app when each domain is ready. This guide takes you from sign-up to your first verified domain.
1. Create an account
Sign up with your email address. We email you a link; there's no password.
2. Connect your email provider
In the dashboard under Settings, choose your email provider and enter its credentials:
| Provider | What to enter |
|---|---|
| SendGrid | An API key with full Sender Authentication access, plus Inbound Parse to receive email |
| Postmark | An account API token (Account → API Tokens), plus a server ID if you want to receive email |
| Mailgun | A private API key and your account's region (US or EU) |
| Amazon SES | An IAM access key with SES permissions (create, get and delete identities, set MAIL FROM) and your SES region |
Credentials are encrypted at rest and never shown again. Each account uses one provider; to switch, delete your domains first.
Each provider asks for slightly different DNS records, and we handle the differences. For example, if a domain already has an SPF record, we add the provider to it rather than creating a second SPF record, which would break SPF.
No code: add your domains in the dashboard
Bought domains at GoDaddy, Namecheap, Hostinger or anywhere else? Paste them into Domains in the dashboard, one per line, up to 100 at a time. Each one gets sender authentication at your email provider, plus inbound email if you tick Also receive email and enter the URL received mail should be posted to.
We detect where each domain's DNS is hosted. Domains on Cloudflare or Route 53 can have their records written for you, if you enter a Cloudflare API token or AWS keys under Write DNS records automatically. For every other domain, the dashboard lists the records to add, grouped by DNS host, with a CSV and a zone file you can import. We keep checking and verify each domain as soon as its records are live.
The steps below are for adding domains from your own app with the API.
3. Create an API key
Choose Create new API key in the dashboard and copy it. It's shown once. Use it from your backend as a bearer token:
export API_KEY=dk_live_…
curl https://dkimkit.com/v1/account -H "Authorization: Bearer $API_KEY"
4. Register a domain
curl -X POST https://dkimkit.com/v1/domains \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "customer.com", "tenant_id": "cus_42", "dns": {"provider": "manual"}}'
The response includes the DNS records your customer needs to add. Then you have two options:
- Show the records: show them in your app, so your customer can add them at their DNS host. We detect when they're live.
- Write them for the customer: pass
"dns": {"provider": "cloudflare", "cloudflare_api_token": "…"}, or the Route 53 equivalent, and we add the records to their DNS ourselves.
Or skip building UI entirely and use the embeddable widget, which walks your customers through it, including connecting Cloudflare or Route 53.
5. Find out when it's verified
Check GET /v1/domains/{id}, or better, set a Webhook URL in the dashboard and we'll POST a signed domain.verified event as soon as your email provider confirms the domain. We keep checking in the background, and re-check verified domains daily so you hear about it if a record is later removed.
Next steps
- API reference: every endpoint, the domain lifecycle, errors and webhooks
- Embeddable widget: let your customers connect their own DNS inside your app
- Node.js library and CLI: run the same setup from your own code or terminal, with your own keys