Domain Expiry & WHOIS Lookup Monitor avatar

Domain Expiry & WHOIS Lookup Monitor

Pricing

from $2.25 / 1,000 domain checkeds

Go to Apify Store
Domain Expiry & WHOIS Lookup Monitor

Domain Expiry & WHOIS Lookup Monitor

Find when a domain expires and who its registrar is. Send domains; get per domain the registrar, expiry date, days left, status codes and nameservers via RDAP (WHOIS fallback), with expiry flags and change tracking between runs. $0.0025/domain; failed lookups free.

Pricing

from $2.25 / 1,000 domain checkeds

Rating

0.0

(0)

Developer

Zaden

Zaden

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Tracks domain registration status via RDAP (the modern replacement for WHOIS), falling back to raw WHOIS where a registry has no RDAP service -- no browser, no proxy. Point it at one or more domains and get back the registrar, creation date, expiry date, days remaining, nameservers, and domain status codes -- plus a letter grade, a 0-100 score, a severity tag, and a plain-English summary so an expiring or lapsed domain never gets buried in a wall of fields.

Just need one domain? Use the free Domain Expiry Checker -- same RDAP data, no account. Use this Actor when you want a whole list checked on a schedule, with change alerts.

What you get, per domain

  • A letter grade (A+ to F) and 0-100 score summarizing registration health at a glance
  • A one-line executive summary ("Domain expires in 12 day(s) -- renew soon.")
  • A severity tag -- critical (expired, expiring within your warning window, unregistered, or the lookup itself failed), warning (registered but missing a data field), or ok -- for instant triage
  • Registrar and creation date
  • Expiry date and days until expiry
  • isExpired / isExpiringSoon flags (soon = within your configurable warning window, default 30 days)
  • Domain status codes (e.g. clientTransferProhibited) and nameservers
  • A plain-English issues list when something looks off (no expiry field exposed, lookup failed, domain unregistered, etc.)
  • Change tracking between runs: what changed since the last check -- renewals, registrar transfers, nameserver moves, status changes, or a domain dropping out of the registry -- with a plain-English changeSummary
  • Which protocol answered (source: rdap or whois) and the server that answered
  • Duplicate entries are merged, so Example.com and https://www.example.com/ are checked -- and charged -- once
  • Domains are checked in parallel (configurable), with per-TLD server lookups automatically cached and shared across domains -- so a watchlist of 50 .com domains asks IANA once, not 50 times

Monitoring: get told what changed

Turn on Track changes between runs (on by default) and put the Actor on an Apify Schedule. Each run compares every domain with what it saw last time and adds:

  • changed -- true when anything worth knowing moved
  • changes -- the exact fields, old and new values, e.g. { "field": "expiryDate", "from": "2027-01-01...", "to": "2028-01-01...", "note": "renewed" }
  • changeSummary -- one readable line: Registrar changed: MarkMonitor Inc. -> Namecheap, Inc.; Nameservers changed: +dana.ns.cloudflare.com
  • firstSeen -- true the first time a domain is checked

Turn on Only output changes and alerts and the dataset contains only domains that changed or need attention (expired, expiring soon, unregistered, lookup failed). Point an Apify integration (email, Slack, webhook) at the run and you have an alert feed with no noise.

A field a registry simply didn't return this time (some omit nameservers over one protocol) is never reported as removed, so you don't get false alarms. History lives in a named key-value store, domain-expiry-whois-state, in your own Apify account.

Get email alerts with n8n (free template)

Want an email only when something needs attention? Import the ready-made n8n workflow: it runs this Actor every Monday on your list with Only output changes and alerts turned on, and emails you when a domain is expiring soon, expired, unregistered, or its registrar, nameservers or expiry date changed. A quiet week sends nothing.

It's also in the official n8n template gallery: Send domain expiry and WHOIS change alerts by email with Apify.

  1. In n8n: Workflows -> Import from URL and paste https://x402-zadenworks.zaden-gaming.workers.dev/templates/n8n-domain-expiry-alert.json
  2. Edit Your domains (domains and the alert email).
  3. Add your Apify API token as a Header Auth credential (Authorization: Bearer <token>) and pick an email account -- or swap the email node for Slack, Telegram or Discord.
  4. Activate it. 20 domains checked weekly costs about $0.20 a month.

Why this instead of checking manually

