DNS Provider
free/v1/domain/dns-providerIdentifies the DNS hosting provider(s) for a domain — including multi-provider DNS setups (GitHub, Apple, AWS commonly run two providers in parallel) — and reports observed DNS features (DNSSEC, CAA, IPv6 dual-stack) from live queries rather than static signature metadata.
What It Does
Queries NS records and matches nameserver hostnames against known provider patterns. When NS records map to multiple providers, all are returned with role=primary/secondary. In parallel, queries DNSKEY (DNSSEC enabled + algorithm grading per RFC 8624), CAA (per RFC 8659), and AAAA (dual-stack) so the response reflects what is actually deployed instead of the provider's marketing-page feature list.
Why It's Useful
Understanding DNS provider choice reveals infrastructure decisions and potential capabilities. It's useful for competitive analysis, security assessments, and migration planning.
Use Cases
Competitive Analysis
Analyze which DNS providers competitors use for infrastructure insights.
Inform DNS provider selection based on market trends.
Security Assessment
Identify DNS provider to understand DDoS protection and DNS security capabilities.
Assess target's DNS-level security based on provider.
Sales Targeting
Identify companies using specific DNS providers for targeted outreach.
Focus sales efforts on companies using competitor products.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain | string | Required | The domain to identify DNS provider forExample: example.com |
Response Fields
| Field | Type | Description |
|---|---|---|
domain | string | The queried domain |
detected | boolean | Whether a DNS provider was detected |
provider | string | Primary DNS provider name |
nameservers | array | Nameserver hostnames |
nameserverCount | number | Number of nameservers (camelCase; snake_case `nameserver_count` is also returned during the migration window) |
confidence | string | Detection confidence (high, medium, low) |
vendor | string | DNS provider vendor name |
isPremium | boolean | Whether the DNS service is a premium/enterprise tier (camelCase; snake_case `is_premium` is also returned during the migration window) |
features | array | Provider features (static, from the signature library) |
providers | array | All matched providers when multi-provider DNS is in use, each with { provider, vendor, isPremium, features, matchedNameservers, role: "primary" | "secondary" }. ≥2 entries indicates a parallel-DNS resilience setup (GitHub/Apple/AWS pattern). |
observedFeatures | object | Live-observed DNS features: { dnssec: boolean, dnssecAlgorithm: string | null, dnssecAlgorithmStrength: "strong" | "weak" | "unknown" | null (per RFC 8624), caa: boolean (RFC 8659), dualStack: boolean (AAAA present) }. |
recommendations | array | DNS improvement suggestions — includes weak-algorithm warnings when DNSSEC uses pre-RFC-8624 algorithms, and missing-CAA / missing-AAAA hardening notes |
Code Examples
curl "https://api.edgedns.dev/v1/domain/dns-provider" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "domain=example.com"const response = await fetch(
'https://api.edgedns.dev/v1/domain/dns-provider?domain=example.com',
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
const data = await response.json();
console.log(data);import requests
response = requests.get(
'https://api.edgedns.dev/v1/domain/dns-provider',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
params={
'domain': 'example.com'
}
)
data = response.json()
print(data)Read the full DNS Provider guide
Why it matters, real-world use cases, parameters, response fields, and how to call it from Claude, ChatGPT, or Gemini via MCP.
Read the guide →Related Endpoints
External References
Learn more about the standards and protocols behind this endpoint.
Try This Endpoint
Test the DNS Provider endpoint live in the playground.