> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thepurplebox.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a Domain

> Retrieve details and DNS configuration for a domain identity.

### Headers

<ParamField header="Content-Type" type="string" required>
  `application/json`
</ParamField>

### Query Parameters

<ParamField query="value" type="string" required>
  The domain name to retrieve (e.g., `yourdomain.com`).
</ParamField>

### Response

<ResponseField name="status" type="number">
  HTTP status code. Returns `200` when the domain is retrieved successfully.
</ResponseField>

<ResponseField name="message" type="string">
  A human-readable message describing the result of the operation.
</ResponseField>

<ResponseField name="data" type="object">
  Contains the domain identity configuration and DNS records required for verification.

  <Expandable title="properties">
    <ResponseField name="id" type="string">
      Unique identifier for the domain identity.
    </ResponseField>

    <ResponseField name="value" type="string">
      The domain name that was added.
    </ResponseField>

    <ResponseField name="team_id" type="string">
      The team ID that owns this domain identity.
    </ResponseField>

    <ResponseField name="status" type="string">
      Current status of the domain. Possible values: `not_started`, `pending`, `success`, `failed`, `temporary_failure`.
    </ResponseField>

    <ResponseField name="identity_type" type="string">
      Type of identity. Always `domain` for domain identities.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601 timestamp when the domain identity was created.
    </ResponseField>

    <ResponseField name="verified_at" type="string | null">
      ISO 8601 timestamp when the domain was verified. Null if not yet verified.
    </ResponseField>

    <ResponseField name="attributes" type="object">
      DNS configuration attributes required for domain verification.

      <Expandable title="properties">
        <ResponseField name="dkim_attributes" type="object">
          DKIM (DomainKeys Identified Mail) record configuration for email authentication.

          <Expandable title="properties">
            <ResponseField name="name" type="string">
              The DNS record name for the DKIM selector (e.g., `thepurplebox._domainkey.yourdomain`).
            </ResponseField>

            <ResponseField name="record_type" type="string">
              The DNS record type. Always `TXT` for DKIM records.
            </ResponseField>

            <ResponseField name="value" type="string">
              The DKIM public key value to add to your DNS records. Starts with `v=DKIM1; k=rsa; p=`.
            </ResponseField>

            <ResponseField name="ttl" type="string">
              Time to Live for the DNS record. Can be `auto` or a specific value in seconds.
            </ResponseField>

            <ResponseField name="status" type="string">
              Verification status of the DKIM record. Possible values: `not_started`, `pending`, `success`, `failed`.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="mail_from_attributes" type="array">
          Array of DNS records required for configuring the MAIL FROM domain.

          <Expandable title="properties">
            <ResponseField name="name" type="string">
              The subdomain name for the mail record (e.g., `send.yourdomain` or `bounce.yourdomain`).
            </ResponseField>

            <ResponseField name="record_type" type="string">
              The DNS record type. Can be `TXT` or `CNAME`.
            </ResponseField>

            <ResponseField name="value" type="string">
              The DNS record value. For TXT records, contains SPF policy. For CNAME records, points to the bounce handler.
            </ResponseField>

            <ResponseField name="ttl" type="string">
              Time to Live for the DNS record in seconds (e.g., `60`).
            </ResponseField>

            <ResponseField name="status" type="string">
              Verification status of the record. Possible values: `not_started`, `pending`, `success`, `failed`.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="dmarc_attributes" type="object">
          DMARC (Domain-based Message Authentication, Reporting, and Conformance) record configuration.

          <Expandable title="properties">
            <ResponseField name="name" type="string">
              The DNS record name for DMARC. Always `_dmarc`.
            </ResponseField>

            <ResponseField name="record_type" type="string">
              The DNS record type. Always `TXT` for DMARC records.
            </ResponseField>

            <ResponseField name="value" type="string">
              The DMARC policy value (e.g., `v=DMARC1;p=none;`).
            </ResponseField>

            <ResponseField name="ttl" type="string">
              Time to Live for the DNS record. Can be `auto` or a specific value in seconds.
            </ResponseField>

            <ResponseField name="status" type="string">
              Verification status of the DMARC record.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="verification_status" type="string">
          Overall verification status of the domain. Possible values: `not_started`, `pending`, `success`, `failed`, `temporary_failure`.
        </ResponseField>

        <ResponseField name="verified_for_sending_status" type="boolean">
          Indicates whether the domain is verified and ready to send emails. Returns `true` when all DNS records are verified.
        </ResponseField>

        <ResponseField name="error_type" type="string">
          Error type if verification fails. Empty string when no errors are present.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="last_status_checked_at" type="string">
      ISO 8601 timestamp of the last verification status check.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Response theme={null}
  {
      "status": 200,
      "message": "domain retrieved successfully.",
      "data": {
          "id": "xxxxx",
          "value": "yourdomain.com",
          "team_id": "xxxxx",
          "status": "not_started",
          "identity_type": "domain",
          "created_at": "2025-11-21T10:23:14.737725Z",
          "verified_at": null,
          "attributes": {
              "dkim_attributes": {
                  "name": "thepurplebox._domainkey.yourdomain",
                  "record_type": "TXT",
                  "value": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsBL1UV+VVUqIlNrkhBBC...xxxxx",
                  "ttl": "auto",
                  "status": "not_started"
              },
              "mail_from_attributes": [
                  {
                      "name": "send.yourdomain",
                      "record_type": "TXT",
                      "value": "xxxx",
                      "ttl": "60",
                      "status": "not_started"
                  },
                  {
                      "name": "bounce.yourdomain",
                      "record_type": "CNAME",
                      "value": "xxxxx",
                      "ttl": "60",
                      "status": "not_started"
                  }
              ],
              "dmarc_attributes": {
                  "name": "_dmarc",
                  "record_type": "TXT",
                  "value": "v=DMARC1;p=none;",
                  "ttl": "auto",
                  "status": ""
              },
              "verification_status": "not_started",
              "verified_for_sending_status": false,
              "error_type": ""
          },
          "last_status_checked_at": "2025-11-21T10:23:14.737725Z"
      }
  }
  ```
</ResponseExample>
