DKIMkit

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:

ProviderWhat to enter
SendGridAn API key with full Sender Authentication access, plus Inbound Parse to receive email
PostmarkAn account API token (Account → API Tokens), plus a server ID if you want to receive email
MailgunA private API key and your account's region (US or EU)
Amazon SESAn 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