← All APIs Network

Domain Availability Checker API

Look up whether domain names are registered using official RDAP registry data.

Give this API up to 10 domain names and it will tell you whether each one has a registration record on file with the official registry. It uses RDAP — the modern, structured replacement for WHOIS — so there is no messy free-text parsing. Each domain comes back labeled 'registered', 'unregistered', or 'indeterminate' (when the registry does not support RDAP for that ending). Important: 'unregistered' means no record was found, which usually means the name is available — but reserved or premium names can also return no record. This API tells you registration status only; it does not tell you price, premium status, or whether a registrar will actually let you buy the name.

POSThttps://domain-availability-checker.underscoredone.com/check
Pricing

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

How to call

POST up to 10 plain registrable domain names (like 'example.com', not 'https://example.com' or 'sub.example.com') in the 'domains' array. Each result has a 'registered' field: true means a record exists, false means none was found, null means the result could not be determined. A false result does NOT guarantee the domain is purchasable — reserved and premium names can also return false. The 'tld_supported' field tells you whether RDAP coverage exists for that domain ending; if false, treat the result as inconclusive. Process results one at a time — the API paces lookups to avoid rate limits, so a 10-domain batch may take up to 5 seconds. Never interpret 'unregistered' as a purchase guarantee; always show the disclaimer to end users.

Input parameters
NameTypeRequiredDescription
domainsarrayyesBetween 1 and 10 domain names to check, like 'example.com'. Use the plain domain only — no 'https://', no 'www.', no subdomains.
Example requests
Typical input
{
  "domains": [
    "example.com",
    "mybrand.ai",
    "coolstartup.io"
  ]
}
Zero or empty input
{
  "domains": []
}
Invalid input (400 error)
{
  "domains": [
    "https://example.com",
    "sub.example.com",
    "notadomain"
  ]
}
Large input
{
  "domains": [
    "alpha.com",
    "bravo.net",
    "charlie.org",
    "delta.io",
    "echo.ai",
    "foxtrot.co",
    "golf.app",
    "hotel.dev",
    "india.xyz",
    "juliet.tech"
  ]
}
Example response
{
  "count": 2,
  "results": [
    {
      "domain": "example.com",
      "registered": true,
      "status": "registered",
      "rdap_source": "registry",
      "tld_supported": true,
      "note": "A registration record exists for this domain."
    },
    {
      "domain": "thisnameprobablyhasnorecord12345.ai",
      "registered": false,
      "status": "unregistered",
      "rdap_source": "registry",
      "tld_supported": true,
      "note": "No registration record found. Usually means unregistered, but reserved or premium names can also return this result."
    }
  ],
  "queried_at": "2026-06-26T09:00:00Z",
  "disclaimer": "Status reflects whether a registration record exists. It does not confirm price, premium status, or that an 'unregistered' name is purchasable at standard cost.",
  "api_version": "1.0.0"
}
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