DNS resolution

Resolve a domain from idcd's globally distributed nodes and compare the answers across regions — useful for spotting DNS poisoning, hijacking or propagation lag.

The DNS probe returns the common record types in one shot. Like all probes it is asynchronous: POST returns one task ID per node, then you poll the task.

Endpoint

POST
/v1/probe/dns
  • Base URLhttps://api-prod.idcd.com/v1
  • AuthAuthorization: Bearer sk_live_...

Request body

{
  "target": "example.com",
  "node_ids": ["node_a", "node_b"]  // optional
}
ParameterTypeRequiredDefaultDescription
targetstring
required
Domain to resolve.
node_idsstring[]optionalProbe from these node IDs (max 20). Auto-selected when omitted.

Response

POST returns the queued task IDs (HTTP 200); poll GET /v1/probe/tasks/{task_id} for each. The completed task's result carries:

GET
/v1/probe/tasks/{task_id}
FieldTypeDescription
result.successbooleanTrue when the A lookup resolved.
result.records.Astring[]Resolved A records.
result.records.MX / TXT / CNAME / NSvariousBest-effort additional records (present when available).
result.resolve_msnumberResolution time in milliseconds.
result.nameserverstringUpstream resolver used by the node.
result.errorstringFailure reason when the lookup failed.

Example

curl -s -X POST https://api-prod.idcd.com/v1/probe/dns \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"target":"example.com"}'
# => {"data":{"task_id":"tsk_789","task_ids":["tsk_789"],"status":"queued"}}

curl -s https://api-prod.idcd.com/v1/probe/tasks/tsk_789 \
  -H "Authorization: Bearer sk_live_xxx"
# => {"data":{"status":"completed","result":{"success":true,"records":{"A":["93.184.216.34"]}}}}

Limits

DNS online tool

Resolve from global nodes and compare answers — no API key required.