apyhub
Back

Check Domain Availability Across TLDs API

What it does

Domain Availability Checker looks up a domain name across one or more TLDs and returns RDAP-based availability signals for each check.

Send a name and, optionally, a tlds list. The response includes the queried name, an optional note, a checked_at timestamp, and a results array. Each result item contains the TLD label, full domain, status, expires, registrar, investor_score, and likely_available where available.

Use Domain Availability Checker when you need to screen candidate brand names, preflight registration flows, or compare multiple extensions before sending users to a registrar. The status values let you distinguish registered domains from RDAP misses, unknowns, and names that were not checked, so your app can make a clear decision without extra parsing.

It is a good fit for signup flows, internal naming tools, portfolio checks, and domain research dashboards that need a compact availability result rather than a full WHOIS dump.

GET
Domain availability across TLDs (RDAP)
https://api.eu.apyhub.com/freejosephe/check-domain-availability-across-tlds/v1/domain/availability

QUICKSTART

GUIDE

Quickstart

Check whether a domain name is available by passing the required name query parameter.

curl -X GET "https://api.eu.apyhub.com/freejosephe/check-domain-availability-across-tlds/v1/domain/availability?name=apyhub" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with name, note, results, and checked_at fields. results is an array of domain check objects; each item may include label, domain, status, expires, registrar, investor_score, and likely_available.

{
  "name": "apyhub",
  "checked_at": "2026-10-22T05:04:04.601Z",
  "results": [
    {
      "domain": "apyhub.com",
      "domain_unicode": null,
      "tld": "com",
      "status": "registered",
      "likely_available": false,
      "label": "Registered",
      "registrar": "Porkbun LLC",
      "expires": "2028-11-17T15:51:44Z",
      "lifecycle": "active",
      "dns_hint": null,
      "investor_score": 82
    },
    {
      "domain": "apyhub.net",
      "domain_unicode": null,
      "tld": "net",
      "status": "registered",
      "likely_available": false,
      "label": "Registered",
      "registrar": "Porkbun LLC",
      "expires": "2026-11-17T15:51:42Z",
      "lifecycle": "active",
      "dns_hint": null,
      "investor_score": 71
    },
    {
      "domain": "apyhub.org",
      "domain_unicode": null,
      "tld": "org",
      "status": "not_found_in_rdap",
      "likely_available": true,
      "label": "Not found in RDAP, likely available. Confirm at a registrar.",
      "registrar": null,
      "expires": null,
      "lifecycle": null,
      "dns_hint": null,
      "investor_score": 65
    },
    {
      "domain": "apyhub.io",
      "domain_unicode": null,
      "tld": "io",
      "status": "registered_dns_only",
      "likely_available": false,
      "label": "Registered (DNS delegation; TLD has no RDAP)",
      "registrar": null,
      "expires": null,
      "lifecycle": null,
      "dns_hint": "delegated",
      "investor_score": 63
    },
    {
      "domain": "apyhub.app",
      "domain_unicode": null,
      "tld": "app",
      "status": "unknown",
      "likely_available": null,
      "label": "Unknown (RDAP rate limited (429), retry later)",
      "registrar": null,
      "expires": null,
      "lifecycle": null,
      "dns_hint": "nxdomain",
      "investor_score": 61
    }
  ],
  "note": "\"Not found in RDAP\" means the registry has no record. Reserved or premium names can still be unavailable at registrars."
}
TRY ITLIVE · 80 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Checks domain availability across one or more TLDs using RDAP and returns a JSON object with the queried name, an optional note, a results array, and a checked_at timestamp.

Query Parameter(s)

AttributeTypeMandatoryDescription
nameStringYesDomain name label to check. Max length: 63 characters.
tldsStringNoTLD list to check. Max length: 200 characters.

Response

Returns a JSON object with name and note string fields, a results array of objects, and a checked_at date-time string. Each item in results describes one TLD check with the domain label, domain, status, expiration info, registrar info, investor score, and a likely-available flag.

ParameterTypeDescription
nameStringDomain name that was checked.
noteStringAdditional information about the response, if provided.
resultsObject ArrayArray of result objects for each checked TLD.
results[].labelStringLabel for the checked TLD result.
results[].domainStringFull domain that was checked.
results[].domain_unicodeStringUnicode (IDN) form of the domain when the name contains non-ASCII characters, or null.
results[].tldStringThe TLD this result row is for.
results[].statusENUMAvailability/status value. Allowed values: registered, registered_dns_only, not_found_in_rdap, unknown, not_checked.
results[].expiresStringExpiration value, or null.
results[].registrarStringRegistrar value, or null.
results[].lifecycleStringDomain lifecycle state (e.g. active), or null.
results[].dns_hintStringDNS-based hint used when RDAP data isn't available for the TLD, or null.
results[].investor_scoreIntegerInvestor score returned for the result.
results[].likely_availableBooleanAvailability hint, or null.
checked_atStringTimestamp for when the check was performed, in date-time format.
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.