JSON API

the same search as the web form, as JSON

Endpoint

GET https://rdata.dev/api/v1/{type}?q=<value[,value…]>&op=or|and&after=<cursor>

{type} is one of the enabled types below, or auto. q takes up to 16 values separated by commas or whitespace. op=or|and (default or) — domains carrying any / all of the values. after is the opaque cursor from the previous page's next.

Response

{
  "type": "ns", "op": "and", "query": ["ns1.example.com", "ns2.example.com"],
  "approx_total": 1234,          // upper bound: candidate rows before verification
  "results": [ {"domain": "a.com", "resolved_at": "2026-10-01T12:00:00Z", "parked": false, "matched": ["ns1.example.com", "ns2.example.com"]} ],
  "next": "…",                   // "" on the last page
  "duration_ms": 42,
  "note": "…"                    // optional: partial page, unverified display
}

Every page is verified against the live source tables: a domain is listed only if the value is in its current record set. Errors come as {"error": "…"}: 400 bad input / type not enabled / bad cursor, 401 unknown key, 403 anonymous page depth, 429 rate limit or quota (Retry-After), 503 busy or timed out — narrow the query.

Types and coverage

a — A (IPv4): 985708465 of 985708465 domainscname — CNAME target: 985708465 of 985708465 domainsns — NS host: 1189713806 of 1189713806 domains

GET /api/v1/types returns this list as JSON.

Access

Anonymous: 30 requests per minute per IP (IPv6 per /64) and at most 10 pages per query. With a key: no per-IP limit, unlimited paging, a monthly quota of requests (1 unit per request, any type) reported in X-RateLimit-Limit / X-RateLimit-Remaining. Pass the key as ?key=rd_… or Authorization: Bearer rd_….

A request counts against the quota even when it ends in a 503 (busy or timed out).

Keys are issued by hand: write to [email protected] with your use case and expected volume.

Examples

curl 'https://rdata.dev/api/v1/a?q=1.1.1.1'
curl 'https://rdata.dev/api/v1/ns?q=ns1.example.com,ns2.example.com&op=and' -H 'Authorization: Bearer rd_…'
curl 'https://rdata.dev/api/v1/cname?q=shops.myshopify.com&after=…'