id*string · uuid
seq_id*stringSequential id per workspace.
Example: "3"
workspace_id*string · uuid
owner_account_id*string · uuid
fqdn*stringExample: "productcraft.co"
name*stringSame as `fqdn` (Resend's field name).
Example: "productcraft.co"
intent*enum (3)How the workspace uses this domain; `capabilities` is the same thing in Resend's shape. Changeable with PATCH.
capabilities*objectsending*enum (2)Sending from this domain (DKIM signing).
Example: "enabled"
receiving*enum (2)Receiving mail at this domain (MX pointed at ProductCraft).
Example: "disabled"
tls*enum (1)TLS on delivery to the receiving server. Always `opportunistic` today (TLS whenever the receiver offers it); `enforced` is not available yet.
Example: "opportunistic"
open_tracking*booleanOpen tracking. Always false: tracking is not available yet.
Example: false
click_tracking*booleanClick tracking. Always false: tracking is not available yet.
Example: false
tracking_subdomain*stringTracking subdomain. Always null: tracking is not available yet.
Example: null
status*enum (3)Example: "pending"
health*enum (3)Drift on a verified domain. `degraded`: a required record (DKIM, or MX for receiving) went missing or changed, or DKIM signing no longer verifies; mail still flows and workspace owners are emailed. `failing`: still degraded 72 h later; sends from the domain are refused with 422 `domain_not_verified_by_provider`. Back to `ok` as soon as the records are. A failed DNS lookup never changes it, and recommended records (MAIL FROM, DMARC) never do. Always `ok` while the domain is not `active`.
Example: "ok"
health_changed_at*string · date-timeWhen `health` last changed; null if it has always been `ok`.
health_grace_ends_at*string · date-timeWhile `health` is `degraded`: when the 72 h grace ends and the domain becomes `failing` unless the records are back. Null otherwise.
verification_token*stringOwnership token for the `_productcraft-verify` TXT. Issued for receive-only domains; sending domains prove ownership with their DKIM record, so it is null for send/both domains created since 2026-10.
test_token*string
test_received_at*string · date-time
dkim_selector*string
dkim_public_key*stringPublic DKIM key in PEM form (private half stays server-side).
dns_provider*objectThe effective DNS provider: the user's choice when set, otherwise the one detected from the zone's NS records; null when neither is known. Changed in 2026-10 from the raw id string, which is now `dns_provider_id`.
dns_provider_id*stringThe provider id chosen in the setup wizard (PATCH `dns_provider`), or null when not chosen. Kept for one release for clients that read the old string `dns_provider`; use `dns_provider.id`.
Example: "cloudflare"
dns_provider_detected*enum (12)DNS provider detected from the zone's NS records when the domain was added; `dns_provider` reports the effective one.
verification_status*enum (7)One status in Resend's vocabulary, derived from `status`, `health`, `intent` and the record states; first match wins. `disabled`: the domain is disabled. `failed`: `health` is `failing`, or still pending 72 h after it was added. `temporary_failure`: verified, but a required record went missing or changed (`health = degraded`, within the 72 h grace). `verified`: active and healthy. `partially_verified`: a send + receive domain where exactly one of sending (DKIM, and DKIM signing) and receiving (MX) verifies. `pending`: checked at least once, not verified yet. `not_started`: not checked yet. Recommended records (MAIL FROM, DMARC) never change it; see `recommended_pending`.
Example: "pending"
recommended_pending*integerRecommended records (custom MAIL FROM MX + SPF, DMARC) that are not verified yet. Informational; they never block the domain.
Example: 2
region*stringThe region mail from this domain is sent from, e.g. `eu-north-1`. Read-only and the same for every domain of this deployment; null when not configured.
Example: "eu-north-1"
region_name*stringDisplay name of `region`.
Example: "Stockholm"
dns_check_results*objectSnapshot of the most recent DNS check (any shape).
last_dns_check_at*string · date-time
dns_zone*string · hostnameZone apex found by walking SOA records up from the fqdn; null before the first check.
Example: "example.com"
ses_dkim_status*enum (6)DKIM signing verification of this domain, mirrored on every check. `not_enabled` where sending verification is off in this environment (local, preview); null while the domain is not registered for signing yet.
mail_from_subdomain*stringCustom MAIL FROM label (`bounce` → `bounce.<fqdn>`); null when off. On by default for sending domains created since 2026-10.
Example: "bounce"
mail_from_status*enum (4)Verification of the custom MAIL FROM host (its MX record); null when no custom MAIL FROM is configured.
dmarc_managed*booleanfalse when the customer opted out of our `_dmarc` recommendation (PATCH `dmarc_managed`).
Example: true
setup_method*enum (3)How the DNS records were last set up by an automated path: `provider_api` after `POST .../dns-records/apply` wrote them with a provider token, `domain_connect` after a Domain Connect flow. Null when the records were (or are being) added by hand.
Example: null
dmarc_grade*objectThe DMARC policy that governs this domain, graded on the last check; null before the first check of a sending domain.
verified_at*string · date-time
created_at*string · date-time
dns_instructions*arrayDNS records to publish for this domain's intent. Records with `required: true` gate `active`; the rest are informational.
records*arrayThe same records in Resend's `records[]` shape, each with its status.
test_address*stringConvenience accessor for the test-email mailbox address on this domain.
Example: "test-abc123@productcraft.co"
events*arrayThe latest 20 domain events, newest first. Page through all of them with `GET .../domains/{id}/events`.