GET/api/v1/projects/{project_id}/domains/{domain_id}
Needs scope: readMCP tool: get_sending_domain
operationId get_sending_domain
Get a sending domain
One domain of the project: its status and settings. Needs scope read.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
project_idrequired |
path | string · uuid | The project’s id |
domain_idrequired |
path | string · uuid | The domain’s id |
Request body
None.
Responses
200
The domain
- SendingDomain object · all fields required
-
bounce_subdomainstringexample
bounce.news.example.com -
checksarray of DomainCheckOne entry per check that ran, in the canonical order; empty until the domain is first verified.
3 fields
- DomainCheck object · all fields required
-
detailstring | nullWhat was found instead of what was expected;
nullwhenok. -
namestringspf_bounce,mx_bounce,dkim,dmarc,tracking_cname,tracking_tlsorptr.example
dkim -
statusCheckStatusHow one verification check came out.
- ok
- missing
- mismatch
- warning
-
created_atstring · date-time -
dkim_public_keystringThe DKIM public key: base64 of its DER
SubjectPublicKeyInfo, thep=of the DKIM record (RSA 2048). -
dkim_selectorstringexample
pw1 -
dns_providerDnsProviderWho applies a domain’s DNS records.
- porkbun
- manual
-
domainstringIn punycode for an international name.
example
news.example.com -
idstring · uuidexample
01900000-0000-7000-8000-000000000001 -
ip_poolstringexample
default -
last_checked_atstring · date-time | nullWhen the records were last checked (RFC 3339);
nulluntil then. -
project_idstring · uuid -
statusDomainStatusWhere a sending domain stands.
- pending
- verified
- failed
-
tracking_hoststring | nullnull: none. -
updated_atstring · date-time
404
No such project or domain in it, or another project’s (not_found)
429
The key is over its rate limit, api.rate_limit_per_minute requests a minute on this node (rate_limited)
| Header | Type | Description |
|---|---|---|
Retry-After | integer | Seconds until the key’s next request passes; rounded up. |
504
Postwind’s storage did not answer within its time limit (storage_timeout). A change the request makes may still take effect: check before repeating it. A repeat with the same Idempotency-Key never runs it twice: it is 409 idempotency_key_in_progress until the key’s 24 h end