Bulk Domain Availability Checker
Pricing
from $1.00 / 1,000 domain checkeds
Bulk Domain Availability Checker
Check domain names you may want to register. DNS first, then a throttled RDAP lookup only for names that do not resolve. No registrant data.
Pricing
from $1.00 / 1,000 domain checkeds
Rating
0.0
(0)
Developer
Olalekan Johnson
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Check whether domain names are already registered, for people comparing names they might register.
Paste a list of domains, or give keywords and TLDs and the Actor builds the combinations. A name that has DNS NS or SOA records is reported as registered. Names that do not resolve are sent, one at a time, to the TLD registry's RDAP server (found through the IANA bootstrap file) to tell available from registered. Each row is domain, status, method, and checked_at.
This Actor is unofficial and is not affiliated with Verisign, IANA, ICANN, Cloudflare, or Google.
It is for registration intent: short lists of names you are considering. It is not a WHOIS harvester. Registrant, contact, and nameserver data is never stored or returned. Verisign's RDAP terms forbid high-volume automated queries except as reasonably necessary to register domain names or modify existing registrations (Verisign RDAP terms). The Actor keeps RDAP traffic inside that limit: DNS first, at most 40 registry lookups per run, and at least one second between them.
Available means the registry RDAP server returned no registration record. It does not mean a registrar will sell the name, or sell it at the standard price. Premium, reserved, and restricted names can still be unavailable at retail.
Input
| Field | Default | What it does |
|---|---|---|
| Domain names | google.com, wikipedia.org, example.com, qx7vk2m9-unlikely-register-2026.com | Names to check. URLs are reduced to the host. |
| Keywords | empty | Name ideas. Combined with every TLD. |
| TLDs | empty | com, .net, co.uk. Required together with keywords. |
| Maximum domains per run | 25 | Hard ceiling 100. Extra names are ignored. |
| Maximum RDAP lookups per run | 20 | Hard ceiling 40. Further unresolved names come back as unknown. |
| Delay between RDAP requests | 1.5 seconds | Minimum 1 second. DNS is not delayed. |
The default list is small on purpose so a run finishes in well under a minute. google.com is registered. qx7vk2m9-unlikely-register-2026.com is a long label that is very unlikely to be registered, so the run exercises one RDAP confirmation.
Keywords are a single label. Bright Kettle with com and net becomes bright-kettle.com and bright-kettle.net. Put a finished name such as example.co.uk in the domain list.
Output
[{"domain": "google.com","status": "registered","method": "dns","checked_at": "2026-10-23T03:00:00+00:00"},{"domain": "qx7vk2m9-unlikely-register-2026.com","status": "available","method": "rdap","checked_at": "2026-10-23T03:00:02+00:00"}]
| Field | Meaning |
|---|---|
domain | Name that was checked, in ASCII. |
status | available, registered, or unknown. |
method | dns, rdap, or none. |
checked_at | UTC time of the conclusion, ISO 8601. |
detail | Only when status is unknown. A cap, a TLD with no RDAP server, or a failed lookup. No personal data. |
method: dns means the name has NS or SOA records at a public resolver, so it was not sent to RDAP. A registered name with no delegation does not resolve; that name is confirmed with RDAP instead.
Pricing
Pay per event. One event, charged once per domain that is written to the dataset.
| Event | Price | When it is charged |
|---|---|---|
apify-actor-start | $0.005 | Once per run, by the platform (memory is capped at 512 MB, so once). The Actor does not call Actor.charge for it. |
domain-checked | $0.001 | One domain name checked and stored |
There is no separate charge for DNS queries or RDAP lookups, and no per-dataset-item event. A run of the four default names costs $0.005 + 4 × $0.001 = $0.009. Platform compute is not billed to you.
Set the run's maximum charge high enough for the number of names you want. The Actor stops cleanly when that limit is reached and keeps the rows already stored.
The Actor runs with limited permissions. It only reads its own input and writes its default dataset.
Limits
- 100 domain names per run, 40 RDAP lookups per run, at least 1 second between RDAP requests.
- One registry query at a time. Temporary RDAP failures are retried with backoff.
- TLDs with no server in the IANA RDAP bootstrap come back as
unknown. - A name can be registered and still have no DNS. Those are the names RDAP is for.
- A name with NS or SOA records is reported registered without asking the registry. That matches almost every delegated domain. It is not a receipt from the registry.
- Availability can change between this check and an attempt to register the name.
- RDAP does not tell you the registrar's price.
Sources and terms
- DNS answers come from Cloudflare's and Google's public resolvers over DNS-over-HTTPS. The Actor stores the conclusion (delegated or not), not the record contents.
- RDAP base URLs come from the IANA bootstrap registry for the domain name space, published so clients can find the authoritative RDAP server (RFC 9224).
- The registration answer comes from the TLD registry that IANA lists. For
.comand.netthat server is operated by Verisign. Use of those responses is subject to the registry's RDAP terms. Verisign's terms are quoted in intent above; read them before you rely on the data: https://www.verisign.com/legal-center/rdap-terms/. - Nothing in this Actor is a copy of a registrar's database. No registrant record is redistributed.
Run locally
Python 3.12.
python -m venv .venvsource .venv/bin/activatepip install -r requirements-dev.txtpytestpython -m src
With no input file, the Actor checks the four default domains. To pass the same input the Store test uses, write it to the local key-value store before starting:
$mkdir -p storage/key_value_stores/default
Then save this as storage/key_value_stores/default/INPUT.json:
{"domains": ["google.com","wikipedia.org","example.com","qx7vk2m9-unlikely-register-2026.com"]}
Results land in storage/datasets/default/.
On Apify, configure pay-per-event pricing with domain-checked as the only event, at $0.001, and leave the Actor on limited permissions. Do not add apify-default-dataset-item, or a domain would be billed twice. The source is ready for apify push.