Domain Expiry Watch — Early Signal Before a Domain Drops avatar

Domain Expiry Watch — Early Signal Before a Domain Drops

Pricing

Pay per event

Go to Apify Store
Domain Expiry Watch — Early Signal Before a Domain Drops

Domain Expiry Watch — Early Signal Before a Domain Drops

Watches registry zone files for domains that dropped out, with how many days they have been absent. Zone exit happens about 35 days before release, so this is domain expiration monitoring at its earliest point: an early watchlist, not a list of expired domains you can buy today.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Oswaldo Carabano

Oswaldo Carabano

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Domains that disappeared from the registries' zone files, with how many days they have been absent.

Leaving the zone happens roughly 35 days before a domain is actually released, so this is an early warning — a shortlist to watch, not a list of domains you can buy.

Coverage

1,075 gTLDs, including .com, .net, .org, .info, .biz, .xyz, .top, .shop, .online, .site, .store, .app, .dev and .cloud255,631,856 delegated domains, counted from the zone files themselves and refreshed daily.

Coverage is real but it is not evenly spread, and you should know the shape of it before you rely on it: .com alone is 166 million of that total, and while all 1,075 TLDs are included, 481 of them hold fewer than a thousand domains each. Breadth helps you catch something in an obscure TLD; it is not 1,075 equally busy namespaces.

Not covered: .io, .ai, .co, .me, .tv, .cc and every other country-code TLD. These are not available from ICANN's zone file service at any price — they are run outside ICANN's contracts. They are also exactly the TLDs a startup expects, so we say it here rather than letting you find out from an empty result.

What a zone file does not contain, and no run will ever return: the registrant, their email, the registrar, the registration date, the expiry date, or the domain's own A, MX and TXT records. Any tool promising those needs a different source, and at scale that source is prohibited by the agreement behind this data.

Input

Every run is anchored on something you provide. There is no way to ask this Actor for the whole namespace, and that is a design decision rather than a limitation: the data agreement behind it forbids handing over a substantial portion of a zone, so the product simply has no shape that could.

See Example runs below for fifteen worked inputs.

Output

FieldMeaning
domainThe domain that left the zone
tldIts top-level domain
exited_onThe date of the first snapshot where it was missing
days_absentHow many days it has been missing since
last_nameserversWhere it delegated before it left
dns_providerWho ran its DNS, inferred from those nameservers
parked_for_saleTrue when it was already sitting on a parking or sale service before it left. A parked domain leaving the zone is a much firmer drop candidate than one that was in active use

Reading the results

🔴 This Actor is deliberately not called "expired domains", and that matters.

More than half the domains that leave the zone never drop. They come back: a renewal that landed late, a nameserver misconfiguration, a registrar suspension that got resolved. If we called this "expired domains" we would be selling you a list where most rows are wrong.

What we sell instead is the zone exit event with an age, and the minDaysAbsent filter is the control that turns a noisy early signal into a useful one:

minDaysAbsentWhat you get
0Includes domains that left the zone today. The earliest possible signal, and the noisiest
1Everything from yesterday back, including the renewals that come back tomorrow
7Most transient problems have resolved themselves
30Domains genuinely heading for release

The zone event itself is 100% reliable. This domain was in yesterday's snapshot and is not in today's. What is uncertain is what it means, and that uncertainty is the reason for the filter rather than something we hide.

We do not query WHOIS or RDAP to resolve the ambiguity, and we will not: querying registries at scale is prohibited by the agreement that gives us this data at all.

dns_provider says who runs the DNS, not what the site is built with. The nameserver identifies the DNS operator for 69% of domains, but a domain on Cloudflare can be running anything. Website platforms are configured with A and CNAME records, which a zone file does not contain, so we cannot see them and we do not guess.

An empty result means nothing left the zone matching your filters, or nothing has been absent long enough. It only costs the $0.00001 start fee.

Example runs

1. Find domains dropping in a niche TLD

{
"tld": [
"bank"
],
"minDaysAbsent": 30,
"days": 60,
"maxResults": 500
}

2. Check whether any of your own domains lapsed

{
"contains": [
"shopify"
],
"minDaysAbsent": 1,
"days": 7,
"maxResults": 100
}

3. Find short domains leaving the registry zone

{
"contains": [
"zy"
],
"tld": [
"com"
],
"minDaysAbsent": 21,
"days": 45,
"maxResults": 1000
}

4. Track crypto domains going quiet

{
"contains": [
"nft",
"token"
],
"minDaysAbsent": 14,
"days": 30,
"maxResults": 1000
}

5. Watch a competitor releasing domain names

{
"contains": [
"northwind"
],
"minDaysAbsent": 7,
"days": 30,
"maxResults": 200
}

6. Monitor domains dropping out of a busy TLD

{
"tld": [
"shop"
],
"minDaysAbsent": 30,
"days": 60,
"maxResults": 5000
}

7. High-confidence domain drop candidates

{
"contains": [
"travel"
],
"minDaysAbsent": 45,
"days": 90,
"maxResults": 2000
}

8. Research view of domains leaving a TLD

{
"tld": [
"xyz"
],
"minDaysAbsent": 1,
"days": 3,
"maxResults": 5000
}

9. Find abandoned brand domains in shop and store

{
"contains": [
"shop",
"store"
],
"minDaysAbsent": 30,
"days": 90,
"maxResults": 2000
}

10. Monitor a client managed domains for lapses

{
"contains": [
"agency"
],
"minDaysAbsent": 1,
"days": 14,
"maxResults": 100
}

11. Find dropping domains with a city keyword

{
"contains": [
"madrid"
],
"minDaysAbsent": 21,
"days": 60,
"maxResults": 1000
}

12. Track a failed startup domain assets

{
"contains": [
"startup"
],
"minDaysAbsent": 7,
"days": 60,
"maxResults": 200
}

13. Find dictionary word domains dropping in app

{
"tld": [
"app"
],
"minDaysAbsent": 30,
"days": 90,
"maxResults": 2000
}

14. Weekly conservative domain drop digest

{
"contains": [
"fintech"
],
"minDaysAbsent": 30,
"days": 45,
"maxResults": 1000
}

15. Quarterly study of domain drops in one TLD

{
"tld": [
"online"
],
"minDaysAbsent": 45,
"days": 90,
"maxResults": 5000
}

Pricing

$0.00001 to start, then $0.002 per zone exit — about $2 per 1,000 results.

Same price as the new-delegations Actor and for the same reason: it is built to be scheduled daily with a narrow filter, where most runs cost almost nothing.

Raise minDaysAbsent before you raise maxResults. A run with minDaysAbsent: 1 returns a lot of rows that will resolve themselves by tomorrow, and you pay for every one of them.

Data source

🛡️ Sourced from the Registry Operators' own zone files, obtained through ICANN's Centralized Zone Data Service under agreement with those operators. ICANN does not endorse, sponsor or review this Actor.

Built for security research, brand protection and domain analytics. The access behind this data was granted one TLD at a time, which is why the coverage is what it is.

Support

Found a domain the Actor missed, or a row that looks wrong? Open an issue on the Actor page with the exact input you used. Zone data is refreshed once a day, so a domain delegated this morning may not appear until tomorrow's snapshot.