DNS Bundle
6 endpoints for DNS lookups, propagation checks, certificate-transparency search, and subdomain enumeration.
For DevOps doing migrations, security researchers, and domain investigators.
Endpoints in this bundle
Each endpoint is independently callable. Bundle membership is for discovery only — you do not need to opt in.
| Method | Endpoint Path | Credits | Operation Summary |
|---|---|---|---|
| POST | /v1/dns/lookup | 1 cr | A, AAAA, MX, TXT, NS, and CNAME per record type. |
| POST | /v1/dns/intelligence | 1 cr | Resolver-diverse summary of a domain's DNS posture. |
| POST | /v1/intel/dns-propagation | 1 cr | Propagation status across geographically distributed resolvers. |
| POST | /v1/intel/cert-transparency-history | 1 cr | crt.sh-backed certificate transparency timeline. |
| POST | /v1/intel/subdomain-enumerate | 1 cr | Subdomain discovery via certificate transparency logs. |
| POST | /v1/intel/whois | 1 cr | WHOIS / RDAP registry record. |
Migration cutover check
Recommended step-by-step workflow sequence for composing these endpoints in production:
Before the cutover, snapshot the current state with /v1/dns/intelligence to capture all record types in one payload.
Push the DNS change at the registrar.
Poll /v1/intel/dns-propagation every 30 seconds until target resolvers in your priority regions return the new value.
After propagation, call /v1/intel/cert-transparency-history to confirm the new certificate was logged and trusted CAs picked it up.
Try a request
Pick a language. Copy-pasteable code snippet configured with your standard Bearer token header.
curl -X POST https://api.ollagraph.com/v1/dns/intelligence \
-H "Authorization: Bearer $OLLAGRAPH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"example.com"}' import httpx, os
r = httpx.post(
"https://api.ollagraph.com/v1/dns/intelligence",
headers={"Authorization": f"Bearer {os.environ['OLLAGRAPH_API_KEY']}"},
json={"domain": "example.com"},
timeout=30.0,
)
print(r.json()) const res = await fetch("https://api.ollagraph.com/v1/dns/intelligence", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.OLLAGRAPH_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ domain: "example.com" }),
});
console.log(await res.json()); DNS bundle FAQ
Common questions about rate limits, execution behavior, and parameters for this workflow.
Which resolvers does dns-propagation hit?
Cloudflare 1.1.1.1, Google 8.8.8.8 / 8.8.4.4, Quad9 9.9.9.9, OpenDNS, plus regional resolvers in EU, APAC, and SA. Result includes per-resolver answers so you can detect splits.
How fresh is cert-transparency-history?
Bound by crt.sh's own ingest lag — typically minutes to a couple of hours after CA log submission. We do not cache.
Does subdomain-enumerate brute-force or only use CT logs?
CT logs only. That misses wildcard certs but avoids generating any traffic at the target. If you need active enumeration, run it yourself and feed candidates into /v1/dns/lookup.
Ship with the DNS bundle.
1,000 credits on signup. No card. Every endpoint in this bundle is live from minute one.