---
title: "Get Domain"
method: GET
path: "/v0/pods/{pod_id}/domains/{domain_id}"
tags: ["pods > domains"]
---

# Get Domain

`GET /v0/pods/{pod_id}/domains/{domain_id}`

## Request

- Base URL: `https://api.agentmail.to`
- URL: `https://api.agentmail.to/v0/pods/{pod_id}/domains/{domain_id}`
- Auth: HTTP bearer

**CLI:**
```bash
agentmail pods domains get --pod-id <pod_id> --domain-id <domain_id>
```

## Path parameters

- `pod_id` string, required: ID of pod.
- `domain_id` string, required: The ID of the domain.

## Response `200`

Response with status 200

- DomainsDomain
  - `pod_id` string: ID of pod.
  - `domain_id` string, required: The ID of the domain.
  - `domain` string, required: The name of the domain (e.g., `example.com`).
  - `status` 'NOT_STARTED' | 'PENDING' | 'INVALID' | 'FAILED' | 'VERIFYING' | 'VERIFIED', required
  - `reason` string: Why the domain is not (yet) VERIFIED, when known. `dns_records_missing` / `dns_records_invalid` point at the DNS records. The `ses_*` values mean the records look right and sending-infrastructure validation has not converged: `ses_dkim_pending` / `ses_mail_from_pending` (still checking), `ses_dkim_temporary_failure` / `ses_mail_from_temporary_failure` (a transient error the infrastructure keeps retrying on its own — usually resolves without changes), `ses_dkim_failed` / `ses_mail_from_failed` (a terminal verdict; re-verify after fixing), `ses_dkim_not_started` / `ses_mail_from_not_started` (the attribute was never configured on the identity — re-verify to push it), `ses_not_verified_for_sending`, and `tracking_certificate_failed` (the certificate for the open tracking `link.` subdomain was refused; fix CAA or DNS, then turn tracking off and back on). Absent when VERIFIED.
  - `feedback_enabled` boolean, required: Bounce and complaint notifications are sent to your inboxes.
  - `inbound_enabled` boolean: Receive email for this domain. Defaults to `true`. Set `false` for a send-only domain: the apex MX record is not required and is omitted from `records`, so the domain's existing email provider keeps receiving its mail. Inboxes on a send-only domain can still send.
  - `subdomains_enabled` boolean, required: Allow inboxes on any subdomain of this domain. Adds a required wildcard MX record (`*.<domain>`) to `records`.
  - `tracking_enabled` boolean, required: Serve open tracking pixels from this domain. Adds a `link.<domain>` CNAME record to `records`. Open tracking reports its readiness in `tracking_status` and never changes the domain's `status`. Sends with `track_opens` are accepted once `tracking_status` is `VERIFIED`.
  - `tracking_status` 'NOT_STARTED' | 'PENDING' | 'INVALID' | 'FAILED' | 'VERIFYING' | 'VERIFIED'
  - `tracking_reason` string: Why open tracking is not (yet) VERIFIED, when known. `dns_records_missing` / `dns_records_invalid` point at the `link.<domain>` CNAME. `caa_blocked` means the domain's CAA records leave Amazon out: add the `CAA` record listed in `records`, and AgentMail retries the certificate on its own within a few minutes. `certificate_failed` means the certificate was refused; fix the DNS, then turn tracking off and back on. Absent when `tracking_status` is VERIFIED.
  - `records` DomainsVerificationRecord[], required: A list of DNS records for the domain. Includes the apex MX record unless `inbound_enabled` is false, and a wildcard MX record (`*.<domain>`) when `subdomains_enabled` is true. When `tracking_enabled` is true it also lists the `link.<domain>` CNAME and, if the domain's CAA records restrict issuance, a `CAA` record. Those two are for open tracking only: they feed `tracking_status` and do not affect `status`.
    - `type` 'TXT' | 'CNAME' | 'MX' | 'CAA', required
    - `name` string, required: The name or host of the record.
    - `value` string, required: The value of the record.
    - `status` 'MISSING' | 'INVALID' | 'VALID', required
    - `priority` integer: The priority of the MX record.
    - `reason` string: Why the record is INVALID, when known. `duplicate_records` means the expected value is present but extra records coexist at the same name; `value_mismatch` means a record exists but does not match the expected value.
  - `client_id` string: Client ID of domain.
  - `updated_at` string, date-time, required: Time at which the domain was last updated.
  - `created_at` string, date-time, required: Time at which the domain was created.

## Other responses

- `404`: Error response with status 404

## Changes

- **2026-10-28** `4d380313b7be`: 1 warning, 2 info
  - added the new `CAA` enum value to the `records/items/type` response property for the response status `200`
  - added the optional property `tracking_reason` to the response with the `200` status
  - added the optional property `tracking_status` to the response with the `200` status
- **2026-10-16** `3f5c7830c952`: 8 info
  - the endpoint scheme security `Bearer` was added to the API
  - the endpoint scheme security `BearerAuth` was removed from the API
  - api tag `pods > domains` added
  - api tag `PodsDomains` removed
  - …4 more
- **2026-07-15** `394ddcdd9c29`: 4 info
  - added the optional property `code` to the response with the `404` status
  - added the optional property `docs` to the response with the `404` status
  - added the optional property `fix` to the response with the `404` status
  - added the required property `subdomains_enabled` to the response with the `200` status
- **2026-03-31** `27965096e618`: 1 info
  - endpoint added
- **2026-03-28** `8a5b5e92ae2d`: 1 breaking
  - api removed without deprecation

[Operation history](https://skmtc.dev/agentmail-to/apis/api/changes/v0/pods/:pod_id/domains/:domain_id/get.md)

---

[API](https://skmtc.dev/agentmail-to/apis/api.md) - [All operations](https://skmtc.dev/agentmail-to/apis/api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentmail-to/apis/api/revisions/a9792efe7bdf?raw)
