Domain & App-Name Availability
Domain & App-Name Availability
/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. |
/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). |
/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. |
/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). |
/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). |
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"}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.
Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.
Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.
No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.
Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.