Bulk Domain Availability Checker: WHOIS, RDAP & Expiry
Pricing
$1.00 / 1,000 domain checkeds
Bulk Domain Availability Checker: WHOIS, RDAP & Expiry
Check if domain names are available or taken, in bulk, from official registry RDAP (the modern WHOIS): registrar, creation and expiry dates, nameservers and status codes. Try names across TLDs. No personal data. $1 per 1,000 domains.
Pricing
$1.00 / 1,000 domain checkeds
Rating
0.0
(0)
Developer
Hill Country Bots
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Features
Share
Check whether domain names are available or taken, in bulk. The answers come straight from the official registry RDAP servers listed by IANA. RDAP is the modern replacement for WHOIS. For every registered domain you also get the registrar, the creation and expiry dates, the nameservers and the status codes. No personal data is collected. $1.00 per 1,000 checked domains. Invalid inputs and errors are free.
What does this domain availability checker do?
- Bulk domain check: paste a list of full domains (
example.com), or try base names across TLDs (brightbakery×com, net, io, dev). - Picks the right registry server for each TLD from the IANA RDAP bootstrap file, which covers about 590 TLDs, including .com, .net, .org, .dev, .app, .ai, .xyz and .info.
- Gives every domain a clear
status:available: the registry has no record of the nameregistered: the name is takenlikely_available: the TLD has no public RDAP (.io, .co, .de, .us) and DNS says the name doesn't exist. Confirm at a registrar.unsupported_tld,invalidorerror: no answer. These rows are free.
- For taken domains, a WHOIS-style record without contacts:
registrar,registrarIanaId,createdAt,expiresAt,updatedAt,nameservers,statusCodesanddnssec.
Who is it for?
- Founders, brand and naming teams: shortlist names and see which TLDs are free in one run
- Domain investors and agencies: check expiry dates, registrars and status locks across a whole portfolio
- AI agents and automations: a fast "is this domain free?" tool through the API or MCP, with a fixed price per result
Quick start
- Enter domains, or names plus TLDs. The form comes prefilled, so Start works right away.
- Leave DNS fallback on to get answers for TLDs without public RDAP (for example
.io). - Click Start, then download JSON, CSV or Excel, or read the results through the API.
In our tests a lookup took about 0.3 s on average, and 30 domains finished in under 5 s.
Sample output
This table is from a real run on November 10, 2026, at 9:34 PM CT (America/Chicago). You pay about $1 per 1,000 domains that come back available, likely available, or registered. Invalid inputs and errors are free.

