Skip to content
Docs menu

Domains

Every Domains endpoint.

GET/v1/domains

List domains

Every domain this tenant owns, with each capability's status. `dns_records` is omitted here; fetch a single domain for those.

Auth: apiKey or jwt

Parameters

NameInRequiredDescription
pagequeryoptional
limitqueryoptional

Responses

200 : Default Response

FieldTypeRequiredDescription
dataarrayrequired
data[].capabilities.receivingobjectrequired · nullable
data[].capabilities.receiving.enabledbooleanrequired
data[].capabilities.receiving.mx_found_valuestringrequired · nullable
data[].capabilities.receiving.mx_statusstringrequired
data[].capabilities.receiving.statusstringrequired
data[].capabilities.receiving.txt_found_valuestringrequired · nullable
data[].capabilities.receiving.txt_statusstringrequired
data[].capabilities.receiving.verification_tokenstringrequired · nullable
data[].capabilities.receiving.verified_atstringrequired · nullable
data[].capabilities.sendingobjectrequired · nullable
data[].capabilities.sending.click_trackingbooleanrequired
data[].capabilities.sending.dkim_found_valuestringrequired · nullable
data[].capabilities.sending.dkim_public_keystringrequired · nullable
data[].capabilities.sending.dkim_selectorstringrequired · nullable
data[].capabilities.sending.dkim_statusstringrequired
data[].capabilities.sending.dmarc_found_valuestringrequired · nullable
data[].capabilities.sending.dmarc_statusstringrequired
data[].capabilities.sending.enabledbooleanrequired
data[].capabilities.sending.open_trackingbooleanrequired
data[].capabilities.sending.return_path_found_valuestringrequired · nullable
data[].capabilities.sending.return_path_statusstringrequired
data[].capabilities.sending.spf_found_valuestringrequired · nullable
data[].capabilities.sending.spf_statusstringrequired
data[].capabilities.sending.statusstringrequired
data[].capabilities.sending.track_found_valuestringrequired · nullable
data[].capabilities.sending.track_statusstringrequired
data[].capabilities.sending.verified_atstringrequired · nullable
data[].created_atstringrequired · nullable
data[].idstringrequired
data[].namestringrequired
data[].updated_atstringrequired · nullable
pagination.limitnumberrequired
pagination.pagenumberrequired
pagination.pagesnumberrequired
pagination.totalnumberrequired
curl
curl https://api.zsender.io/v1/domains \
  -H "Authorization: Bearer $ZSENDER_API_KEY"
POST/v1/domains

Create a domain

Registers a domain and returns its DNS records to publish. Omitting `capabilities` defaults to sending-only; an explicitly empty `capabilities: {}` is a `400`. Requires `admin`.

Auth: apiKey or jwt

Request body

FieldTypeRequiredDescription
capabilities.receiving.enabledbooleanrequired
capabilities.sending.enabledbooleanrequired
namestringrequired
Example request body
{
  "capabilities": {
    "receiving": {
      "enabled": true
    },
    "sending": {
      "enabled": true
    }
  },
  "name": "example.com"
}

Responses

201 : Default Response

FieldTypeRequiredDescription
capabilities.receivingobjectrequired · nullable
capabilities.receiving.enabledbooleanrequired
capabilities.receiving.mx_found_valuestringrequired · nullable
capabilities.receiving.mx_statusstringrequired
capabilities.receiving.statusstringrequired
capabilities.receiving.txt_found_valuestringrequired · nullable
capabilities.receiving.txt_statusstringrequired
capabilities.receiving.verification_tokenstringrequired · nullable
capabilities.receiving.verified_atstringrequired · nullable
capabilities.sendingobjectrequired · nullable
capabilities.sending.click_trackingbooleanrequired
capabilities.sending.dkim_found_valuestringrequired · nullable
capabilities.sending.dkim_public_keystringrequired · nullable
capabilities.sending.dkim_selectorstringrequired · nullable
capabilities.sending.dkim_statusstringrequired
capabilities.sending.dmarc_found_valuestringrequired · nullable
capabilities.sending.dmarc_statusstringrequired
capabilities.sending.enabledbooleanrequired
capabilities.sending.open_trackingbooleanrequired
capabilities.sending.return_path_found_valuestringrequired · nullable
capabilities.sending.return_path_statusstringrequired
capabilities.sending.spf_found_valuestringrequired · nullable
capabilities.sending.spf_statusstringrequired
capabilities.sending.statusstringrequired
capabilities.sending.track_found_valuestringrequired · nullable
capabilities.sending.track_statusstringrequired
capabilities.sending.verified_atstringrequired · nullable
created_atstringrequired · nullable
dns_recordsarrayrequired
dns_records[].capabilitystringrequired
dns_records[].namestringrequired
dns_records[].prioritynumberoptional
dns_records[].typestringrequired
dns_records[].valuestringrequired
idstringrequired
namestringrequired
updated_atstringrequired · nullable
curl
curl https://api.zsender.io/v1/domains \
  -X POST \
  -H "Authorization: Bearer $ZSENDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "capabilities": {
    "receiving": {
      "enabled": true
    },
    "sending": {
      "enabled": true
    }
  },
  "name": "example.com"
}'
DELETE/v1/domains/{id}

