---
title: "Ask each authoritative nameserver of a zone every name x type, recursion off, widen on evidence, and compare"
method: GET
path: "/api/sweep"
---

# Ask each authoritative nameserver of a zone every name x type, recursion off, widen on evidence, and compare

`GET /api/sweep`

## Request

- Base URL: `https://isitdns.net`
- URL: `https://isitdns.net/api/sweep`
- Auth: none declared

The sweep of POST /api/sweep, from the query string, with names and types comma-separated. HEAD is not answered.

## Query parameters

- `domain` string, required
- `names` string
- `types` string

## Response `200`

Each asked address's answer per name and type (an address never asked reads not_asked), the addresses not asked and the questions not widened, the flags where they differ, the parent's NS and DS, certificate readiness, and the vantage. An answer's `via` is `edge` or the name of the probe that asked (`theoracle`), and its `relayError` starts with that name.

- SweepResult: One sweep of a zone's own servers
  - `domain` string
  - `zone` string
  - `generatedAt` string, date-time
  - `vantage` string: Where the sweep asked from: the Cloudflare edge, then each probe that answered with its address count
  - `parent` object: The parent's server, its NS set and its DS set (ds null when not measured)
    - `server` string
    - `label` string
    - `ns` string[]
    - `ds` string[], nullable
    - `via` string: The probe the parent was read from when the edge could not dial it; absent: the edge
  - `servers` object[]: Each nameserver address asked
  - `unasked` object[]: Delegated nameservers with no address found
    - `name` string
    - `reason` string
  - `results` object[]: Each name and type, each address's answer and the flags where they differ
  - `certReadiness` object[]: Per name: the CAA set that governs it and its _acme-challenge TXT and CNAME, each with a note
  - `svcb` object[]: HTTPS and SVCB records read from the answers, one note each
  - `limits` object: The sweep's caps and the queries planned
  - `holdback` object: The sample: addresses known, addresses asked, and each address and question not asked with why
  - `relay` object, nullable: For addresses the edge could not dial: what each probe asked and how many answered, or null when no address needed a probe
  - `warnings` string[]
  - `sources` object

## Other responses

- `400`: Refused, the reason in error: a name or type that did not validate, or a zone whose nameservers could not be found or whose zone cut could not be confirmed
- `429`: Rate limited, nothing asked. Retry-After is set.
- `503`: The rate limit could not be read; nothing was asked. Retry-After: 5

---

[API](https://skmtc.dev/isitdns/apis/is-it-dns-api.md) · [All operations](https://skmtc.dev/isitdns/apis/is-it-dns-api/llms.txt) · [OpenAPI document](https://skmtc.dev/isitdns/apis/is-it-dns-api/revisions/d5257837c67b?raw)
