# DNS Propagation API
> Check DNS propagation by querying a record across several major public resolvers at once — Google (8.8.8.8), Cloudflare (1.1.1.1), AdGuard and dns.sb — and seeing whether they all return the same answer. Pass a domain and a record type and the service queries every resolver in parallel and reports each resolver's answers, whether they are consistent (the change has fully propagated) or still differ (mid-propagation, stale caching or split-horizon DNS), the number of distinct answer sets and the union of all answers. Supported record types: A, AAAA, CNAME, MX, TXT, NS, SOA, SRV, CAA and PTR. A single-resolver endpoint queries one named resolver on its own, and a failing resolver is reported per-resolver without failing the whole call. Live DoH (DNS-over-HTTPS) JSON queries, always current. Built for verifying DNS changes after a migration or launch, debugging split-horizon or stale-cache issues, and uptime/propagation monitoring. A DNS propagation checker — distinct from single-resolver record lookup (dns), the email-authentication analyzer (emailsec) and WHOIS (whois). No upstream key, no cache.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/dnspropagation-api/..."
```

## Pricing
- **Free** (Free) — 2,200 calls/Mo, 2 req/s
- **Starter** ($6/Mo) — 43,000 calls/Mo, 8 req/s
- **Pro** ($21/Mo) — 224,000 calls/Mo, 20 req/s
- **Mega** ($54/Mo) — 840,000 calls/Mo, 50 req/s

## Endpoints

### DNS Propagation

#### `GET /v1/check` — Propagation across resolvers

**Parameters:**
- `domain` (query, required, string) — Domain to query Example: `example.com`
- `type` (query, optional, string) — A, AAAA, CNAME, MX, TXT, NS, SOA, SRV, CAA, PTR Example: `A`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/dnspropagation-api/v1/check?domain=example.com&type=A"
```

#### `GET /v1/lookup` — Query one named resolver

**Parameters:**
- `domain` (query, required, string) — Domain to query Example: `cloudflare.com`
- `type` (query, optional, string) — Record type Example: `NS`
- `resolver` (query, optional, string) — google, cloudflare, adguard, dnssb Example: `google`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/dnspropagation-api/v1/lookup?domain=cloudflare.com&type=NS&resolver=google"
```

### Meta

#### `GET /v1/meta` — Resolvers & record types

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/dnspropagation-api/v1/meta"
```


---
Marketplace page: https://www.oanor.com/api/dnspropagation-api
OpenAPI spec: https://www.oanor.com/api/dnspropagation-api/openapi.json
