Namedesk
Guides

Stats API

Domain industry statistics as JSON: TLDs, registry operators and registrars month by month, plus nightly zone counts. Also the 2026 new gTLD round: who applied for which strings. Free, no key required.

TerminalCode
curl https://api.namedesk.app/v1/stats/tlds/xyz
JSONCode
{ "tld": "xyz", "kind": "new-gtld", "category": "other", "delegated": "2014-02-19", "registry": { "id": 69, "name": "XYZ.COM LLC" }, "phases": [ { "phase": "sunrise", "start": "2014-03-20", "end": "2014-05-20" }, { "phase": "landrush", "start": "2014-05-20", "end": "2014-06-01" }, { "phase": "claims", "start": "2014-06-02", "end": "2014-09-02" }, { "phase": "general_availability", "start": "2014-06-02" } ], "domains": { "period": "2026-05", "count": 8557020, "change": -121996, "change_year": 3571471 }, "zone": { "date": "2026-10-01", "count": 10226440, "for_sale": 5413297, "parked": 917336 }, "url": "https://namedesk.app/stats/tlds/xyz", "meta": { "as_of": "2026-10-01", "updated_at": "2026-10-02T02:04:55Z", "attribution": "Registry statistics from ICANN monthly registry reports and registry operators' own reports. Launch periods from ICANN's TLD startup pages and the Trademark Clearinghouse calendar. Zone counts from ICANN CZDS zone files." } }

Each TLD, registry operator, registrar, group, string and application carries url, its page on namedesk.app. Every response carries meta with attribution, the sources to credit. A response that holds a dated figure also carries as_of, the newest month or date in it. updated_at says when the data last changed: the statistics' last update, or the 2026 round's newest change. Zone series carry no updated_at, and the round's responses no as_of.

A registry operator's name is its brand when no other operator uses that brand, such as GoDaddy Registry. In that case legal_name holds the name ICANN lists, Registry Services, LLC. Otherwise name is the ICANN-listed name and legal_name is absent. The operator's page is reachable at a URL built from either name.

Endpoints

PathReturns
/v1/stats/summaryTotals for the newest month, by TLD kind, and the newest zone night
/v1/stats/periodsEvery month the registry reports cover
/v1/stats/tldsEvery TLD with a reported figure; filter by kind, category, registry, q; sort by domains, change, adds, name
/v1/stats/tlds/{tld}One TLD with its launch phases, newest figure and newest zone night
/v1/stats/tlds/{tld}/monthsMonthly figures: domains, change, adds, renewals, deletes, transfers, restores, registrars
/v1/stats/tlds/{tld}/registrarsEach registrar's share for one month. ccTLDs have no registrar breakdown
/v1/stats/tlds/{tld}/zoneNightly zone counts: names in the zone, entered and left, for sale, parked
/v1/stats/registriesEvery registry operator running a TLD today
/v1/stats/registries/{id}One operator, and the 2026 round applicants a public source ties to it; /tlds for the TLDs it runs, /months for its monthly total
/v1/stats/registrarsEvery accredited registrar with names under management
/v1/stats/registrars/{id}One registrar, by IANA id (146 or iana:146); /months, /tlds
/v1/stats/groups/{slug}One owner's registrars and registry operators, both when it has both: godaddy, identity-digital
/v1/stats/phasesLaunch phases across TLDs; ?phase=general_availability&from=2024-01&to=2024-12 lists every TLD that opened in 2024

Applications and strings

The 2026 new gTLD round, from applicants' public announcements and ICANN's published lists.

PathReturns
/v1/stats/round/2026ICANN's calendar for the round and where the round stands on it. Counts of applications, strings applied for, applicants (companies), the legal entities they applied through, contention sets, and companies whose every claim was abandoned
/v1/stats/applicationsEvery application; filter by string, applicant, status, category; sort by announced, string, contention
/v1/stats/applications/{id}One application, with its replacement string, IDN variants or switch
/v1/stats/stringsStrings in the round, with the AI score and verdict once a string is assessed; role picks which: applied, backup, deactivated, abandoned (default applied,backup); filter by status, category, contested=true; sort by score, contention, string, first_seen
/v1/stats/strings/{string}One string, everyone on it, and its comparables from the 2012 round
/v1/stats/applicantsEvery applicant with at least one application, one per company, with the legal entities it applied through and the registry operators that are the same company or are tied to it; abandoned=true lists instead the companies whose every claim was abandoned. /applicants/{id} for one applicant, abandoned or not, /applicants/{id}/applications for its applications
/v1/stats/changesEvery change, oldest first: a new application, a status change, a correction or a note, with the text the changelog shows for it

