Open data
Download everything
All data on this site is free to download and reuse. Files are rebuilt every day.
history.csvEvery check for every TLD: date, tld, count.
latest.jsonLatest count per TLD, change since the previous check, severity and abuse-list flag.
spikes.csvEvery flagged spike with severity.
spikes.jsonSpikes plus the exact rule used to flag them.
feed.xmlRSS feed of new spikes.
status.jsonDate of the newest data, for monitoring.
How the numbers are made
ICANN's Centralized Zone Data Service (CZDS) gives approved users a daily copy of each generic TLD's zone file, the list every DNS resolver uses to find a domain's name servers. RootFetch downloads a rolling set of these files every day at 03:30 UTC, counts the distinct second-level names that have NS records, and deletes the raw file. Only the counts are kept and published.
About 91 extensions are checked per run, so each is re-checked roughly every two weeks; .xyz, .app and .dev are checked daily. Growth between two checks is also expressed per week, compounding over the gap, so an extension checked after 3 days and one checked after 14 days can be compared directly.
What the files contain
- history.csv: one row per check with
date(UTC, YYYY-MM-DD),tld(ASCII form, e.g.xn--p1acffor IDNs) andcount. - latest.json: one object per extension with the latest
count,last_checked, the previous check,added,pct,severityandknown_abuse. - spikes.json: every unusual jump plus the
ruleobject with the exact thresholds: 1,000+ new domains and 5%+ growth within 21 days; severity Elevated 5–10%, High 10–20%, Critical 20%+. - data/tld/<tld>.csv: the history of a single extension, for example xyz.csv.
Use it in code
curl -s https://rootfetch.com/data/latest.json | jq '.tlds[] | select(.tld=="xyz")'
import pandas as pd
df = pd.read_csv("https://rootfetch.com/data/history.csv", parse_dates=["date"])
df[df.tld == "lol"].plot(x="date", y="count")
Limits to know about
Counts measure delegated names in the zone file, which is close to, but not the same as, registrations: names on hold or without name servers aren't in the zone. Country-code extensions such as .uk or .de don't publish zone files through CZDS, so they aren't covered, and .com is not yet included. Because most extensions are checked every two weeks, a short burst may show up spread across one longer window.
License and citation
The data is free to reuse under CC BY 4.0. Please credit it as: RootFetch, TLD domain counts, https://rootfetch.com/data.html, with the date you downloaded it.