---
title: Domains API | SendHQ Docs
description: Provision sender identities and understand DNS verification state.
canonical: https://sendhq.cc/docs/api-reference/domains
last-updated: 2026-09-07
---
# Domains

Provision sender identities and understand DNS verification state.

POST `/domains`

API key

## Add a sending domain

Add a sending domain

```shell
curl https://sendhq.cc/api/v1/domains \
  -X POST \
  -H "Authorization: Bearer $SENDHQ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"example.com"}'
```

```json
{
  "id": "dom_…",
  "name": "example.com",
  "status": "pending",
  "records": []
}
```

GET `/domains`

API key

## List domains and cached DNS state

List domains and cached DNS state

```shell
curl https://sendhq.cc/api/v1/domains \
  -X GET \
  -H "Authorization: Bearer $SENDHQ_API_KEY"
```

```json
{
  "data": [],
  "count": 0
}
```

GET `/domains/:id`

API key

## Retrieve domain setup details

Retrieve domain setup details

```shell
curl https://sendhq.cc/api/v1/domains/id_value \
  -X GET \
  -H "Authorization: Bearer $SENDHQ_API_KEY"
```

```json
{
  "id": "dom_…",
  "name": "example.com",
  "setup_status": "checking",
  "records": [],
  "dns_issues": []
}
```

POST `/domains/:id/verify`

API key

## Refresh SES and DNS verification

Refresh SES and DNS verification

```shell
curl https://sendhq.cc/api/v1/domains/id_value/verify \
  -X POST \
  -H "Authorization: Bearer $SENDHQ_API_KEY"
```

```json
{
  "domain": {
    "id": "dom_…",
    "status": "verified"
  },
  "checks": {
    "ses": true
  },
  "status": "verified"
}
```

DELETE `/domains/:id`

API key

## Delete a domain

Delete a domain

```shell
curl https://sendhq.cc/api/v1/domains/id_value \
  -X DELETE \
  -H "Authorization: Bearer $SENDHQ_API_KEY"
```

```json
{
  "ok": true
}
```

GET `/dns/provider`

API key

## Detect the authoritative DNS provider and relative record hosts

Detect the domain's authoritative DNS provider from live nameservers, return the relative host to enter for every required record, the recommended DMARC record, inbound MX state, and which one-click setup methods are available.

**Query parameters** `domain_id`

```shell
curl https://sendhq.cc/api/v1/dns/provider \
  -X GET \
  -H "Authorization: Bearer $SENDHQ_API_KEY"
```

```json
{
  "detectionStatus": "confirmed",
  "detected": "cloudflare",
  "zone": "example.com",
  "nameservers": [
    "ada.ns.cloudflare.com"
  ],
  "recordHosts": {},
  "inbound": {
    "available": true,
    "domain": null,
    "status": "not_configured",
    "record": null
  },
  "recommendations": [],
  "authentication": {},
  "providers": {
    "domainConnect": {
      "available": false,
      "providerName": null
    }
  }
}
```

GET `/dns/domain-connect/connect`

API key

## Create a Domain Connect consent link for one-click DNS setup

When the authoritative DNS provider supports the SendHQ Domain Connect template, return a signed provider consent URL. A person must open the URL and approve the change at the DNS provider; SendHQ never receives standing DNS credentials. Returns 409 when the provider does not support the template.

**Query parameters** `domain_id` `next`

```shell
curl https://sendhq.cc/api/v1/dns/domain-connect/connect \
  -X GET \
  -H "Authorization: Bearer $SENDHQ_API_KEY"
```

```json
{
  "url": "https://dns-provider.example/v2/domainTemplates/…",
  "providerName": "Example DNS"
}
```
