---
title: "The connection's managed DNS zone"
method: GET
path: "/connections/{id}/managed-dns"
tags: ["Managed DNS"]
---

# The connection's managed DNS zone

`GET /connections/{id}/managed-dns`

## Request

- Base URL: `https://api.customdomain.ai/v1`
- URL: `https://api.customdomain.ai/v1/connections/{id}/managed-dns`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

The hosted zone's status, the nameservers to set at the registrar, what the registry currently lists, the registrar, every record, and notes to show the user. Poll it while `status` is `awaiting_delegation`. 404 when managed DNS was never started for this connection.

## Path parameters

- `id` string, required

## Response `200`

The zone

- ManagedDNSView
  - `zone` string, required: The hosted zone: the registrable domain.
  - `status` 'awaiting_delegation' | 'active' | 'failed', required: `awaiting_delegation`: the zone holds the records; set the nameservers below at the registrar. `active`: every nameserver the registry lists is ours. `failed`: the switch never happened within 14 days, or the nameservers moved away again (the first warning says which); a failed zone keeps being checked and turns active once the delegation appears.
  - `nameservers` string[], required: The nameservers to set at the registrar.
  - `observed_nameservers` string[], required: The nameservers the registry listed at the last check.
  - `registrar` object, nullable, required: The domain's registrar from RDAP, or null when unknown.
    - `name` string, required
    - `url` string, required: The registrar's website, or an empty string.
  - `records` ManagedDNSRecord[], required
    - `id` string, required: Stable id derived from the record content.
    - `type` 'A' | 'AAAA' | 'CNAME' | 'MX' | 'TXT' | 'SRV' | 'CAA' | 'NS', required
    - `name` string, required: Fully qualified owner name, lower case ("acme.com" is the apex, "*.acme.com" a wildcard).
    - `value` string, required: A/AAAA: the address. CNAME/NS/MX: the target host ("." for a null MX). TXT: the text. SRV: "<weight> <port> <target>". CAA: `<flags> <tag> "<value>"`.
    - `ttl` integer, required: Seconds.
    - `priority` integer, nullable, required: MX preference or SRV priority; null for other types.
    - `source` 'discovered' | 'imported' | 'customdomain' | 'manual', required: Where the record came from. `customdomain` records are the ones CustomDomain™ needs for connected domains; they win every conflict and can't be removed here.
  - `warnings` string[], required: Plain-language notes for the user (a partial delegation, records a zone file import skipped, records replaced).
  - `checked_at` string, date-time, required: When the delegation was last checked.
  - `activated_at` string, date-time, nullable, required

## Other responses

- `401`: Error envelope: {code, title, details}.
- `403`: Error envelope: {code, title, details}.
- `404`: Error envelope: {code, title, details}.
- `503`: Error envelope: {code, title, details}.

---

[API](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api.md) · [All operations](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api/llms.txt) · [OpenAPI document](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api/revisions/34d89cb7a7cd?raw)
