---
title: "Domains"
description: "The domains you send from. Add a domain, publish its DNS records, verify it, and manage its tracking and TLS defaults — sending is blocked until the domain verifies."
url: https://www.unitpost.com/docs/api/domains
section: API reference
updated: 2026-07-31
---
# Domains

## Domains

> The domains you send from. Add a domain, publish its DNS records, verify it, and manage its tracking and TLS defaults — sending is blocked until the domain verifies.

Full schemas: [OpenAPI 3.1](https://www.unitpost.com/api/v1/openapi.json). HTML reference: https://www.unitpost.com/docs/api/domains.

## Operations

### `GET /api/v1/email/domains`

List domains

Retrieve a list of your sending domains, cursor-paginated, with each domain's verification status. Add a new one with [Add a domain](#post-email-domains), or fetch a single domain (including its DNS records) with [Retrieve a domain](#get-email-domains-id). Requires the `domains:read` capability.

### `POST /api/v1/email/domains`

Add a domain

Add a domain you'll send email from. The response includes the DNS `records` (SPF, DKIM, and so on) to publish with your DNS provider. Once they're published, trigger a check with [Verify a domain](#post-email-domains-id-verify) — sending from the domain is blocked until it verifies. Requires the `domains:write` capability.

### `GET /api/v1/email/domains/{id}`

Retrieve a domain

Retrieve a single sending domain by `id`, including its current verification status and the DNS `records` you need to publish. Re-run the DNS check with [Verify a domain](#post-email-domains-id-verify), or change its tracking/TLS settings with [Update a domain](#patch-email-domains-id). Requires the `domains:read` capability.

### `DELETE /api/v1/email/domains/{id}`

Delete a domain

Remove a sending domain from your workspace. Sends that reference an address on this domain will be rejected afterwards, so update your `from` addresses first. Re-add it any time with [Add a domain](#post-email-domains) (you'll need to verify it again). Requires the `domains:write` capability.

### `PATCH /api/v1/email/domains/{id}`

Update a domain

Update a domain's sending options: open/click tracking defaults, TLS enforcement, and the tracking subdomain. These act as the domain-level defaults that individual emails and campaigns can override (see [Update a campaign](#patch-email-campaigns-id)). Requires the `domains:write` capability.

### `POST /api/v1/email/domains/{id}/verify`

Verify a domain

Run an on-demand DNS check and advance the domain's verification status. The response includes per-record `checks` so you can see exactly which DNS records are still missing or wrong. Get the records to publish from [Retrieve a domain](#get-email-domains-id). Verification also re-runs periodically in the background. Requires the `domains:write` capability.

## Related

- [Webhooks](https://www.unitpost.com/docs/api/webhooks): Register HTTPS endpoints that receive signed event deliveries (delivered, bounced, opened, clicked, …). The signing secret is returned once on create; verify the signature on every delivery.
- [API keys](https://www.unitpost.com/docs/api/api-keys): Create and revoke the API keys your integrations authenticate with. These endpoints are session-gated (dashboard cookie + `apikeys:manage`) and NOT usable with a Bearer API key.
- [Suppressions](https://www.unitpost.com/docs/api/suppressions): Address-level send blocks — the hard "never email this address" list. Combines engine-written bounce/complaint entries, your own additions, and read-only Unitpost-wide blocks.
