Skip to content
New to this? Read the Sending Domains guide.

List email domains

GET
/v2/email/domains
curl --request GET \
--url https://api.connect.ms/v2/email/domains \
--header 'Authorization: Bearer <token>'

Your sending domains, newest first, without their DNS records. Paginated with cursor.

limit
integer format: int32
nullable

Page size, between 1 and 200. Defaults to 50.

cursor
string
nullable

The nextCursor value from the previous page.

Connect-Version
string

The API version to use, for example 2026-10-01. Defaults to the version set on your API key.

A page of domains.

Media typeapplication/json

A page of results.

object
data
required

The items on this page.

Array<object>

A domain the workspace sends email from.

object
id
required

The unique id of the domain.

string
domain
required

The domain name, e.g. mail.example.com.

string
status
required
One of:

The domain status: pending (waiting for its DNS records to verify), active (verified and usable as a sender) or failed (verification failed).

string
Allowed values: pending active failed
needsUpgrade
required

True for a domain set up on the previous email infrastructure. It stops sending on 30 November 2026 unless it is added again and verified.

boolean
verifiedAt

When (UTC) the domain was verified, or null if it has not been.

string format: date-time
nullable
expiresAt

The deadline (UTC) for verifying the domain, normally 14 days after it was added; it is removed if still unverified then. Null when there is no deadline.

string format: date-time
nullable
createdAt
required

When (UTC) the domain was added.

string format: date-time
records

The DNS records to publish, with their verification state. Null in lists and for domains that need upgrading.

Array<object>
nullable

A DNS record to publish for a sending domain, with its verification state.

object
type
required

The record type: TXT, CNAME or MX.

string
name
required

The fully qualified host name to publish the record at.

string
value
required

The value to publish.

string
purpose
required
One of:

What a DNS record is for: return_path (bounce handling), dkim (message signing), dmarc (sender policy) or spf (authorised senders).

string
Allowed values: return_path dkim dmarc spf
status
required
One of:

The verification state of a DNS record: pending (not yet verified), verified or failed.

string
Allowed values: pending verified failed
required
required

True when the domain cannot be verified without this record.

boolean
nextCursor

Pass as cursor to fetch the next page. Null when there are no more results, except on the events feed, which always returns one.

string
nullable

Example

{
"data": [
{
"status": "pending",
"records": [
{
"purpose": "return_path",
"status": "pending"
}
]
}
]
}

The request is not valid. The detail field says why, and errors lists any problems by field name.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}

The API key or bearer token is missing or not valid, or the request signature could not be verified.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}

The caller is not allowed to do this.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}

The service is temporarily unavailable. Retry after the Retry-After header.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}