Skip to content

Register a sending domain

Requires EDITOR. trackingSubdomain (if provided) must sit under the domain.

projectId
required
string

Tenant project id (row-level isolation on every query).

Media typeapplication/json
object
domain
required
string
>= 3 characters <= 255 characters
trackingSubdomain
string | null
>= 3 characters <= 255 characters
Examplegenerated
json
{
"domain": "example",
"trackingSubdomain": "example"
}

Created domain (status/spfStatus/dkimStatus/dmarcStatus start ‘pending’).

Media typeapplication/json
object
domain
object
id
string
projectId
string
domain
string
trackingSubdomain
string | null
status
string
spfStatus
string
dkimStatus
string
dmarcStatus
string
dnsRecords
Array<object>
object
key
additional properties
any
lastCheckedAt
string | null format: date-time
createdAt
string format: date-time
updatedAt
string format: date-time

Invalid domain or trackingSubdomain (issues[] with path/message).

Media typeapplication/json
object
error
string
issues
Array<object>
object
path
string
message
string
Examplegenerated
json
{
"error": "example",
"issues": [
{
"path": "example",
"message": "example"
}
]
}

Not authenticated (no valid session/principal).

Media typeapplication/json
object
error
required

Human-readable error message.

string
message
string
Examplegenerated
json
{
"error": "example",
"message": "example"
}

Authenticated but lacks the required project role.

Media typeapplication/json
object
error
required

Human-readable error message.

string
message
string
Examplegenerated
json
{
"error": "example",
"message": "example"
}

Domain already registered for this project.

Media typeapplication/json
object
error
required

Human-readable error message.

string
message
string
Examplegenerated
json
{
"error": "example",
"message": "example"
}