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

# GET /v1/domains/{domain}/dns — List All DNS Records

> GET /v1/domains/{domain}/dns — List all DNS records for a domain. Returns record id, type, name, TTL, value, and pending fulfillment status.

Use this endpoint to retrieve all DNS records currently configured for a domain in your workspace. Each record in the response includes an opaque `id` field that you'll need to reference when updating or deleting that record. If the domain is still being provisioned at the registrar, the `pendingFulfillment` flag will be `true` — your records are saved and will be applied automatically once provisioning completes.

## Endpoint

**GET** `/v1/domains/{domain}/dns`

## Path Parameters

<ParamField path="domain" type="string" required>
  The domain name to list DNS records for (e.g. `example.com`).
</ParamField>

## Request Example

```bash theme={null}
curl https://api.namegrid.org/v1/domains/example.com/dns \
  -H "x-api-key: ng_live_xxxxxxxxxxxxxxxxxxxxxxxx"
```

## Response

**200 OK**

<ResponseField name="records" type="array">
  The list of DNS records configured for the domain.

  <Expandable title="record object">
    <ResponseField name="id" type="string">
      Opaque record identifier. Save this value — you'll need it to update or delete this record later.
    </ResponseField>

    <ResponseField name="type" type="string">
      The DNS record type (e.g. `A`, `AAAA`, `CNAME`, `MX`, `TXT`).
    </ResponseField>

    <ResponseField name="name" type="string">
      The record name. `@` represents the domain apex (root).
    </ResponseField>

    <ResponseField name="ttl" type="integer">
      Time to live in seconds. Controls how long resolvers may cache this record.
    </ResponseField>

    <ResponseField name="value" type="string">
      The record value (e.g. an IP address for `A` records, a hostname for `CNAME` records).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="pendingFulfillment" type="boolean">
  `true` if the domain is still being provisioned at the registrar. Records are saved locally and applied automatically once provisioning completes.
</ResponseField>

```json theme={null}
{
  "records": [
    { "id": "b6b0b6a2-...", "type": "A", "name": "@", "ttl": 3600, "value": "192.0.2.1" }
  ],
  "pendingFulfillment": false
}
```

<Note>
  Save the `id` from each record object. It's the only way to reference a specific record when calling the [update](/api-reference/dns/update) or [delete](/api-reference/dns/delete) endpoints.
</Note>
