← All APIs Network

DNS & WHOIS Lookup API

Get all DNS records and WHOIS data for up to 10 domains at once

Send up to 10 domain names and get back every DNS record type (A, AAAA, MX, CNAME, TXT, NS, PTR, SOA, SRV, CAA, NAPTR, DS, TLSA) plus the full WHOIS registration profile (registrar, dates, contacts, status, nameservers) for each one. URLs are accepted and automatically stripped down to the bare domain. Duplicate domains are quietly removed before processing. Results come back as one flat row per domain, ready to drop into a spreadsheet, database, or pipeline.

POSThttps://dns-whois-lookup.underscoredone.com/lookup
Pricing

$0.01 per request — pay via x402/USDC. No account needed.

How to call

POST an array of domain names (or full URLs) under the key 'domains'. You may send between 1 and 10 entries. The response is an array of objects, one per unique domain, each containing fields prefixed with 'dns_' (all 13 record types) and 'whois_' (full registration data). All fields are always present; empty string means no record found or data not available. Multiple values within a single record type are joined with ' | '. MX records are prefixed with their priority number. SOA is returned as a single human-readable string. DS and TLSA are attempted but silently left empty if unsupported. Raise a 400 error back to the caller if the API returns a 400. Never pass more than 10 domains in one call; split larger lists into batches.

Input parameters
NameTypeRequiredDescription
domainsarrayyesA list of domain names or full web addresses to look up. You can pass bare domains like 'example.com', or full addresses like 'https://www.example.com/page' — the system will automatically extract just the domain. Send between 1 and 10 entries per request.
Example requests
Typical input
{
  "domains": [
    "onescales.com",
    "hillms.com",
    "underscore.com"
  ]
}
Zero or empty input
{
  "domains": []
}
Invalid input (400 error)
{
  "domains": [
    "not_a_domain",
    "!!!bad###"
  ]
}
Large input
{
  "domains": [
    "example.com",
    "google.com",
    "cloudflare.com",
    "github.com",
    "stripe.com",
    "openai.com",
    "fastapi.tiangolo.com",
    "python.org",
    "pypi.org",
    "docs.python.org"
  ]
}
Example response
{
  "api_version": "1.0.0",
  "results": [
    {
      "domain": "onescales.com",
      "checkedAt": "2026-06-15T01:45:08.607Z",
      "dns_a": "23.227.38.65",
      "dns_aaaa": "",
      "dns_mx": "1 aspmx.l.google.com | 5 alt1.aspmx.l.google.com | 5 alt2.aspmx.l.google.com | 10 alt3.aspmx.l.google.com | 10 alt4.aspmx.l.google.com",
      "dns_cname": "",
      "dns_txt": "openai-domain-verification=dv-Y9cDXv64Bj8Z6h43mpki1rgt | v=spf1 include:_spf.google.com ~all",
      "dns_ns": "bonnie.ns.cloudflare.com | carter.ns.cloudflare.com",
      "dns_ptr": "",
      "dns_soa": "mname=bonnie.ns.cloudflare.com rname=dns.cloudflare.com serial=2406862386 refresh=10000 retry=2400 expire=604800 minttl=1800",
      "dns_srv": "",
      "dns_caa": "",
      "dns_naptr": "",
      "dns_ds": "",
      "dns_tlsa": "",
      "whois_registrar": "Cloudflare, Inc.",
      "whois_iana_id": "1910",
      "whois_registrar_url": "http://www.cloudflare.com",
      "whois_registrar_abuse_email": "[email protected]",
      "whois_registrar_abuse_phone": "+1.6503198930",
      "whois_created": "2022-10-11T10:20:28Z",
      "whois_expires": "2028-10-11T10:20:28Z",
      "whois_updated": "2023-02-13T02:38:06Z",
      "whois_status": "clientTransferProhibited",
      "whois_nameservers": "bonnie.ns.cloudflare.com | carter.ns.cloudflare.com",
      "whois_registrant_name": "",
      "whois_registrant_org": "",
      "whois_registrant_address": "",
      "whois_registrant_country": "",
      "whois_registrant_phone": "",
      "whois_admin_name": "",
      "whois_admin_org": "",
      "whois_admin_email": "",
      "whois_admin_country": ""
    }
  ]
}
Error responses
StatusMeaning
400Bad request — your input failed validation or could not be processed. Check the detail field for specifics.
402Payment required. Send a signed USDC payment on Base Mainnet using the x402 protocol.
422Unprocessable — a required field is missing or the wrong type. Check the detail field for specifics.
Links