---
title: "Create Domain"
method: POST
path: "/domains"
tags: ["Domains"]
---

# Create Domain

`POST /domains`

## Request

- Base URL: `https://app.lettr.com/api`
- URL: `https://app.lettr.com/api/domains`
- Auth: HTTP bearer

Register a new sending domain with your account. The domain will be created with SparkPost and stored as approved by default, unless global domain reputation marks it for review or blacklist. Adding a domain your team already has returns `409` and leaves its DNS records and verification status unchanged.

## Request body

- StoreDomainRequest: Request to create a new sending domain
  - `domain` string, required: The domain name to register (e.g., example.com)

## Response `201`

Domain created successfully

- StoreDomainResponse: Response after successfully creating a domain
  - `message` string, required: Human-readable success message
  - `data` DomainView, required: View of a sending domain
    - `domain` string, required: The domain name
    - `status` 'pending' | 'approved' | 'blocked', required: Current status of the domain
    - `status_label` string, required: Human-readable status label
    - `dkim` object, nullable: DKIM configuration for the domain
      - `public` string: Public DKIM key
      - `selector` string: DKIM selector
      - `headers` string: Headers to sign
      - `signing_domain` string: Domain used for DKIM signing. Normally matches the top-level `domain` field.

## Other responses

- `401`: Unauthorized - Missing or invalid API key
- `409`: Conflict - Domain already exists
- `422`: Validation error
- `500`: Server error - Failed to create domain
- `503`: Service unavailable - the API key could not be verified, so the request was not processed. This does not mean the key is invalid; retry after the delay given in the Retry-After header.

---

[API](https://skmtc.dev/lettr/apis/lettr-api.md) · [All operations](https://skmtc.dev/lettr/apis/lettr-api/llms.txt) · [OpenAPI document](https://skmtc.dev/lettr/apis/lettr-api/revisions/48ef0dac1ebd?raw)