Manual registrar loginsDomain Expiry & WHOIS Monitor
CoverageOne registrar dashboard at a timeEvery domain you list, across any registrar, automatically
SpeedLogin, click through, repeat per domainSeconds, via parallel WHOIS lookups
TriageYou scan dates yourselfPre-classified severity + letter grade
RepeatabilityForgotten until a renewal email (or missed)One click, or schedule it
OutputScreenshots or a spreadsheet you update by handStructured dataset, exportable to CSV/JSON/BI tools

Who this is for

  • Agencies and freelancers managing domains for multiple clients who want a single expiry dashboard instead of checking each registrar
  • Anyone who's ever lost a domain to an expired registration
  • IT/ops teams tracking a portfolio of company domains
  • Domain investors monitoring watchlists for drops

How to use it

  1. Add one or more domains to check (no protocol, e.g. example.com).
  2. Optionally adjust the expiry warning threshold (days) and concurrency.
  3. Run it once for a snapshot, or put it on an Apify Schedule (e.g. weekly) so you get an updated dataset before anything lapses.

How it works

For each domain, the Actor finds the registry for its TLD using IANA's official RDAP bootstrap list and asks it over RDAP -- the structured, ICANN-mandated successor to WHOIS. Several registries (for example .dev and .app) no longer run a WHOIS server at all, so RDAP is what makes them work.

If a TLD has no RDAP service, or the RDAP server errors or times out, the Actor falls back to the WHOIS protocol over a raw TCP socket (port 43): it asks IANA's root WHOIS server which registry is authoritative, then queries that registry directly. Both answers are cached per TLD for the run. No headless browser, no proxy, no third-party API keys required.

Example output (one item)

{
"domain": "example.com",
"score": 100,
"grade": "A+",
"severity": "ok",
"summary": "No issues found -- domain registration looks healthy.",
"found": true,
"registrar": "RESERVED-Internet Assigned Numbers Authority",
"creationDate": "1995-08-14T04:00:00Z",
"expiryDate": "2028-08-13T04:00:00.000Z",
"daysUntilExpiry": 669,
"isExpired": false,
"isExpiringSoon": false,
"status": ["clientDeleteProhibited", "clientTransferProhibited"],
"nameServers": ["A.IANA-SERVERS.NET", "B.IANA-SERVERS.NET"],
"source": "rdap",
"rdapServer": "https://rdap.verisign.com/com/v1/",
"whoisServer": null,
"lookupFailed": false,
"firstSeen": false,
"changed": true,
"changes": [{ "field": "expiryDate", "from": "2027-08-13T04:00:00.000Z", "to": "2028-08-13T04:00:00.000Z", "note": "renewed" }],
"changeSummary": "Expiry 2027-08-13 -> 2028-08-13 (renewed)",
"previousCheckedAt": "2026-10-07T00:00:00.000Z",
"issueCount": 0,
"issues": [],
"checkedAt": "2026-10-14T00:00:00.000Z"
}

Pricing

This Actor uses pay-per-event pricing:

  • Domain checked -- charged once per domain we got an answer for, including a confirmed "not registered" answer.
  • Only changes and alerts shortens the dataset, not the bill: every domain is still looked up, so every answered lookup is charged.
  • Lookups that fail are free. If neither RDAP nor WHOIS returns any data for a domain, it still appears in your dataset (with lookupFailed: true and the reason in issues), but you are not charged for it.

Parallel checking doesn't cost more -- it just finishes faster.

FAQ

Does this work for every TLD? It covers every gTLD (all are required to run RDAP) and most ccTLDs, through RDAP or WHOIS. A small number of ccTLD registries offer neither, or deliberately omit expiry dates (.de is one) -- for those, found may be true but expiryDate will be null, and the issue list will explain why.

What makes something "critical" vs. a "warning"? critical covers the scenarios that actually threaten the domain: expired, expiring within your warning window, unregistered, or the WHOIS lookup itself failing. warning covers a registered domain with an incomplete WHOIS response (e.g. no registrar field) -- worth a look, but not urgent.

Will higher concurrency get me rate-limited by WHOIS servers? It's possible -- some registries are stricter about concurrent connections than typical web servers. That's why the default concurrency here (3) is more conservative than in our HTTP-based Actors, and why per-TLD IANA lookups are cached rather than repeated. Raise it gradually and watch for lookupFailed: true results if you push it higher.

Does this send data anywhere besides your own Apify account? No. It only queries public WHOIS servers for the domains you provide.

Can I use this to bulk-check whether domains are available to register? It will tell you if a domain has no matching WHOIS record, but availability checking has TLD-specific edge cases -- always confirm with your registrar before assuming a domain is free.