API documentation
Every tool on StatusDNS is available as a JSON endpoint. Same engine, same results.
Authentication
Create a key under Account → API keys (Starter plan and above). Send it as a bearer token:
curl -X POST https://statusdns.com/api/v1/lookup/mx \
-H "Authorization: Bearer sdns_your_key_here" \
-H "Content-Type: application/json" \
-d '{"q": "example.com"}'
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/tools | List all tools with slug, input type and description. |
| POST | /api/v1/lookup/{tool} | Run a tool. Body: {"q": "...", ...options}. Options: selector (dkim), port (ssl, smtp, tcp), type (dns-propagation), nocache. |
Response schema
{
"ok": true,
"result": {
"tool": "mx", "query": "example.com",
"status": "pass | warn | fail | info | error",
"summary": "1 MX record(s) for example.com",
"counts": {"pass": 3, "warn": 1, "fail": 0, "info": 0},
"checks": [{"status": "pass", "name": "MX records", "message": "..."}],
"columns": [{"key": "host", "label": "Host name"}],
"records": [{"priority": 10, "host": "mail.example.com", "ip": "..."}],
"sections": [{"title": "...", "type": "table|kv|list|code|tree|checks", "data": ...}],
"meta": {"zone": "example.com", "checked_at": "2026-09-16T10:00:00+00:00"},
"related": [{"tool": "spf", "query": "example.com"}],
"raw": "example.com. 300 IN MX 10 mail.example.com.",
"duration_ms": 120, "cached": false
}
}
Errors
401 invalid key · 403 plan does not include the API · 422 invalid input (message in error) · 429 quota or rate limit exceeded.
Rate limits and caching
Identical queries are cached for 30–3600 seconds depending on the tool (whois: 1 hour). Pass "nocache": 1 to force a live query; this counts as a call. Monthly quotas per plan are listed on the pricing page.