Documentation Python quickstart Blog Free tools Enterprise solutions hello@quanticdata.ioLog in
All collectors

DNS lookup API

OSINT & security · v1.1.0 · dns_records

$0.0002 / record

$0.20 / 1K · pay per delivered record

A DNS lookup API over DNS over HTTPS: name a domain, choose record types — A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV, PTR, DS, DNSKEY, HTTPS — and every record returns as its own row with owner name, type, TTL and value. MX rows name a domain's mail provider, TXT rows carry its SPF policy and verification tokens, A and AAAA rows say where it is hosted.

$0.0002 per delivered record · $2 free every month · Failed runs never billed

What it does

What a DNS lookup API does

Any shell has dig; a DNS API earns its place by giving you rows instead of resolver output. Queries go through Google's DoH endpoint and land as uniform records, so a column of domains becomes a table of mail, hosting and delegation facts you can group, count and join like any other dataset here.

Used as an MX record API it classifies mail providers across a domain list; used as a TXT record API it reads the SPF includes and verification tokens — google-site-verification and its provider-specific cousins — that reveal which SaaS vendors a company has wired in. Both are enrichment columns hiding in public records.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
domainstringyesDomain to resolve.
typesarraynoDefault: A, AAAA, MX, TXT, NS.
max_resultsintegernoHow many records to deliver at most (1–100). You pay only for delivered records.

Outputs — 8 fields, one row per record

What one record looks like

Every delivered record carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
rankinteger1-based position.
domainstringRecord owner name.
typestringRecord type.
ttlinteger · nullableTTL seconds.
valuestringRecord data.
priorityinteger · nullableMX/SRV priority.
targetstring · nullableHost the record points to (MX, SRV, NS, CNAME, PTR).
dnssec_validatedboolean · nullableWhether the resolver validated the answer with DNSSEC.

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/dns_records/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/dns_records/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Example response

POST /v1/scraper/collectors/dns_records/run
$ curl $QD/dns_records/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{}'
{ "status": "done", "count": 10,
  "results": [
    {
      "domain": "…",
      "type": "…",
      "ttl": …,
      "value": "…" } ],
  "cost": 0.002 }
# 10 records × $0.0002 · nothing delivered, nothing charged

Try it

DNS records, running now

Change the input and run it against the live collector — nothing to install, no sign-up.

Run it from your own code, on your own inputs

Same collector, same rows — $2 of free API credit every month, no card.

Get my free API key
DNS lookup API: from domain, QuanticData reads the DNS answers and returns one row per record with domain, ttl and value, at $0.0002 per delivered record.
You send domain and types; the run reads the source and comes back as records with rank, domain and type — 8 fields on every row — and you are billed $0.0002 for each record actually delivered, nothing for a run that delivers none.
$0.0002 / record10,000 records on the free $2 every month
Semantic inputdomain, types, max_results — no URL lists
Up to 100records per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

Pricing

DNS lookup API pricing

$0.0002 per delivered record. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 10,000 records before you spend anything.

$0.0002per delivered record$0.2 per 1,000 delivered records
10,000 recordson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

What people build with the DNS lookup API

Three shapes of work this endpoint was designed around.

Email-provider firmographics

MX values across a company list split it by mail stack — Google Workspace here, Microsoft 365 there — one row per record, ready to group.

SaaS-stack detection

TXT rows expose SPF includes and verification tokens, which read as a list of the vendors a domain has onboarded.

Hosting inventories

A and AAAA rows map a set of domains to the addresses serving them, TTLs included, for an infrastructure table refreshed on every sweep.

DNS lookup API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
Answer formatdig output or zone text to parseOne row per record: owner, type, TTL, value
TransportUDP resolvers and whatever sits in the pathDNS over HTTPS to a public resolver
Multiple typesOne query per record type in a loopUp to nine types fanned out in a single call

What people search for

Live autocomplete demand around DNS records, pulled with our own Keyword ideas collector.

DNS lookup API: the POST to the dns_records collector, 100 records delivered and the bill, 100 × $0.0002 = $0.02 in usage.cost_usd; zero records would cost $0.
The same call you would paste into a terminal: a Bearer key, domain and types in the body, and back the envelope every QuanticData endpoint returns — type, message, payload — where count is how many records arrived and usage.cost_usd is $0.02, which is 100 × $0.0002. A run that delivers nothing costs nothing. The key is good for 60 req/min on the free tier.

Sources and standards

The platform documentation and standards this collector is built against — check any claim on this page against the primary source:

FAQ

Questions we get about the DNS lookup API.

Something else? Ask us

Which DNS record types can I query?

Thirteen: A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV, PTR, DS, DNSKEY and HTTPS. Leave types empty and the first five resolve by default, which covers hosting, mail and delegation in one pass.

How do I read MX and TXT records for company enrichment?

Set types to MX and TXT: the MX values name the mail provider and the TXT values carry SPF and verification tokens, so a plain domain column grows provider and vendor signals from one call per domain.

Which resolver answers the queries?

Google's public DNS-over-HTTPS endpoint. Answers arrive as consistent JSON wherever you run, each row keeping the TTL the resolver reported, with no UDP resolver or middlebox in the path to garble them.

Is there a free DNS lookup API?

Every account gets $2 of credit every month with no card, which is about 10,000 delivered records on this endpoint at $0.0002 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

How much does one run cost?

Multiply the rows you actually receive by $0.0002. A run capped at 100 records — the maximum for this collector — costs $0.02 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

Run the DNS lookup API now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Run in dashboard
Illustration: three coloured zones of the page that is read (DNS answers) turn into clean JSON with the fields domain, ttl and value; 8 fields on every row.