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

# Get a Domain

> Get one domain with its DNS records and the status of each record — the same records as **Account Settings → Domains** in the app.

The statuses come from the last DNS check (domains are re-checked automatically). Use the record `status` and `error_message` to see exactly which DNS record still needs to be fixed.

**Tracking host (`mc.`)**
- For a domain such as `example.com`, the tracking record's host is `mc.example.com`.
- For a subdomain that already exists in your DNS, the host gets a `mc-` prefix instead, e.g. `mc-news.example.com`.
- `mc.example.com` is never treated as `example.com`. If it is not used as a tracking host, it can be added as its own domain: it keeps its full name and gets its own records (tracking host `mc-mc.example.com`).
- If `mc.example.com` is already the tracking host of an added domain (e.g. `example.com` was added first), it cannot be added — the API returns 400 *"This domain is already in use or linked elsewhere"*.

Domain status:
- `verified` — the domain is authenticated and ready to send.
- `not_verified` — the DNS records are not all in place yet (or not checked yet).
- `failed` — at least one DNS record was found but is wrong (see the record's `error_message` in Get a Domain).



## OpenAPI

````yaml /openapi-v1.json get /domains/{id}
openapi: 3.1.0
info:
  title: Mailercloud Marketing API
  version: 1.0.0
  description: >-
    Campaigns, contacts, lists, segments, automations, and webhooks for the
    Mailercloud Marketing Platform.
servers:
  - url: https://cloudapi.mailercloud.com/v1
security:
  - apiKey: []
tags:
  - name: Campaigns
  - name: Contacts
  - name: Lists
  - name: Tags
  - name: Segments
  - name: Custom Properties
  - name: Senders
  - name: Domains
  - name: Templates
  - name: Automations
  - name: Webhooks
  - name: Webforms
  - name: Inbox Tracker
  - name: Account
paths:
  /domains/{id}:
    get:
      tags:
        - Domains
      summary: Get a Domain
      description: >-
        Get one domain with its DNS records and the status of each record — the
        same records as **Account Settings → Domains** in the app.


        The statuses come from the last DNS check (domains are re-checked
        automatically). Use the record `status` and `error_message` to see
        exactly which DNS record still needs to be fixed.


        **Tracking host (`mc.`)**

        - For a domain such as `example.com`, the tracking record's host is
        `mc.example.com`.

        - For a subdomain that already exists in your DNS, the host gets a `mc-`
        prefix instead, e.g. `mc-news.example.com`.

        - `mc.example.com` is never treated as `example.com`. If it is not used
        as a tracking host, it can be added as its own domain: it keeps its full
        name and gets its own records (tracking host `mc-mc.example.com`).

        - If `mc.example.com` is already the tracking host of an added domain
        (e.g. `example.com` was added first), it cannot be added — the API
        returns 400 *"This domain is already in use or linked elsewhere"*.


        Domain status:

        - `verified` — the domain is authenticated and ready to send.

        - `not_verified` — the DNS records are not all in place yet (or not
        checked yet).

        - `failed` — at least one DNS record was found but is wrong (see the
        record's `error_message` in Get a Domain).
      operationId: get-a-domain
      parameters:
        - name: id
          in: path
          required: true
          description: Domain ID (from Add a Domain or List Domains)
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Domain ID
                  domain:
                    type: string
                    description: Domain name
                  status:
                    type: string
                    enum:
                      - verified
                      - not_verified
                      - failed
                    description: >-
                      Domain status:

                      - `verified` — the domain is authenticated and ready to
                      send.

                      - `not_verified` — the DNS records are not all in place
                      yet (or not checked yet).

                      - `failed` — at least one DNS record was found but is
                      wrong (see the record's `error_message` in Get a Domain).
                  open_tracking:
                    type: boolean
                    description: >-
                      Open tracking for Email API / SMTP sends from this domain.
                      No effect on marketing campaigns.
                  created_at:
                    type: string
                    description: When the domain was added (ISO 8601, UTC)
                  records:
                    type: array
                    items:
                      type: object
                      properties:
                        purpose:
                          type: string
                          enum:
                            - tracking
                            - dkim
                            - image
                            - dmarc
                            - spf
                            - caa
                          description: What the record is for
                        type:
                          type: string
                          enum:
                            - CNAME
                            - TXT
                            - CAA
                        host:
                          type: string
                          description: Host / name of the record
                        value:
                          type: string
                          description: Value to enter at your DNS provider
                        status:
                          type: string
                          enum:
                            - pending
                            - verified
                            - error
                          description: >-
                            `pending` — not found or not checked yet ·
                            `verified` — correct · `error` — found but wrong
                        error_message:
                          type: string
                          nullable: true
                          description: Why the record is wrong, when known
              examples:
                Example-1:
                  value:
                    id: zjAKXb
                    domain: example.com
                    status: failed
                    open_tracking: false
                    created_at: '2026-10-13T09:43:00Z'
                    records:
                      - purpose: tracking
                        type: CNAME
                        host: mc.example.com
                        value: mc3035n.mlrcloud.com
                        status: verified
                        error_message: null
                      - purpose: dkim
                        type: CNAME
                        host: k1._domainkey.example.com
                        value: dkim.mlrcloud.com
                        status: verified
                        error_message: null
                      - purpose: dkim
                        type: CNAME
                        host: k2._domainkey.example.com
                        value: dkim2.mlrcloud.com
                        status: pending
                        error_message: null
                      - purpose: image
                        type: CNAME
                        host: img3035n.example.com
                        value: img3035n.mlrcloud.com
                        status: verified
                        error_message: null
                      - purpose: dmarc
                        type: TXT
                        host: _dmarc.example.com
                        value: >-
                          v=DMARC1; p=reject; sp=none; adkim=s; aspf=s;
                          rua=mailto:dmarc@mlrcloud.com;
                          ruf=mailto:dmarc@mlrcloud.com;
                        status: error
                        error_message: More than one dmarc TXT record found in your provider
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                        message:
                          type: string
              examples:
                Example-1:
                  value:
                    errors:
                      - field: ''
                        message: Authorization failed
        '404':
          description: Not Found — unknown id, or a domain that belongs to another account
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                        message:
                          type: string
              examples:
                Example-1:
                  value:
                    errors:
                      - field: id
                        message: Domain not found
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
              examples:
                Example-1:
                  value:
                    message: Too Many Requests
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
              examples:
                Example-1:
                  value:
                    message: >-
                      Sorry, we are experiencing some technical difficulties.
                      Please try after some time.
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Your Mailercloud API key (plain text, no Bearer prefix). Create keys in
        Settings → API.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.