Domain Registration Lookup — Registrar, Age & Expiry
Pricing
Pay per usage
Domain Registration Lookup — Registrar, Age & Expiry
Look up any domain's registration record: registrar, creation date, expiry, last change, status flags and nameservers. RDAP — the modern keyless replacement for WHOIS — across every TLD.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
alaudin burki
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Look up any domain's registration record: registrar, creation date, expiry, last change, status flags and nameservers — over RDAP, the standardised, keyless replacement for WHOIS.
Why RDAP and not WHOIS
WHOIS is plain text with no schema: every registry formats its answer differently, and many now
rate-limit or block it outright. RDAP is JSON over HTTPS, with one bootstrap (rdap.org) that redirects
to whichever registry owns the TLD — so one Actor covers .com, .co.uk, .io and the rest, the
same "one platform, many sources" leverage the catalogue is built on.
Real output:
apify.com Amazon Registrar, Inc. created 2009-06-02 expires 2035-06-02 6,348 days oldgoogle.com MarkMonitor Inc. created 1997-09-15 expires 2028-09-14 10,626 days oldbbc.co.uk British Broadcasting Corp created 1994-12-13 expires 2034-12-13 11,633 days old
The distinction this Actor refuses to blur
"No record" is not "available".
RDAP answers 404 both for a domain nobody has registered and for a TLD whose registry publishes no
RDAP at all. Reporting that as available would be a confident wrong answer, so:
registeredisnull, notfalserecordFoundis falsenotesays plainly which two things it could mean
If you need "is this name free", that requires a registrar check, not this record.
Derived columns that make it useful
ageDays | Domain age is a standard trust signal — a week-old domain selling something is a different proposition from a decade-old one |
daysUntilExpiry | Positive for a future date; negative means lapsed |
isExpiringSoon | Expiry within 60 days — the usual registrar warning window, and the filter for a renewal watch |
Two traps in the data
The registrar hides in a vCard. entities[].vcardArray[1] is a list of property tuples and the name
is the one whose first element is fn — the list starts with version, so reading a fixed index returns
"4.0". A unit test asserts the registrar is the name and not the version string.
Expiry counts in the other direction to age. Age is now − created; expiry is expires − now. Using
one helper for both made a 2035 expiry read as 3,148 days overdue and flag it as expiring soon, which
the live check caught on the first run.
Limits
- Only what the registry publishes. Some TLDs hide registrant details behind GDPR redaction; RDAP simply omits them, and this Actor does not invent them.
- A TLD with no RDAP service returns no record, as described above.
- Registration data changes; every row carries
scrapedAtand the registry endpoint it came from.
Verified
27 unit tests on the reader — the vCard trap, both date directions, the no-record caveat, and input
normalisation — plus 31 live checks across .com and .co.uk, including a random non-existent
domain asserted to return registered: null rather than false.
One row per domain, flat, ready for a renewal watch or a due-diligence pass. Built as part of the ExtractorHub catalogue of production data extractors.
Fields
| Field | Type | What it holds |
|---|---|---|
id | string | The domain, used as the row identity. |
domain | string | The domain as the registry writes it, lower-cased. |
registered | boolean | True when a registration record exists. Null — not false — when RDAP had no record, because that also happens for a TLD whose registry publishes no RDAP. |
recordFound | boolean | Whether RDAP returned anything at all. |
registrar | string | The registrar of record, read from the registrar entity's vCard. |
registeredAt | string | Creation date from the registry. |
expiresAt | string | Expiry date from the registry. |
lastChangedAt | string | Last time the registration record changed — a transfer or status change moves this, not the creation date. |
ageDays | number | Days since registration. Domain age is a standard trust signal: a week-old domain selling something is a different proposition from a decade-old one. |
daysUntilExpiry | number | Days remaining before expiry, positive for a future date. Negative means it has lapsed. |
isExpiringSoon | boolean | True when expiry is within 60 days — the usual registrar warning window, and the filter to schedule against. |
statuses | string | EPP status flags, comma-separated: clientTransferProhibited, ok, pendingDelete and so on. |
nameservers | string | Nameservers, comma-separated. |
nameServerCount | number | How many nameservers are delegated. |
note | string | Present only when the record is missing, and it says plainly that 'no record' does not mean 'available'. |
rdapSource | string | The registry endpoint the bootstrap sent us to, so the answer can be checked. |
scrapedAt | string | When this run read the registry. |