Stats
Domain industry statistics and the 2026 new gTLD round, free, no key required. Statistics: TLDs, registry operators and registrars month by month, launch phases and nightly zone counts, as counts and totals. The 2026 round: every application announced by its applicant or published by ICANN, the strings applied for, the applicants, ICANN's calendar and every change to the round data. Every response carries meta with the sources to credit.
Stats summary
TLDs, domains, registrars and registry operators with a figure in one month, by kind, and the newest zone night.
query Parameters
period^[0-9]{4}-(0[1-9]|1[…A month, YYYY-MM. Defaults to the newest month; clamped to the months that exist and echoed in query.
Stats summary › Responses
The summary.
period^[0-9]{4}-(0[1-9]|1[… · requiredtldsTLDs with a figure that month.
domainsTheir domains summed.
registrarsRegistrars with names under management that month.
registriesRegistry operators with names under management that month.
urlThe newest zone night: the TLDs in it and their names.
On the top-level object of a response only.
Months covered
Every month the registry reports cover, oldest first. Some months are missing.
query Parameters
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
Months covered › Responses
A page of months.
next_cursorNull on the last page.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
The first and last points a series has, whatever range was asked for.
List TLDs
Every TLD with a reported figure, at its newest month. domains.estimated marks a figure from the registry's own report. Sorted by domains; ties by TLD.
query Parameters
sortSorts on each TLD's newest month. Estimated figures have no adds and sort last.
orderDefaults to desc, or asc when sorting by name.
kindOne or more, comma-joined.
categoryOne or more, comma-joined: brand, commerce, culture, ai-tech, geo, infra, other.
registryRegistry operator ids, comma-joined (up to 50).
qContained in the name (or the TLD), case-insensitive, 1 to 64 characters.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
List TLDs › Responses
Get a TLD
One TLD, with its launch phases.
path Parameters
tldThe A-label, lower case.
Get a TLD › Responses
The TLD.
tldThe A-label, lower case. Also the id.
kindurlIts page on namedesk.app.
unicodeIDN only: the native-script form.
categorydelegatedRoot-zone delegation date, at the precision known: YYYY-MM-DD, or YYYY-MM or YYYY for a few old TLDs.
removedDate removed from the root, same precision rule. Absent for a live TLD.
The operator today.
On the single TLD only.
The newest month from an ICANN monthly report or the registry's own report, else the newest archived copy of one. Absent when no such figure exists.
The newest night of the TLD's zone file. May be withdrawn if the registry revokes zone access.
On the top-level object of a response only.
A TLD's months
Monthly figures, oldest first.
path Parameters
tldThe A-label, lower case.
query Parameters
from^[0-9]{4}-(0[1-9]|1[…First month, YYYY-MM, inclusive. Overrides range.
to^[0-9]{4}-(0[1-9]|1[…Last month, YYYY-MM, inclusive. Defaults to the newest.
rangeHow far back from to when from is not given.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
A TLD's months › Responses
A page of months.
next_cursorNull on the last page.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
The first and last points a series has, whatever range was asked for.
A TLD's registrars
Each registrar's holding in the TLD for one month; defaults to the newest month with a registrar breakdown. ccTLDs have none.
path Parameters
tldThe A-label, lower case.
query Parameters
period^[0-9]{4}-(0[1-9]|1[…A month, YYYY-MM. Defaults to the newest month; clamped to the months that exist and echoed in query.
sortNumbers descending, name ascending.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
A TLD's registrars › Responses
A page of registrars.
next_cursorNull on the last page.
totalItems across all pages.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
domains_totalThe TLD's domains that month, when a reported figure exists (shares are absent otherwise).
A TLD's zone nights
Nightly counts from the TLD's zone file, oldest first. Empty for a TLD without zone counts. Nights with no count are left out. Zone data may be withdrawn if a registry revokes access.
path Parameters
tldThe A-label, lower case.
query Parameters
fromFirst night, YYYY-MM-DD.
toLast night, YYYY-MM-DD.
rangeHow far back from to when from is not given; all is up to five years.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
A TLD's zone nights › Responses
List registry operators
Every operator running a TLD today.
query Parameters
sortNumbers descending, name ascending.
groupOnly this group, by its exact name (the group field).
qContained in the name (or the TLD), case-insensitive, 1 to 64 characters.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
List registry operators › Responses
A page of operators.
next_cursorNull on the last page.
totalItems across all pages.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
Get a registry operator
One operator.
path Parameters
id^[1-9][0-9]*$ · requiredGet a registry operator › Responses
The operator.
idOur id, stable for v1.
nameThe operator's brand when no other operator uses it (for example, GoDaddy Registry); otherwise the name ICANN lists.
tldsTLDs it runs today.
urllegal_nameThe name ICANN lists for the operator (for example, Registry Services, LLC). Present only when name holds the brand.
groupThe owner, when two or more operators share one (see /v1/stats/groups/{slug}).
Summed over the TLDs it runs today, for the newest ICANN-report month. Absent when none of them has a figure that month.
On a single operator (/v1/stats/registries/{id}), when there is one: the applicant companies in the 2026 round that a public source ties to this operator, from the round record (the 2026 round endpoints' source), not the registry reports.
On the top-level object of a response only.
An operator's TLDs
The TLDs it runs today, by TLD.
path Parameters
id^[1-9][0-9]*$ · requiredquery Parameters
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
An operator's TLDs › Responses
A page of TLDs.
next_cursorNull on the last page.
totalItems across all pages.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
An operator's months
Monthly totals over the TLDs it runs today (not as of each month), oldest first, up to the newest registry-report month.
path Parameters
id^[1-9][0-9]*$ · requiredquery Parameters
from^[0-9]{4}-(0[1-9]|1[…First month, YYYY-MM, inclusive. Overrides range.
to^[0-9]{4}-(0[1-9]|1[…Last month, YYYY-MM, inclusive. Defaults to the newest.
rangeHow far back from to when from is not given.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
An operator's months › Responses
A page of months.
next_cursorNull on the last page.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
The first and last points a series has, whatever range was asked for.
List registrars
Every accredited registrar with a figure, each at its newest month.
query Parameters
sortNumbers descending, name ascending; adds are that month's.
groupOnly this group, by its exact name (the group field).
qContained in the name (or the TLD), case-insensitive, 1 to 64 characters.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
List registrars › Responses
A page of registrars.
next_cursorNull on the last page.
totalItems across all pages.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
Get a registrar
One registrar, by its IANA id: 146 or iana:146.
path Parameters
id^(iana:)?[1-9][0-9]*… · requiredThe IANA registrar id, or iana: followed by it.
Get a registrar › Responses
The registrar.
idOur id: equal to the IANA registrar id.
iana_idnametldsTLDs it held names in that month.
A stock figure as of a month.
urlgroupThe owner (see /v1/stats/groups/{slug}).
On the top-level object of a response only.
A registrar's months
Monthly totals over its TLDs, oldest first.
path Parameters
id^(iana:)?[1-9][0-9]*… · requiredThe IANA registrar id, or iana: followed by it.
query Parameters
from^[0-9]{4}-(0[1-9]|1[…First month, YYYY-MM, inclusive. Overrides range.
to^[0-9]{4}-(0[1-9]|1[…Last month, YYYY-MM, inclusive. Defaults to the newest.
rangeHow far back from to when from is not given.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
A registrar's months › Responses
A page of months.
next_cursorNull on the last page.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
The first and last points a series has, whatever range was asked for.
A registrar's TLDs
Its holding in each TLD for one month; defaults to its newest.
path Parameters
id^(iana:)?[1-9][0-9]*… · requiredThe IANA registrar id, or iana: followed by it.
query Parameters
period^[0-9]{4}-(0[1-9]|1[…A month, YYYY-MM. Defaults to the newest month; clamped to the months that exist and echoed in query.
sortNumbers descending, name (the TLD) ascending.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
A registrar's TLDs › Responses
A page of TLDs.
next_cursorNull on the last page.
totalItems across all pages.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
Get a group
One owner's registrars and registry operators: both, when it has both. The slug is the group name, lower case, non-alphanumerics as hyphens.
path Parameters
slugGet a group › Responses
The group.
slugnameurlOne kind of a group's members, and their stock.
One kind of a group's members, and their stock.
On the top-level object of a response only.
Launch phases
Which TLDs ran which launch phase when: every dated phase, by start date, then TLD.
query Parameters
phaseOne or more, comma-joined.
from^[0-9]{4}-(0[1-9]|1[…Phases starting in or after this month, YYYY-MM.
to^[0-9]{4}-(0[1-9]|1[…Phases starting in or before this month, YYYY-MM.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
Launch phases › Responses
A page of phases.
next_cursorNull on the last page.
totalItems across all pages.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
List 2026 round applications
Applications in ICANN's 2026 new gTLD round, from applicants' public announcements and ICANN's published lists. One item per string and applicant.
query Parameters
stringApplications for this string, its A-label.
applicant^[0-9a-f]{8}-[0-9a-f…Applications by this applicant (a company). Send the company's id or any of its legal entities' ids; either returns every application by the company, so this cannot filter to one entity.
statusOne or more statuses, comma-joined.
categoryOne or more categories, comma-joined: ai-tech, crypto, commerce, geo, brand, culture, infra, other.
sortannounced: newest announcement first, applications with no announcement date last. string: A to Z. contention: most contested first.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
List 2026 round applications › Responses
A page of applications.
next_cursorNull on the last page.
totalItems across all pages.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
Get a 2026 round application
One application.
path Parameters
id^[0-9a-f]{8}-[0-9a-f… · requiredGet a 2026 round application › Responses
The application.
id^[0-9a-f]{8}-[0-9a-f… · requiredOur id, stable for v1.
roundstringThe string applied for, its A-label.
statusWhere the application stands. catalogued and rumored are reserved and not used. announced: the applicant has said it applied. confirmed: on ICANN's published list. ghost: abandoned: announced, but not on ICANN's list under that applicant. retracted: the announcement was taken back. withdrawn: withdrawn after applying. in-contention: confirmed, and competing with other applications for the same string. auction-lost: lost the contention set at auction. will-not-proceed: ICANN will not move the application forward. delegated: added to the root zone. sunrise: in its sunrise period. launched: open for general registration. terminated: the registry agreement ended. replacement: named on ICANN's list as the replacement string of another of the applicant's applications. variant: an IDN variant label of another of the applicant's applications. switched: was applied for; the applicant moved the application to its replacement string. deactivated: named as a replacement (backup) string of another of the applicant's applications, shown on ICANN's list as deactivated, because another applicant applied for the same string or named it as a backup. Only an application live on ICANN's list counts as an application: confirmed, in-contention, delegated, sunrise, launched.
contentionHow many applicants are pursuing the string: those with an application live on ICANN's list (confirmed, in-contention, delegated, sunrise, launched).
The announcement or list where the application first appeared.
Absent when the applicant is not known.
announcedThe day the applicant announced it applied.
summaryicann_application_idICANN's application id, once ICANN has published it.
contention_setICANN's id for the set of applications competing for the same string.
icann_typesICANN's TLD types for the application, from ICANN's published list. An empty list is a generic (standard) application. variant-only is an application by the operator of an existing TLD to add an IDN variant label of it: the application is on the existing TLD and names the new label in variants. Absent when the row was not taken from ICANN's list.
On a replacement, deactivated or variant: the application it belongs to.
The application's replacement string, while it is unused.
The application's replacement string that ICANN's list shows as deactivated.
The application's IDN variant labels.
On a switched application: the replacement string it moved to.
On the application a switch moved to: the string it moved from.
urlThe string's page on namedesk.app. Absent for the few strings without a page.
On the top-level object of a response only.
List 2026 round strings
Strings in the 2026 round: applied for, named as a backup, or claimed and abandoned, chosen with role (by default, applied-for strings and backups). Each carries the AI assessment's score and verdict once the string is assessed.
query Parameters
roleOne or more roles, comma-joined. A string is listed when at least one application puts it in one of them. applied: applied for, with an application live on ICANN's list (an IDN variant label of an application counts here). 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. Default: applied,backup.
statusOne or more statuses, comma-joined.
categoryOne or more categories, comma-joined: ai-tech, crypto, commerce, geo, brand, culture, infra, other.
contestedtrue: only strings two or more applicants are pursuing.
sortscore: highest first, unassessed strings last. contention: most contenders first. string: A to Z. first_seen: newest first.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
List 2026 round strings › Responses
A page of strings.
next_cursorNull on the last page.
totalItems across all pages.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
Get a 2026 round string
One string, by its A-label.
path Parameters
stringThe A-label, lower case.
Get a 2026 round string › Responses
The string.
stringThe A-label.
roundstatusThe furthest stage any of its applications has reached.
applicationsApplications for this string. Only an application live on ICANN's list counts as an application: confirmed, in-contention, delegated, sunrise, launched.
contentionHow many applicants are pursuing it. Two or more means contested.
first_seenThe day namedesk first listed the string.
Each applicant on the string and its role: one entry per applicant and role, so an applicant that applies for the string and names it as a backup is listed twice.
unicodeIDN only: the native-script form.
categoryThe AI assessment's leading category once the string is assessed. Absent when not known.
scoreThe AI assessment's score, 1 to 100 on one fixed scale; .com is scored on it like every other TLD. Absent until the string is assessed; https://namedesk.app/tlds/methodology explains it.
verdictThe assessment's one-sentence verdict. Absent until the string is assessed.
Only on the single-string read: the AI's comparables from the 2012 round, closest first. Absent when the string has none.
urlThe string's page on namedesk.app. Absent for the few strings without a page.
On the top-level object of a response only.
List 2026 round applicants
The companies with at least one application in the 2026 round (counts.applicants on /v1/stats/round/2026), each with the legal entities it applied through and the registry operators that are the same company or are tied to it. With abandoned=true, the companies whose every claim was abandoned instead (counts.abandoned_applicants).
query Parameters
abandonedtrue: list the companies whose every claim was abandoned (announced, not on ICANN's list) instead of the applicants.
sortapplications: most first. name: A to Z.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
List 2026 round applicants › Responses
A page of applicants.
next_cursorNull on the last page.
totalItems across all pages.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
Get a 2026 round applicant
One applicant (a company), or one company whose every claim was abandoned. Send the company's id or any of its legal entities' ids (the applicant.id on an application or string). Either way you get the whole company, and the response's id is the company's, which can differ from the id you sent.
path Parameters
id^[0-9a-f]{8}-[0-9a-f… · requiredGet a 2026 round applicant › Responses
The applicant.
id^[0-9a-f]{8}-[0-9a-f… · requiredOur id for the company, stable for v1. It can be the same as one of its legal entities' ids; /v1/stats/applicants/{id} also takes the id of any of its legal entities.
nameThe company.
applicationsIts applications in the round, over all its legal entities. Only an application live on ICANN's list counts as an application: confirmed, in-contention, delegated, sunrise, launched.
The legal entities the company applied through, most applications first.
websiteThe company's website, when known.
The registry operators that are the same company as the applicant or are tied to it, each backed by a public source quoted on its page on namedesk.app. Absent when there is none. A tie says who the applicant is, not who will run its new TLDs.
urlThe company's page on namedesk.app, with every legal entity it applies through and why they are one company. The address stays the same when the company is renamed.
On the top-level object of a response only.
An applicant's 2026 round applications
Every application by one applicant, over all its legal entities.
path Parameters
id^[0-9a-f]{8}-[0-9a-f… · requiredquery Parameters
statusOne or more statuses, comma-joined.
categoryOne or more categories, comma-joined: ai-tech, crypto, commerce, geo, brand, culture, infra, other.
sortannounced: newest announcement first, applications with no announcement date last. string: A to Z. contention: most contested first.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
An applicant's 2026 round applications › Responses
A page of applications.
next_cursorNull on the last page.
totalItems across all pages.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
2026 round changes
Every change to the round data, oldest first: a new application, a status change, a correction or a note.
query Parameters
fromFirst day, YYYY-MM-DD.
toLast day, YYYY-MM-DD.
rangeHow far back from to when from is not given; all is up to five years.
limitPage size, 1 to 1000. Defaults to 100.
cursorThe next_cursor of the previous page. It is bound to the query it came from: change any other parameter and start again without it.
2026 round changes › Responses
A page of changes.
next_cursorNull on the last page.
The parameters as resolved: defaults filled in, bounds clamped.
On every stats response.
The first and last points a series has, whatever range was asked for.
The 2026 round
ICANN's calendar for the round, where the round is on it (cached no longer than until the phase changes), and how many applications, strings, applicants (companies), legal entities and contention sets it has.
path Parameters
roundThe 2026 round › Responses
The round.
roundphaseWhere the round is on ICANN's calendar, switching at the instants ICANN gives. before_reveal: ICANN has not published the applied-for strings. revealed: they are out, and the replacement period has not opened. replacement_period: applicants may switch to their replacement string. awaiting_confirmation: switching has closed. objections: the final list is out and objections are open. evaluation: objections have closed.
revealedTrue once ICANN's published list is in the API.
urlOn the top-level object of a response only.