/v1/stats/applications lists one item per ICANN application, plus each claim an applicant announced that ICANN's list does not hold. An application's replacement (backup) string and IDN variant labels are listed as applications of their own, with status replacement or variant. They name the application they belong to in primary, and the application names them in replacement and variants. An applicant can name the same backup string in several of its applications, so a backup string has one entry per application that names it. A backup string ICANN does not allow, because another applicant applied for the same string or named it as a backup, reads deactivated; it names its application in primary, and the application names it in deactivated_replacement. When an applicant switches to its replacement string in the replacement period, the old application reads switched and carries switched_to; the new one carries switched_from. An announced claim that is not on ICANN's list reads ghost (role abandoned).

Only an application live on ICANN's list counts toward applications, applicants and contention: status confirmed, in-contention, delegated, sunrise or launched. Nothing else counts: not a replacement, deactivated, variant, switched or abandoned entry, not a claim ICANN's list does not hold, and not an application that was withdrawn or ended another way.

Strings that are already TLDs are not part of the round, except where ICANN lists an application to add an IDN variant label to an existing TLD (icann_types includes variant-only). That application counts, under the existing TLD, as ICANN lists it, and names the new label in variants.

A string is in a role when at least one application puts it there, so one string can be in several. applied: applied for, with an application live on ICANN's list, including an IDN variant label of an application. backup: named as an application's replacement string. deactivated: named as a backup string that ICANN's list shows as deactivated. abandoned: announced, but not on ICANN's list.

On a string, each applicant is listed once for each role it has there: applying (an application live on ICANN's list), replacement, variant, switched, deactivated, abandoned, unconfirmed (said or reported to have applied, not on ICANN's list) or ended (applied, and the application ended).

An applicant is a company, listed once however many legal entities it applied through. Its legal_entities lists them, each with its legal_name as ICANN lists it and its own count; an application's applicant names the legal entity that filed it, and /v1/stats/applicants/{id} with that id returns its company. Legal entities belong to one company when their ICANN applications name the same parent or controller, or one names the other as its parent. A party that is not on ICANN's list has no legal_name. The round's counts.applicants counts each company once and counts.legal_entities counts the entities. An applicant's registries are the registry operators that are the same company or are tied to it, each backed by a public source quoted on its page, with what each runs today; a tie says who the applicant is, not who will run its new TLDs. An applicant's website is its company's website, and its url is the company's page on namedesk.app, which shows why its legal entities are one company. A company's page keeps its URL when the company is renamed. The score and verdict are our AI assessment; the methodology explains them.

One string's read also carries comps: up to three strings from the 2012 round our AI chose as its closest parallels, closest first, each with why, how many applied for it in 2012, whether it reached the root and who won it, and its names under management in the latest month reported (from the registry statistics, with a link to its page). A string with no parallel has no comps.

Every parameter and field is in the API reference. A stats-only OpenAPI document is at https://namedesk.app/openapi-stats.json, for connectors and tools that take a spec URL.

Figures

domains.count, or domains in a monthly series, is the number of registered names at the end of the month. A figure carries estimated: true when it comes from a registry operator's own report rather than its monthly report to ICANN. A TLD with no reported figure has no domains field.

Registry reports arrive about four months after the month they describe. Zone counts are from the previous night.

Rate limits

120 requests a minute per address without a key, 600 with one. A 429 carries Retry-After in seconds. Responses carry Cache-Control: max-age=3600 and an ETag; send If-None-Match to get a 304. /v1/stats/round/2026 is cached for less when its phase changes sooner, so it never shows a phase past its end.

Sources and terms

Registry statistics come from the registries' monthly reports to ICANN and from registry operators' own reports. Launch periods come from ICANN's TLD startup pages and the Trademark Clearinghouse calendar. Zone counts come from ICANN CZDS zone files. 2026 round data comes from applicants' public announcements and ICANN's published lists. Credit the sources in meta.attribution wherever you show the numbers.

Registry and zone statistics are counts and totals only. The API never lists domain names. You may use the statistics in your own products and publications, including commercially, if you credit the sources. You may not resell them as a dataset or use them to run a competing statistics service. Zone counts depend on access the registries grant and can be withdrawn. The Terms of Service have the full wording.

The Stats API is in beta and free. Any change to that is announced on the changelog first.

Last modified on