docs / domain-availability
Domain & App-Name Availability API
Domain & App-Name Availability API
base /domain-availability/v15 endpoints
post
/domain-availability/v1/check1 creditIs one domain available? Combined RDAP and DNS verdict with confidence + Domainr-style status tokens + a register_url when free. Accepts domain OR name+tld.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| domain | required | — | A full domain to check (e.g. myapp.com, my-startup.io). A bare host, a full URL, or a leading www. are all accepted and normalized. |
| name | optional | — | A bare app/brand name label (e.g. 'myapp', 'My Startup' → 'my-startup'). Spaces/underscores become hyphens; the TLD is added separately via 'tlds'. |
| tld | optional | — | TLD to combine with 'name' if no full 'domain' is given. |
| signal = both | optional | both · rdap · dns | Which availability signal(s) to use. 'both' (default) is the most accurate: RDAP for registrar-grade facts + DNS to disambiguate TLDs that have no RDAP server (io/co/me). |
| whois = false | optional | — | If true and the domain is registered, also attach the full WHOIS/RDAP record (registrar, dates, nameservers, status) inline. |
| include_pii = false | optional | — | If true, return the full RDAP registrant contact. Default false → personal data dropped (GDPR), organization kept. |
post
/domain-availability/v1/bulk_check1 creditOne NAME across many TLDs → availability map (which of name.com/.io/.ai/… are free).
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| name | required | — | A bare app/brand name label (e.g. 'myapp', 'My Startup' → 'my-startup'). Spaces/underscores become hyphens; the TLD is added separately via 'tlds'. |
| tlds | optional | com · net · org · io · co · app · dev · ai · me · xyz · tech · io | TLDs to check (comma-separated string or array, with or without a dot). Defaults to com,net,org,io,co,app,dev,ai,me,xyz. Any valid TLD label is accepted (not just the suggested list); capped at 60. |
| signal = both | optional | both · rdap · dns | Which availability signal(s) to use. 'both' (default) is the most accurate: RDAP for registrar-grade facts + DNS to disambiguate TLDs that have no RDAP server (io/co/me). |
post
/domain-availability/v1/rdap1 creditFull WHOIS via RDAP for a registered domain (registrar, created/expires, status, nameservers, dnssec, abuse). A 404 is returned cleanly (available on RDAP-served TLDs; null + a pointer to 'check' on TLDs with no RDAP server), not an error.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| domain | required | — | A full domain to check (e.g. myapp.com, my-startup.io). A bare host, a full URL, or a leading www. are all accepted and normalized. |
| raw = false | optional | — | If true, also attach the raw upstream RDAP JSON under whois.raw_rdap. |
| include_pii = false | optional | — | If true, return the full RDAP registrant contact. Default false → personal data dropped (GDPR), organization kept. |
post
/domain-availability/v1/suggest1 creditName variations (prefix/suffix/TLD permutations, deterministic — no LLM) each with a live availability verdict; available ones surfaced first.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| name | required | — | A bare app/brand name label (e.g. 'myapp', 'My Startup' → 'my-startup'). Spaces/underscores become hyphens; the TLD is added separately via 'tlds'. |
| tlds | optional | com · net · org · io · co · app · dev · ai · me · xyz · tech · io | TLDs to check (comma-separated string or array, with or without a dot). Defaults to com,io,ai,app,dev,co. Any valid TLD label is accepted (not just the suggested list); capped at 60. |
| signal = both | optional | both · rdap · dns | Which availability signal(s) to use. 'both' (default) is the most accurate: RDAP for registrar-grade facts + DNS to disambiguate TLDs that have no RDAP server (io/co/me). |
post
/domain-availability/v1/batch1 creditMany DIFFERENT full domains in one call → availability for each (bulk check).
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| domains | required | — | A list of FULL domains to check at once (comma-separated string or array). Capped at 100 per call; invalid entries are reported under 'invalid'. |
| signal = both | optional | both · rdap · dns | Which availability signal(s) to use. 'both' (default) is the most accurate: RDAP for registrar-grade facts + DNS to disambiguate TLDs that have no RDAP server (io/co/me). |
Example request · check
curl -X POST https://api.reefapi.com/domain-availability/v1/check \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"domain":"google.com"}'Response shape
{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}