DomaineeDocs

DNS Provider Lookup API Reference

Endpoint reference for GET /v1/tools/dns-provider-lookup: parameters, JSON response schema, error codes, and per-IP rate limits. No API key required.

GEThttps://api.domainee.dev/v1/tools/dns-provider-lookup?domain=example.com

Fingerprint the DNS provider serving a domain from its public NS records. Returns the record name written the way that provider's form expects it (@ vs blank vs the full domain), whether it can point a zone apex, where its record editor lives, and the provider-specific settings that silently break custom domain setups.

Free. No API key required. CORS-enabled. Rate-limited per IP at 30/min and 500/day.

Parameters

NameInTypeDescription
domainrequiredquerystring
Domain or hostname. Subdomains are walked up to the zone that holds the NS records.
example: example.com

Example request

curl
curl -s "https://api.domainee.dev/v1/tools/dns-provider-lookup?domain=example.com" | jq

Example response

response.json
{
  "ok": true,
  "data": {
    "host": "example.com",
    "apex": true,
    "zone": "example.com",
    "nameservers": [
      "abdullah.ns.cloudflare.com",
      "audrey.ns.cloudflare.com"
    ],
    "detected": true,
    "provider": {
      "id": "cloudflare",
      "name": "Cloudflare",
      "recordName": "@",
      "apexSupport": "alias",
      "recordEditorPath": "Select your domain > DNS > Records > Add record"
    }
  }
}

Other languages

fetch.js
const res = await fetch("https://api.domainee.dev/v1/tools/dns-provider-lookup?domain=example.com");
const { ok, data } = await res.json();
requests.py
import requests
r = requests.get(
    "https://api.domainee.dev/v1/tools/dns-provider-lookup",
    params={"domain":"example.com"},
)
data = r.json()["data"]

Rate limits & errors

  • 30 requests/minute and 500 requests/day per IP. Exceeding either returns HTTP 429 with a Retry-After header.
  • All responses are JSON with the envelope { "ok": true, "data": {...} } on success or { "ok": false, "error": { "code", "message" } } on failure.
  • code values are stable; safe to switch on programmatically. message is human-friendly and may change.

See also

On this page