Delete a domain

Tears down every capability on the domain and answers `204` with an empty body. Requires `admin`.

Auth: apiKey or jwt

Parameters

NameInRequiredDescription
idpathrequired

Responses

204 : Default Response

curl
curl https://api.zsender.io/v1/domains/{id} \
  -X DELETE \
  -H "Authorization: Bearer $ZSENDER_API_KEY"
GET/v1/domains/{id}

Get one domain, with its DNS records

Includes `dns_records`, the exact values to publish for every capability the domain has enabled. `404` for an unknown or cross-tenant id, never a `403`.

Auth: apiKey or jwt

Parameters

NameInRequiredDescription
idpathrequired

Responses

200 : Default Response

FieldTypeRequiredDescription
capabilities.receivingobjectrequired · nullable
capabilities.receiving.enabledbooleanrequired
capabilities.receiving.mx_found_valuestringrequired · nullable
capabilities.receiving.mx_statusstringrequired
capabilities.receiving.statusstringrequired
capabilities.receiving.txt_found_valuestringrequired · nullable
capabilities.receiving.txt_statusstringrequired
capabilities.receiving.verification_tokenstringrequired · nullable
capabilities.receiving.verified_atstringrequired · nullable
capabilities.sendingobjectrequired · nullable
capabilities.sending.click_trackingbooleanrequired
capabilities.sending.dkim_found_valuestringrequired · nullable
capabilities.sending.dkim_public_keystringrequired · nullable
capabilities.sending.dkim_selectorstringrequired · nullable
capabilities.sending.dkim_statusstringrequired
capabilities.sending.dmarc_found_valuestringrequired · nullable
capabilities.sending.dmarc_statusstringrequired
capabilities.sending.enabledbooleanrequired
capabilities.sending.open_trackingbooleanrequired
capabilities.sending.return_path_found_valuestringrequired · nullable
capabilities.sending.return_path_statusstringrequired
capabilities.sending.spf_found_valuestringrequired · nullable
capabilities.sending.spf_statusstringrequired
capabilities.sending.statusstringrequired
capabilities.sending.track_found_valuestringrequired · nullable
capabilities.sending.track_statusstringrequired
capabilities.sending.verified_atstringrequired · nullable
created_atstringrequired · nullable
dns_recordsarrayrequired
dns_records[].capabilitystringrequired
dns_records[].namestringrequired
dns_records[].prioritynumberoptional
dns_records[].typestringrequired
dns_records[].valuestringrequired
idstringrequired
namestringrequired
updated_atstringrequired · nullable
curl
curl https://api.zsender.io/v1/domains/{id} \
  -H "Authorization: Bearer $ZSENDER_API_KEY"
PATCH/v1/domains/{id}

Toggle capabilities on a domain

A capability object carries only the fields being changed; an empty object is a `400`. `name` is immutable and rejected if sent. Requires `admin`.

Auth: apiKey or jwt

Parameters

NameInRequiredDescription
idpathrequired

Request body

FieldTypeRequiredDescription
capabilities.receivingobjectoptional · nullable
capabilities.receiving.click_trackingbooleanoptional
capabilities.receiving.enabledbooleanoptional
capabilities.receiving.open_trackingbooleanoptional
capabilities.sendingobjectoptional · nullable
capabilities.sending.click_trackingbooleanoptional
capabilities.sending.enabledbooleanoptional
capabilities.sending.open_trackingbooleanoptional
Example request body
{
  "capabilities": {
    "sending": {
      "click_tracking": true,
      "open_tracking": true
    }
  }
}

Responses

200 : Default Response

