---
title: "Add a domain"
method: POST
path: "/v1/domains"
tags: ["Domains"]
---

# Add a domain

`POST /v1/domains`

Registers a sending domain with the provider. Returns `201` with the bare row in `status: "pending"` plus the DNS `records` to publish. Once the records are live, call `POST /v1/domains/{domainId}/verify` until `sendable: true`.

## Headers

- `Idempotency-Key` string

## Request body

- DomainsPostRequest
  - `name` string, required
  - `region` 'us-east-1'
  - `customReturnPath` string

## Response `201`

Added — publish the returned DNS records, then verify.

- Domain
  - `domainId` string, required
  - `domainUrl` string, uri, required
  - `name` string, required
  - `region` string, required
  - `status` 'not_started' | 'pending' | 'verified' | 'failed' | 'temporary_failure' | 'partially_verified' | 'partially_failed', required
  - `sendingEnabled` boolean, required
  - `sendable` boolean, required
  - `records` object[], required
    - `record` string, required
    - `name` string, required
    - `type` string, required
    - `ttl` string, required
    - `status` string, required
    - `value` string, required
    - `priority` number
  - `openTracking` boolean
  - `clickTracking` boolean
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `verifiedAt` string, date-time

## Other responses

- `400` — The request body or query string was invalid (unknown key, wrong type, or missing required field). Strict schemas reject unknown keys — including `brandId`, which is always resolved from the API key.
- `401` — The API key was missing, invalid, or revoked.
- `403` — The caller does not have the required `domains` permission.
- `409` — The same `Idempotency-Key` was reused with a different request body.
- `429` — The request hit the rolling rate limit window.
- `500` — Unexpected internal error.

---

[API](https://skmtc.net/brew/apis/brew-public-api-v1.md) · [All operations](https://skmtc.net/brew/apis/brew-public-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/brew/brew-public-api-v1/versions/db96cfedc6c5/schema)
