Add a domain
Add a sending domain with the wemail API and receive the SPF, DKIM and DMARC records to publish. Verify once DNS has propagated to unlock production sending.
Registers the domain and returns the SPF/DKIM/DMARC records to publish. Verify with PUT /v3/domains/{name}/verify once DNS has propagated.
POST /v3/domains
Body parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Required | Only count events whose message was sent from this domain. |
Responses
| Status | Description |
|---|---|
201 | Created. The domain object with status: "pending" and the dns_records to publish (all ok: false until verified). Re-POSTing a domain you already registered returns the existing record instead of an error. |
400 | The value isn't a valid domain name. |
403 | Your plan's domain allowance is used up — upgrade for unlimited domains. |
Code examples
cURL
curl -X POST https://api.wemail.io/v3/domains \
-H "Authorization: Bearer afn_live_…" \
-H "Content-Type: application/json" \
-d '{ "domain": "mail.acme.io" }'Node.js
await wemail.domains.create({ domain: "mail.acme.io" });Python
wemail.domains.create(domain="mail.acme.io")PHP
$wemail->domains->create(['domain' => 'mail.acme.io']);Ruby
wemail.domains.create(domain: "mail.acme.io")Go
client.Domains.Create(ctx, &wemail.DomainParams{Domain: "mail.acme.io"})Java
wemail.domains().create("mail.acme.io");.NET
await wemail.Domains.CreateAsync(new DomainParams { Domain = "mail.acme.io" });ResponseExample response
{
"id": "dom_01HCXV5Z…",
"domain": "mail.acme.io",
"status": "pending",
"spf": false,
"dkim": false,
"dmarc": false,
"dkim_selector": "afn8kq2x1w9",
"tracking_subdomain": "track.mail.acme.io",
"dns_records": [
{ "type": "CNAME", "host": "afn8kq2x1w9._domainkey.mail.acme.io", "value": "afn8kq2x1w9.dkim.wemail.io", "ok": false },
{ "type": "TXT", "host": "mail.acme.io", "value": "v=spf1 include:wemail.io ~all", "ok": false },
{ "type": "CNAME", "host": "track.mail.acme.io", "value": "track.wetik.io", "ok": false },
{ "type": "TXT", "host": "_dmarc.mail.acme.io", "value": "v=DMARC1; p=none;", "ok": false }
],
"sent_count": 0,
"reputation": null,
"created_at": "2026-05-10T09:42:18Z",
"verified_at": null
}