Domain Expiry Checker - RDAP Registrar & Status
Pricing
from $4.00 / 1,000 domains
Domain Expiry Checker - RDAP Registrar & Status
Check domain registration data through RDAP across 1,200 TLDs: expiry date and countdown, registrar, status codes, transfer lock, DNSSEC and the DNS provider read from the nameservers. Monitor a domain portfolio or find expiring domains. A WHOIS replacement.
Pricing
from $4.00 / 1,000 domains
Rating
0.0
(0)
Developer
Tom Awake
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
20 hours ago
Last modified
Categories
Share
What does Domain Expiry Checker do?
For a list of domains: when each one expires, who the registrar is, whether it is locked against transfer, whether it is DNSSEC-signed, and who hosts its DNS.
Whois is effectively dead — closed, redacted, and free-form text. RDAP replaced it (RFC 7483) and returns JSON. But there is no single RDAP server: there is one per registry, and you have to know which one to ask for which domain.
No API key. No account.
The three things this does that the source does not
1. It routes to the right registry.
IANA publishes a TLD → RDAP server table covering 1,200 TLDs. This Actor loads it and talks to each registry directly.
The obvious alternative is the public rdap.org proxy, and it is a trap:
| Approach | Resolved | Rate limited |
|---|---|---|
rdap.org proxy | 7 of 23 | 16 (HTTP 429) |
| Direct to registries | 16 of 22 in 10 seconds | 0 |
The proxy starts refusing after about ten lookups. Routing yourself removes the bottleneck entirely, which is what makes a 500-domain portfolio practical.
2. Days until expiry, not a date.
The question is never "what is the expiry date". It is "how long have I got" — and a brand domain that lapses is a brand someone else can take. In a sample of well-known domains, one was 49 days from expiry.
3. Locks read, not quoted.
client transfer prohibited means the domain is protected against an
unauthorised transfer. Its absence is an exposure. This Actor turns the
EPP status strings into booleans you can filter and sort on:
transferLocked, deleteLocked, updateLocked, pendingDelete,
clientHold.
And it reads the DNS provider out of the nameservers —
ns-1435.awsdns-51.org means AWS Route 53. Detected on 91.3% of resolved
domains: Route 53, Cloudflare, Azure DNS, Google, Akamai, UltraDNS,
Vercel, Alibaba Cloud and others.
Field coverage
Measured on a 28-domain international sample, 23 resolved.
| Field | Coverage |
|---|---|
createdAt, expiresAt, lastChangedAt | 100% |
daysUntilExpiry, domainAgeYears | 100% |
status, nameservers | 100% |
registrar | 95.7% |
registrarIanaId | 91.3% |
dnsProvider | 91.3% |
Two findings from the same sample, both worth knowing: 91.3% carried a transfer lock — but only 4.3% had DNSSEC enabled. Median domain age was 21.5 years.
What it is for
- Portfolio renewal. Sort by
daysUntilExpiry. A lapsed brand domain is the cheapest disaster there is. - Acquisition due diligence. Domain age, registrar, and whether the target actually locked its own names.
- Security review.
transferLockedanddnssecEnabledacross every domain you own, in one table. - Infrastructure mapping.
dnsProvideracross a set of companies shows who runs their DNS — and who a competitor just migrated to, becauselastChangedAtmoves when nameservers do. - Brand protection. Check lookalike domains for registration date and registrar.
Pairs directly with Subdomain Finder & Certificate Inventory: that one maps the hosts under a domain, this one covers the domain registration itself.
Three dataset views ship with the Actor: Portfolio, Exposure and Infrastructure.
Limits
Stated plainly, because they affect what you can conclude.
- Some country TLDs have no RDAP service at all.
.de,.jp,.cn,.ruand.soamong them — they still run whois only. Those domains come back withresolved: falseand a note naming the reason, and are not charged. This matters: a silently missing row looks exactly like an available domain, and it is not one. - Registrant contact details are gone. GDPR removed them from public RDAP almost everywhere. What survives is what this Actor returns: dates, registrar, status, nameservers. Do not expect an owner name.
- Some registries publish less than others.
registro.brreturns no registrar at all, because Brazilian domains are registered directly. The field is left empty rather than guessed. - Query the registrable domain.
www.example.comis normalised toexample.com; a deeper subdomain has no registration record of its own and will not resolve. - Expiry is the registry's date, not your renewal date. Auto-renew settings live with the registrar and are not published here.
- One request per domain. 500 domains is the per-run cap, paced to stay within what registries tolerate.
How much does it cost?
You pay per domain returned: $0.006 each, that is $6.00 per 1,000. There is no start fee, and subscription plans pay less per domain.
If a run reaches the spending limit you set, the output stops at that limit and never goes past it. You are never charged for rows that were not delivered.
Use Domain Expiry Checker as an API
Call it from your own code with the Apify client, here in Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("DataIO/rdap-domain-expiry-monitor").call(run_input={'domains': ['stripe.com', 'shopify.com', 'canva.com'],'includeUnresolved': True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
It also works from JavaScript, Make, Zapier, n8n, and from AI agents through the Apify MCP server.
Other actors you might like
- npm Downloads Scraper: Package Trends & Growth
- WordPress Plugin Scraper: Installs & Ratings
- crt.sh Subdomain Finder: Certificate Search
FAQ
Is it legal to use this data?
The actor reads public data from its official source, without logging in and without bypassing any access control. What you do with the data, for example contacting people listed in it, is your responsibility under the laws that apply to you, such as GDPR in Europe.
Can I run it on a schedule?
Yes. Create a schedule in Apify Console, daily or weekly for example, and each run delivers a fresh dataset, which you can send by email, webhook or integration.
Can AI agents use it?
Yes. It is available through the Apify MCP server, and every input field is described in its input schema, so an agent can call it directly.
Source
RDAP servers operated by the domain registries, discovered through the IANA bootstrap registry. Public, no authentication. This Actor is not affiliated with IANA or with any registry.