DNS Active
DNSTuner API
Comprehensive DNS health check API that analyzes domain DNS configuration for issues, warnings, and best practices. Get detailed reports on nameservers, MX records, SPF, DKIM, DMARC, and more.
https://dnstuner.com/api/v1 < 2s Response Time
1/10sec Rate Limit
None Auth Required
Free Pricing
Quick Start
Request
# Check DNS health for a domain
curl "https://dnstuner.com/api/v1/check/example.com"
# Force refresh (bypasses cache)
curl -X POST "https://dnstuner.com/api/v1/check/example.com/refresh" Request
import requests
# Check DNS health
response = requests.get(
"https://dnstuner.com/api/v1/check/example.com"
)
report = response.json()
print(f"Domain: {report['domain']}")
print(f"Status: {report['overall_status']}")
# Iterate through checks
for category, data in report['checks'].items():
print(f"\n{category}: {data['status']}")
for item in data['items']:
print(f" - {item['test']}: {item['status']}") Request
// Check DNS health
const response = await fetch(
"https://dnstuner.com/api/v1/check/example.com"
);
const report = await response.json();
console.log(`Domain: ${report.domain}`);
console.log(`Status: ${report.overall_status}`);
// Iterate through checks
Object.entries(report.checks).forEach(([category, data]) => {
console.log(`\n${category}: ${data.status}`);
data.items.forEach(item => {
console.log(` - ${item.test}: ${item.status}`);
});
}); Response
200 OK application/json
{
"domain": "example.com",
"last_checked_at": "2025-01-16T12:00:00Z",
"overall_status": "pass",
"checks": {
"nameservers": { "status": "pass", "items": [...] },
"mail": { "status": "warning", "items": [...] },
"security": { "status": "pass", "items": [...] }
},
"nameservers": [
{ "name": "ns1.example.com", "ipv4": ["1.2.3.4"], "reachable": true }
]
} Available Endpoints
GET
/check/{domain} Check DNS health for a domain. Returns cached results or performs a new check.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name to check (e.g., example.com) |
POST
/check/{domain}/refresh Force a fresh DNS check, bypassing cache. Rate limited to once per 10 seconds per domain.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name to refresh |
GET
/health Check service health and cache status.
Error Codes
| Code | Description |
|---|---|
400 | Invalid domain format |
429 | Rate limited - includes retry_after field |
500 | DNS check failed |