---
title: "List custom DNS records"
method: GET
path: "/v1/domains/{domain_id}/custom-dns-records"
tags: ["Domains"]
---

# List custom DNS records

`GET /v1/domains/{domain_id}/custom-dns-records`

## Request

- Base URL: `https://api.winnr.app`
- URL: `https://api.winnr.app/v1/domains/{domain_id}/custom-dns-records`
- Auth: HTTP bearer

List user-added DNS records for the domain. Records are stored in
Firestore alongside the domain doc; this endpoint does not make
provider calls. Returns 503 if the domain's `dns_provider` is
`manual` or `external` (no API write access).

## Path parameters

- `domain_id` string, required

## Response `200`

Custom DNS records

- object
  - `meta` Meta
    - `request_id` string
    - `timestamp` string, date-time
  - `data` object
    - `domain` string
    - `dns_provider` string
    - `records` CustomDnsRecord[]
      - `id` string: Winnr-generated UUID for this record
      - `name` string: "@" for apex, otherwise a relative label (e.g. "www")
      - `type` 'TXT' | 'CNAME' | 'A' | 'AAAA'
      - `value` string
      - `ttl` integer
      - `provider_record_id` string: The DNS provider's native record identifier. For Cloudflare and CloudDNS this is the API-returned record ID. For Route 53 (which has no record ID) this is a synthetic `r53:{type}:{fqdn}` string.
      - `created_at` string, date-time
      - `updated_at` string, date-time
      - `created_by` string: Firebase UID that created the record
    - `dmarc_override` object, nullable
      - `value` string
      - `updated_at` string, date-time

## Other responses

- `401`: Authentication required or token invalid
- `404`: Resource not found
- `503`: DNS provider does not support API record management

---

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