FieldTypeRequiredDescription
capabilities.receivingobjectrequired · nullable
capabilities.receiving.enabledbooleanrequired
capabilities.receiving.mx_found_valuestringrequired · nullable
capabilities.receiving.mx_statusstringrequired
capabilities.receiving.statusstringrequired
capabilities.receiving.txt_found_valuestringrequired · nullable
capabilities.receiving.txt_statusstringrequired
capabilities.receiving.verification_tokenstringrequired · nullable
capabilities.receiving.verified_atstringrequired · nullable
capabilities.sendingobjectrequired · nullable
capabilities.sending.click_trackingbooleanrequired
capabilities.sending.dkim_found_valuestringrequired · nullable
capabilities.sending.dkim_public_keystringrequired · nullable
capabilities.sending.dkim_selectorstringrequired · nullable
capabilities.sending.dkim_statusstringrequired
capabilities.sending.dmarc_found_valuestringrequired · nullable
capabilities.sending.dmarc_statusstringrequired
capabilities.sending.enabledbooleanrequired
capabilities.sending.open_trackingbooleanrequired
capabilities.sending.return_path_found_valuestringrequired · nullable
capabilities.sending.return_path_statusstringrequired
capabilities.sending.spf_found_valuestringrequired · nullable
capabilities.sending.spf_statusstringrequired
capabilities.sending.statusstringrequired
capabilities.sending.track_found_valuestringrequired · nullable
capabilities.sending.track_statusstringrequired
capabilities.sending.verified_atstringrequired · nullable
created_atstringrequired · nullable
dns_recordsarrayrequired
dns_records[].capabilitystringrequired
dns_records[].namestringrequired
dns_records[].prioritynumberoptional
dns_records[].typestringrequired
dns_records[].valuestringrequired
idstringrequired
namestringrequired
updated_atstringrequired · nullable
curl
curl https://api.zsender.io/v1/domains/{id} \
  -X PATCH \
  -H "Authorization: Bearer $ZSENDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "capabilities": {
    "sending": {
      "click_tracking": true,
      "open_tracking": true
    }
  }
}'
POST/v1/domains/{id}/verify

Re-check DNS for every enabled capability

Re-runs DNS verification for every capability the domain has **enabled** and reports each in `results`. `skipped` means exactly one thing: that capability is not enabled, never a failure. Requires `admin`.

Auth: apiKey or jwt

Parameters

NameInRequiredDescription
idpathrequired

Responses

200 : Default Response

FieldTypeRequiredDescription
capabilities.receivingobjectrequired · nullable
capabilities.receiving.enabledbooleanrequired
capabilities.receiving.mx_found_valuestringrequired · nullable
capabilities.receiving.mx_statusstringrequired
capabilities.receiving.statusstringrequired
capabilities.receiving.txt_found_valuestringrequired · nullable
capabilities.receiving.txt_statusstringrequired
capabilities.receiving.verification_tokenstringrequired · nullable
capabilities.receiving.verified_atstringrequired · nullable
capabilities.sendingobjectrequired · nullable
capabilities.sending.click_trackingbooleanrequired
capabilities.sending.dkim_found_valuestringrequired · nullable
capabilities.sending.dkim_public_keystringrequired · nullable
capabilities.sending.dkim_selectorstringrequired · nullable
capabilities.sending.dkim_statusstringrequired
capabilities.sending.dmarc_found_valuestringrequired · nullable
capabilities.sending.dmarc_statusstringrequired
capabilities.sending.enabledbooleanrequired
capabilities.sending.open_trackingbooleanrequired
capabilities.sending.return_path_found_valuestringrequired · nullable
capabilities.sending.return_path_statusstringrequired
capabilities.sending.spf_found_valuestringrequired · nullable
capabilities.sending.spf_statusstringrequired
capabilities.sending.statusstringrequired
capabilities.sending.track_found_valuestringrequired · nullable
capabilities.sending.track_statusstringrequired
capabilities.sending.verified_atstringrequired · nullable
created_atstringrequired · nullable
dns_recordsarrayrequired
dns_records[].capabilitystringrequired
dns_records[].namestringrequired
dns_records[].prioritynumberoptional
dns_records[].typestringrequired
dns_records[].valuestringrequired
idstringrequired
namestringrequired
results.receivingstringrequired
results.sendingstringrequired
updated_atstringrequired · nullable
curl
curl https://api.zsender.io/v1/domains/{id}/verify \
  -X POST \
  -H "Authorization: Bearer $ZSENDER_API_KEY"