Analysis console for system administrators

Developer API

Programmatic REST access to every tool. Every endpoint returns the same JSON envelope — { ok: true, data, meta } on success, { ok: false, error } on failure. The HTTP status always agrees with the ok field.

v1
Authentication

Authentication is optional. Anonymous requests are counted per client IP and capped at 15 queries per minute. For a higher limit, create an API key from the Monitors dashboard and send it on every request in the X-API-Key header.

AccessLimitNote
Anonymous15 / minPer IP — no key required
API keyHigherPer key — depends on plan

Every response carries X-RateLimit-Limit and X-RateLimit-Remaining headers. When the limit is exceeded the API returns 429 and the retryMs field tells you, in milliseconds, when the window resets.

curl -H "X-API-Key: nt_xxx" \
  "/api/v1/dns?domain=example.com&type=MX"
Endpoints10
MethodPath
GET/api/v1/dns?domain=example.com&type=MX
GET/api/v1/ssl?host=example.com
GET/api/v1/whois?domain=example.com
GET/api/v1/ip?ip=8.8.8.8
GET/api/v1/blacklist?ip=8.8.8.8
GET/api/v1/asn?query=AS15169
GET/api/v1/email-security?domain=example.com
GET/api/v1/subnet?cidr=192.168.1.0/24
POST/api/v1/report
POST/api/v1/bulk/report
Response Envelope
{
  "ok": true,
  "data": {
    "resolver": "Google (8.8.8.8)",
    "records": { "MX": [{ "data": "10 mail.example.com", "TTL": 3600 }] }
  },
  "meta": { "cached": false, "plan": "free" }
}
ok
Whether the request succeeded. When false, an error field replaces data and meta.
data
The endpoint-specific result body — present only on ok:true responses.
meta
Side information about the request: cached (served from cache), plan (anon or the key's plan), tookMs, and count on bulk requests.
Errors

Failed requests return the error form of the same envelope: ok is always false and error is a human-readable message. Some failures carry extra fields — a 429 adds plan and retryMs.

{
  "ok": false,
  "error": "Rate limit aşıldı",
  "plan": "anon",
  "retryMs": 41230
}
Status Codes
CodeMeaningWhenExtra fields
200OKSuccessful response — ok:true
204No ContentOPTIONS preflight (CORS) — no body
400Bad RequestMissing or invalid parameter
401UnauthorizedSession-only dashboard routes (/api/monitors, /api/keys)
404Not FoundUnknown endpoint or record
429Too Many RequestsPer-minute limit exceededplan, retryMs
502Bad GatewayUpstream lookup failed
Bulk Report

A single request processes at most 25 targets; extras are silently trimmed. Each target is evaluated independently and the response is 200 even if one fails — check data[].ok per target.

curl -X POST -H "X-API-Key: nt_xxx" -H "content-type: application/json" \
  -d '{"targets":["example.com","google.com"]}' \
  /api/v1/bulk/report