| Domain | Status | Registrar | Created | Expires |
|---|---|---|---|---|
| google.com | registered | MarkMonitor Inc. | Sep 15, 1997 | Sep 14, 2028 |
| wikipedia.org | registered | MarkMonitor Inc. | Jan 13, 2001 | Jan 13, 2027 |
| hillcountrybots-example-name.com | available | n/a | n/a | n/a |
Created and expiry dates are the registry's UTC timestamps, shown as calendar days. If a name cannot be checked, the run writes a row with status invalid or error and a plain-English note instead of finishing as a silent success with empty data. Those rows are not charged.
Example inputs
Bulk domain availability check for a list of full domain names:
{"domains": ["google.com", "wikipedia.org", "hillcountrybots-example-name.com"]}
Try one brand name across popular TLDs (including .io, which falls back to DNS):
{"names": ["brightbakery-atx"],"tlds": ["com", "net", "org", "io", "dev", "app"]}
Bulk expiry and registrar lookup for registered domains (WHOIS-style RDAP, no personal data):
{"domains": ["google.com", "wikipedia.org", "github.com"]}
List plus name-across-TLDs in one run:
{"domains": ["google.com", "wikipedia.org"],"names": ["brightbakery-atx"],"tlds": ["com", "net", "org", "io", "dev", "app"]}
Ready-to-run example tasks (pre-filled inputs on this Actor's Store page):
Input
| Field | Default | What it does |
|---|---|---|
domains | [] | Full domains. URLs and www. are cleaned automatically. |
names | [] | Base names to combine with tlds. |
tlds | [] | e.g. ["com","net","org","io"] |
dnsFallback | true | Uses DNS for TLDs that have no public RDAP. |
maxConcurrency | 4 | Parallel checks. Each registry server still gets one request at a time. |
minDelayPerServerMs | 300 | Gap between requests to the same registry, for politeness. |
maxResults | 1000 | Most domains per run. Spend is capped at maxResults × $0.001. |
requestTimeoutSecs | 20 | Per-request timeout. Each domain gets up to 4 attempts with backoff. |
Output example
These are real rows from a test run on Nov 10, 2026. A registered domain:
{"domain": "google.com","tld": "com","registrar": "MarkMonitor Inc.","registrarIanaId": "292","createdAt": "1997-09-15T04:00:00Z","expiresAt": "2028-09-14T04:00:00Z","updatedAt": "2019-09-09T15:39:04Z","nameservers": ["ns1.google.com","ns2.google.com","ns3.google.com","ns4.google.com"],"statusCodes": ["client delete prohibited","client transfer prohibited","client update prohibited","server delete prohibited","server transfer prohibited","server update prohibited"],"dnssec": false,"status": "registered","method": "rdap","rdapServer": "rdap.verisign.com","durationMs": 175,"checkedAt": "2026-11-10T20:32:34.449Z"}
An available domain:
{"domain": "hcb-zq7-unlikely-48213.com", "tld": "com", "nameservers": [], "statusCodes": [], "status": "available", "method": "rdap", "rdapServer": "rdap.verisign.com", "note": "Not found in the registry RDAP. Premium or reserved names may still be unregistrable or cost more.", "durationMs": 467, "checkedAt": "2026-11-10T20:32:35.808Z"}
A TLD without RDAP, answered from DNS:
{"domain": "hcb-zq7-unlikely-48213.io", "tld": "io", "nameservers": [], "statusCodes": [], "status": "likely_available", "method": "dns", "note": "TLD has no public RDAP. DNS says the name does not exist (NXDOMAIN), so it is probably unregistered. Confirm at a registrar.", "durationMs": 12, "checkedAt": "2026-11-10T20:32:36.109Z"}
The key-value store also gets a RUN_SUMMARY record with totals for available, registered, errors and HTTP 429 responses.
Output fields (for AI agents and integrations)
status:available(no registry record),registered(taken),likely_available(no public RDAP; DNS says the name does not exist),unsupported_tld,invalid, orerror. The first three are charged; the last three are free.method:rdap(official registry),dns(TLDs without RDAP), ornone.rdapServer: registry RDAP host that answered, whenmethodisrdap.registrar/registrarIanaId: the sponsoring registrar (a company), never the registrant.createdAt/expiresAt/updatedAt: ISO 8601 UTC dates from the registry, when reported.nameservers: nameserver hostnames, lower-case.statusCodes: EPP/RDAP status values (for exampleclient transfer prohibited).dnssec: true if the domain is DNSSEC-signed, when the registry reports it.errorCode:TIMEOUT,NETWORK_ERROR,HTTP_<code>, orRETRIES_EXHAUSTEDwhen there is no answer. Null otherwise.note: a plain-English explanation for DNS-based or unusual answers.durationMs/checkedAt: time spent on this domain, and when the check finished.
Use it from the API, MCP or an AI agent
- Actor ID:
hillcountrybots/domain-availability-checker - One API call returns the rows:
curl -X POST "https://api.apify.com/v2/acts/hillcountrybots~domain-availability-checker/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"names":["brightbakery-atx"],"tlds":["com","io","dev"]}'
- MCP (Claude, Cursor, ChatGPT and other MCP clients): add
https://mcp.apify.com?tools=hillcountrybots/domain-availability-checker. - For agents: branch on
status. Eachavailable,likely_availableorregisteredrow costs $0.001. Every other row is free.
How much does it cost?
$1.00 per 1,000 checked domains, which is $0.001 per domain-checked event. You pay nothing for:
- invalid input
- unsupported TLDs
- registry errors
- the run summary
The Actor's compute is included, so there's no separate platform usage charge. For example, 50 names × 20 TLDs is 1,000 domains, or $1.00. To cap spend, use maxResults or the run's maximum charge setting.
Limits
- "Available" means the registry has no record of the name. Premium, reserved or blocked names can still cost more or be unregistrable. Always confirm at checkout.
- TLDs without public RDAP (.io, .co, .de, .us and some other ccTLDs) are answered from DNS only. That is why those rows say
likely_available. - This tool doesn't register domains, show prices, or return registrant contacts.
FAQ
Is RDAP the same as WHOIS? RDAP is the IETF-standard successor to WHOIS, and ICANN requires it from gTLD registries. It returns the same registration facts as structured JSON.
Does it return the owner's name, email or phone? No. Only registry and registrar facts are returned, and a unit test enforces that.
Can I check domain expiration dates in bulk? Yes. expiresAt is filled in for every registered domain the registry reports.
Will registries block me? It sends one request at a time per registry with a gap in between, and it backs off on HTTP 429 (respecting Retry-After). Our test runs saw zero 429s.
More tools from Hill Country Bots
- Bulk PageSpeed Insights Test: Lighthouse scores and Core Web Vitals for many URLs. $3 per 1,000 audits, failures free.
- Sitemap URL Extractor: Every URL from a site's XML sitemaps (robots.txt, indexes, gzip). $0.50 per 1,000 URLs, failures free.
- Tech Stack Detector: CMS, ecommerce, analytics, CDN and frameworks for many websites. $0.50 per 1,000 sites, failures free.
- SEO Audit Tool: 0-100 SEO score per page, top 5 fixes and a client-ready HTML report. $2 per 1,000 pages, failures free.
Support
Found a wrong answer or need a TLD added? Open an issue on this Actor's Issues tab with the run ID and the domain. We reply within 2 business days (US Central time). Built and maintained by Hill Country Bots.