Namedesk
Namedesk API

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

GET
https://api.namedesk.app
/v1/stats/summary

TLDs, domains, registrars and registry operators with a figure in one month, by kind, and the newest zone night.

Stats summary › query Parameters

period
​string · pattern: ^[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.

Totals for one month.
period
​string · pattern: ^[0-9]{4}-(0[1-9]|1[… · required
tlds
​integer · min: 0 · required

TLDs with a figure that month.

domains
​integer · min: 0 · required

Their domains summed.

registrars
​integer · min: 0 · required

Registrars with names under management that month.

registries
​integer · min: 0 · required

Registry operators with names under management that month.

​object[] · required
url
​string · uri · required
​object

The newest zone night: the TLDs in it and their names.

​StatsMeta

On the top-level object of a response only.


Months covered

GET
https://api.namedesk.app
/v1/stats/periods

Every month the registry reports cover, oldest first. Some months are missing.

Months covered › query Parameters

limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​StatsPeriod[] · required
next_cursor
​string | null · required

Null on the last page.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.

​StatsBounds

The first and last points a series has, whatever range was asked for.


List TLDs

GET
https://api.namedesk.app
/v1/stats/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.

List TLDs › query Parameters

sort
​string · enum

Sorts on each TLD's newest month. Estimated figures have no adds and sort last.

Enum values:
domains
change
adds
name
Default: domains
order
​string · enum

Defaults to desc, or asc when sorting by name.

Enum values:
asc
desc
kind
​string

One or more, comma-joined.

category
​string

One or more, comma-joined: brand, commerce, culture, ai-tech, geo, infra, other.

registry
​string

Registry operator ids, comma-joined (up to 50).

q
​string · minLength: 1 · maxLength: 64

Contained in the name (or the TLD), case-insensitive, 1 to 64 characters.

limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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

A page of TLDs.

​Tld[] · required
next_cursor
​string | null · required

Null on the last page.

total
​integer · min: 0 · required

Items across all pages.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.


Get a TLD

GET
https://api.namedesk.app
/v1/stats/tlds/{tld}

One TLD, with its launch phases.

Get a TLD › path Parameters

tld
​string · required

The A-label, lower case.

Get a TLD › Responses

The TLD.

A top-level domain.
tld
​string · required

The A-label, lower case. Also the id.

kind
​string · enum · required
Enum values:
cctld
idn-cctld
legacy-gtld
new-gtld
sponsored
infra
unknown
url
​string · uri · required

Its page on namedesk.app.

unicode
​string

IDN only: the native-script form.

category
​string · enum
Enum values:
brand
commerce
culture
ai-tech
geo
infra
other
delegated
​string

Root-zone delegation date, at the precision known: YYYY-MM-DD, or YYYY-MM or YYYY for a few old TLDs.

removed
​string

Date removed from the root, same precision rule. Absent for a live TLD.

​StatsRef

The operator today.

​TldPhase[]

On the single TLD only.

​StatsDomains

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.

​TldZone

The newest night of the TLD's zone file. May be withdrawn if the registry revokes zone access.

​StatsMeta

On the top-level object of a response only.


A TLD's months

GET
https://api.namedesk.app
/v1/stats/tlds/{tld}/months

Monthly figures, oldest first.

A TLD's months › path Parameters

tld
​string · required

The A-label, lower case.

A TLD's months › query Parameters

from
​string · pattern: ^[0-9]{4}-(0[1-9]|1[…

First month, YYYY-MM, inclusive. Overrides range.

to
​string · pattern: ^[0-9]{4}-(0[1-9]|1[…

Last month, YYYY-MM, inclusive. Defaults to the newest.

range
​string · enum

How far back from to when from is not given.

Enum values:
1y
3y
5y
10y
all
Default: 10y
limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​TldMonth[] · required
next_cursor
​string | null · required

Null on the last page.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.

​StatsBounds

The first and last points a series has, whatever range was asked for.


A TLD's registrars

GET
https://api.namedesk.app
/v1/stats/tlds/{tld}/registrars

Each registrar's holding in the TLD for one month; defaults to the newest month with a registrar breakdown. ccTLDs have none.

A TLD's registrars › path Parameters

tld
​string · required

The A-label, lower case.

A TLD's registrars › query Parameters

period
​string · pattern: ^[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.

sort
​string · enum

Numbers descending, name ascending.

Enum values:
domains
adds
name
Default: domains
limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​TldRegistrar[] · required
next_cursor
​string | null · required

Null on the last page.

total
​integer · min: 0 · required

Items across all pages.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.

domains_total
​integer · min: 0

The TLD's domains that month, when a reported figure exists (shares are absent otherwise).


A TLD's zone nights

GET
https://api.namedesk.app
/v1/stats/tlds/{tld}/zone

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.

A TLD's zone nights › path Parameters

tld
​string · required

The A-label, lower case.

A TLD's zone nights › query Parameters

from
​string · date

First night, YYYY-MM-DD.

to
​string · date

Last night, YYYY-MM-DD.

range
​string · enum

How far back from to when from is not given; all is up to five years.

Enum values:
30d
90d
1y
all
Default: 90d
limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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

A page of nights.

​ZoneDay[] · required
next_cursor
​string | null · required

Null on the last page.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.

​StatsBounds

The first and last points a series has, whatever range was asked for.


List registry operators

GET
https://api.namedesk.app
/v1/stats/registries

Every operator running a TLD today.

List registry operators › query Parameters

sort
​string · enum

Numbers descending, name ascending.

Enum values:
domains
tlds
name
Default: domains
group
​string · maxLength: 200

Only this group, by its exact name (the group field).

q
​string · minLength: 1 · maxLength: 64

Contained in the name (or the TLD), case-insensitive, 1 to 64 characters.

limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​Registry[] · required
next_cursor
​string | null · required

Null on the last page.

total
​integer · min: 0 · required

Items across all pages.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.


Get a registry operator

GET
https://api.namedesk.app
/v1/stats/registries/{id}

One operator.

Get a registry operator › path Parameters

id
​string · pattern: ^[1-9][0-9]*$ · required

Get a registry operator › Responses

The operator.

A registry operator.
id
​integer · required

Our id, stable for v1.

name
​string · required

The operator's brand when no other operator uses it (for example, GoDaddy Registry); otherwise the name ICANN lists.

tlds
​integer · min: 0 · required

TLDs it runs today.

url
​string · uri · required
legal_name
​string

The name ICANN lists for the operator (for example, Registry Services, LLC). Present only when name holds the brand.

group
​string

The owner, when two or more operators share one (see /v1/stats/groups/{slug}).

​StatsDomains

Summed over the TLDs it runs today, for the newest ICANN-report month. Absent when none of them has a figure that month.

​RegistryApplicant[]

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.

​StatsMeta

On the top-level object of a response only.


An operator's TLDs

GET
https://api.namedesk.app
/v1/stats/registries/{id}/tlds

The TLDs it runs today, by TLD.

An operator's TLDs › path Parameters

id
​string · pattern: ^[1-9][0-9]*$ · required

An operator's TLDs › query Parameters

limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​RegistryTld[] · required
next_cursor
​string | null · required

Null on the last page.

total
​integer · min: 0 · required

Items across all pages.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.


An operator's months

GET
https://api.namedesk.app
/v1/stats/registries/{id}/months

Monthly totals over the TLDs it runs today (not as of each month), oldest first, up to the newest registry-report month.

An operator's months › path Parameters

id
​string · pattern: ^[1-9][0-9]*$ · required

An operator's months › query Parameters

from
​string · pattern: ^[0-9]{4}-(0[1-9]|1[…

First month, YYYY-MM, inclusive. Overrides range.

to
​string · pattern: ^[0-9]{4}-(0[1-9]|1[…

Last month, YYYY-MM, inclusive. Defaults to the newest.

range
​string · enum

How far back from to when from is not given.

Enum values:
1y
3y
5y
10y
all
Default: 10y
limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​RegistryMonth[] · required
next_cursor
​string | null · required

Null on the last page.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.

​StatsBounds

The first and last points a series has, whatever range was asked for.


List registrars

GET
https://api.namedesk.app
/v1/stats/registrars

Every accredited registrar with a figure, each at its newest month.

List registrars › query Parameters

sort
​string · enum

Numbers descending, name ascending; adds are that month's.

Enum values:
domains
adds
tlds
name
Default: domains
group
​string · maxLength: 200

Only this group, by its exact name (the group field).

q
​string · minLength: 1 · maxLength: 64

Contained in the name (or the TLD), case-insensitive, 1 to 64 characters.

limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​Registrar[] · required
next_cursor
​string | null · required

Null on the last page.

total
​integer · min: 0 · required

Items across all pages.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.


Get a registrar

GET
https://api.namedesk.app
/v1/stats/registrars/{id}

One registrar, by its IANA id: 146 or iana:146.

Get a registrar › path Parameters

id
​string · pattern: ^(iana:)?[1-9][0-9]*… · required

The IANA registrar id, or iana: followed by it.

Get a registrar › Responses

The registrar.

An ICANN-accredited registrar.
id
​integer · required

Our id: equal to the IANA registrar id.

iana_id
​integer · required
name
​string · required
tlds
​integer · min: 0 · required

TLDs it held names in that month.

​StatsDomains · required

A stock figure as of a month.

url
​string · uri · required
group
​string

The owner (see /v1/stats/groups/{slug}).

​StatsMeta

On the top-level object of a response only.


A registrar's months

GET
https://api.namedesk.app
/v1/stats/registrars/{id}/months

Monthly totals over its TLDs, oldest first.

A registrar's months › path Parameters

id
​string · pattern: ^(iana:)?[1-9][0-9]*… · required

The IANA registrar id, or iana: followed by it.

A registrar's months › query Parameters

from
​string · pattern: ^[0-9]{4}-(0[1-9]|1[…

First month, YYYY-MM, inclusive. Overrides range.

to
​string · pattern: ^[0-9]{4}-(0[1-9]|1[…

Last month, YYYY-MM, inclusive. Defaults to the newest.

range
​string · enum

How far back from to when from is not given.

Enum values:
1y
3y
5y
10y
all
Default: 10y
limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​RegistrarMonth[] · required
next_cursor
​string | null · required

Null on the last page.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.

​StatsBounds

The first and last points a series has, whatever range was asked for.


A registrar's TLDs

GET
https://api.namedesk.app
/v1/stats/registrars/{id}/tlds

Its holding in each TLD for one month; defaults to its newest.

A registrar's TLDs › path Parameters

id
​string · pattern: ^(iana:)?[1-9][0-9]*… · required

The IANA registrar id, or iana: followed by it.

A registrar's TLDs › query Parameters

period
​string · pattern: ^[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.

sort
​string · enum

Numbers descending, name (the TLD) ascending.

Enum values:
domains
change
change_year
adds
share_pct
name
Default: domains
limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​RegistrarTld[] · required
next_cursor
​string | null · required

Null on the last page.

total
​integer · min: 0 · required

Items across all pages.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.


Get a group

GET
https://api.namedesk.app
/v1/stats/groups/{slug}

One owner's registrars and registry operators: both, when it has both. The slug is the group name, lower case, non-alphanumerics as hyphens.

Get a group › path Parameters

slug
​string · required

Get a group › Responses

The group.

One owner: its registrars and its registry operators, each present when it has members of that kind.
slug
​string · required
name
​string · required
url
​string · uri · required
​StatsGroupMembers

One kind of a group's members, and their stock.

​StatsGroupMembers

One kind of a group's members, and their stock.

​StatsMeta

On the top-level object of a response only.


Launch phases

GET
https://api.namedesk.app
/v1/stats/phases

Which TLDs ran which launch phase when: every dated phase, by start date, then TLD.

Launch phases › query Parameters

phase
​string

One or more, comma-joined.

from
​string · pattern: ^[0-9]{4}-(0[1-9]|1[…

Phases starting in or after this month, YYYY-MM.

to
​string · pattern: ^[0-9]{4}-(0[1-9]|1[…

Phases starting in or before this month, YYYY-MM.

limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​StatsPhase[] · required
next_cursor
​string | null · required

Null on the last page.

total
​integer · min: 0 · required

Items across all pages.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.


List 2026 round applications

GET
https://api.namedesk.app
/v1/stats/applications

Applications in ICANN's 2026 new gTLD round, from applicants' public announcements and ICANN's published lists. One item per string and applicant.

List 2026 round applications › query Parameters

string
​string

Applications for this string, its A-label.

applicant
​string · pattern: ^[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.

status
​string

One or more statuses, comma-joined.

category
​string

One or more categories, comma-joined: ai-tech, crypto, commerce, geo, brand, culture, infra, other.

sort
​string · enum

announced: newest announcement first, applications with no announcement date last. string: A to Z. contention: most contested first.

Enum values:
announced
string
contention
Default: announced
limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​RoundApplication[] · required
next_cursor
​string | null · required

Null on the last page.

total
​integer · min: 0 · required

Items across all pages.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.


Get a 2026 round application

GET
https://api.namedesk.app
/v1/stats/applications/{id}

One application.

Get a 2026 round application › path Parameters

id
​string · pattern: ^[0-9a-f]{8}-[0-9a-f… · required

Get a 2026 round application › Responses

The application.

An application in the 2026 new gTLD round: one 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 items of their own, with status `replacement`, `deactivated` or `variant`, and name the application they belong to in `primary`; the application names them in `replacement`, `deactivated_replacement` and `variants`. A backup string that several applications name is an item for each of them.
id
​string · pattern: ^[0-9a-f]{8}-[0-9a-f… · required

Our id, stable for v1.

round
​integer · enum · required
Enum values:
2026
string
​string · required

The string applied for, its A-label.

status
​string · enum · required

Where 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.

Enum values:
catalogued
rumored
announced
confirmed
ghost
retracted
withdrawn
in-contention
contention
​integer · min: 0 · required

How many applicants are pursuing the string: those with an application live on ICANN's list (confirmed, in-contention, delegated, sunrise, launched).

​RoundSource · required

The announcement or list where the application first appeared.

​RoundApplicantRef

Absent when the applicant is not known.

announced
​string · date

The day the applicant announced it applied.

summary
​string
icann_application_id
​string

ICANN's application id, once ICANN has published it.

contention_set
​string

ICANN's id for the set of applications competing for the same string.

icann_types
​string[]

ICANN'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.

Enum values:
brand
community
geographic
idn
applicant-support
variant-only

On a replacement, deactivated or variant: the application it belongs to.

​RoundApplicationRef

The application's replacement string, while it is unused.

​RoundApplicationRef

The application's replacement string that ICANN's list shows as deactivated.

The application's IDN variant labels.

​RoundSwitch

On a switched application: the replacement string it moved to.

​RoundSwitch

On the application a switch moved to: the string it moved from.

url
​string · uri

The string's page on namedesk.app. Absent for the few strings without a page.

​StatsMeta

On the top-level object of a response only.


List 2026 round strings

GET
https://api.namedesk.app
/v1/stats/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.

List 2026 round strings › query Parameters

role
​string

One 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.

Default: applied,backup
status
​string

One or more statuses, comma-joined.

category
​string

One or more categories, comma-joined: ai-tech, crypto, commerce, geo, brand, culture, infra, other.

contested
​string · enum

true: only strings two or more applicants are pursuing.

Enum values:
false
true
Default: false
sort
​string · enum

score: highest first, unassessed strings last. contention: most contenders first. string: A to Z. first_seen: newest first.

Enum values:
score
contention
string
first_seen
Default: score
limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​RoundString[] · required
next_cursor
​string | null · required

Null on the last page.

total
​integer · min: 0 · required

Items across all pages.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.


Get a 2026 round string

GET
https://api.namedesk.app
/v1/stats/strings/{string}

One string, by its A-label.

Get a 2026 round string › path Parameters

string
​string · required

The A-label, lower case.

Get a 2026 round string › Responses

The string.

A string in the 2026 round: applied for, named as a backup, or claimed and abandoned. 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.
string
​string · required

The A-label.

round
​integer · enum · required
Enum values:
2026
status
​string · enum · required

The furthest stage any of its applications has reached.

Enum values:
catalogued
rumored
announced
confirmed
ghost
retracted
withdrawn
in-contention
applications
​integer · min: 0 · required

Applications for this string. Only an application live on ICANN's list counts as an application: confirmed, in-contention, delegated, sunrise, launched.

contention
​integer · min: 0 · required

How many applicants are pursuing it. Two or more means contested.

first_seen
​string · date · required

The day namedesk first listed the string.

​object[] · required

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.

unicode
​string

IDN only: the native-script form.

category
​string · enum

The AI assessment's leading category once the string is assessed. Absent when not known.

Enum values:
ai-tech
crypto
commerce
geo
brand
culture
infra
other
score
​integer · min: 1 · max: 100

The 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.

verdict
​string

The assessment's one-sentence verdict. Absent until the string is assessed.

​RoundComp[]

Only on the single-string read: the AI's comparables from the 2012 round, closest first. Absent when the string has none.

url
​string · uri

The string's page on namedesk.app. Absent for the few strings without a page.

​StatsMeta

On the top-level object of a response only.


List 2026 round applicants

GET
https://api.namedesk.app
/v1/stats/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).

List 2026 round applicants › query Parameters

abandoned
​string · enum

true: list the companies whose every claim was abandoned (announced, not on ICANN's list) instead of the applicants.

Enum values:
false
true
Default: false
sort
​string · enum

applications: most first. name: A to Z.

Enum values:
applications
name
Default: applications
limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​RoundApplicant[] · required
next_cursor
​string | null · required

Null on the last page.

total
​integer · min: 0 · required

Items across all pages.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.


Get a 2026 round applicant

GET
https://api.namedesk.app
/v1/stats/applicants/{id}

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.

Get a 2026 round applicant › path Parameters

id
​string · pattern: ^[0-9a-f]{8}-[0-9a-f… · required

Get a 2026 round applicant › Responses

The applicant.

An applicant in the 2026 round: a company, counted once however many legal entities it applied through (`legal_entities`). In the list of abandoned applicants, a company whose every claim was abandoned.
id
​string · pattern: ^[0-9a-f]{8}-[0-9a-f… · required

Our 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.

name
​string · required

The company.

applications
​integer · min: 0 · required

Its 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.

​object[] · required

The legal entities the company applied through, most applications first.

website
​string

The company's website, when known.

​object[]

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.

url
​string · uri

The 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.

​StatsMeta

On the top-level object of a response only.


An applicant's 2026 round applications

GET
https://api.namedesk.app
/v1/stats/applicants/{id}/applications

Every application by one applicant, over all its legal entities.

An applicant's 2026 round applications › path Parameters

id
​string · pattern: ^[0-9a-f]{8}-[0-9a-f… · required

An applicant's 2026 round applications › query Parameters

status
​string

One or more statuses, comma-joined.

category
​string

One or more categories, comma-joined: ai-tech, crypto, commerce, geo, brand, culture, infra, other.

sort
​string · enum

announced: newest announcement first, applications with no announcement date last. string: A to Z. contention: most contested first.

Enum values:
announced
string
contention
Default: announced
limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​RoundApplication[] · required
next_cursor
​string | null · required

Null on the last page.

total
​integer · min: 0 · required

Items across all pages.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.


2026 round changes

GET
https://api.namedesk.app
/v1/stats/changes

Every change to the round data, oldest first: a new application, a status change, a correction or a note.

2026 round changes › query Parameters

from
​string · date

First day, YYYY-MM-DD.

to
​string · date

Last day, YYYY-MM-DD.

range
​string · enum

How far back from to when from is not given; all is up to five years.

Enum values:
30d
90d
1y
all
Default: 90d
limit
​integer · min: 1 · max: 1000

Page size, 1 to 1000. Defaults to 100.

Default: 100
cursor
​string

The 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.

​RoundChange[] · required
next_cursor
​string | null · required

Null on the last page.

​object · required

The parameters as resolved: defaults filled in, bounds clamped.

​StatsMeta · required

On every stats response.

​StatsBounds

The first and last points a series has, whatever range was asked for.


The 2026 round

GET
https://api.namedesk.app
/v1/stats/round/{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.

The 2026 round › path Parameters

round
​string · enum · required
Enum values:
2026

The 2026 round › Responses

The round.

The 2026 new gTLD round at a glance.
round
​integer · enum · required
Enum values:
2026
phase
​string · enum · required

Where 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.

Enum values:
before_reveal
revealed
replacement_period
awaiting_confirmation
objections
evaluation
​RoundMilestone[] · required
​object · required
revealed
​boolean · required

True once ICANN's published list is in the API.

url
​string · uri · required
​StatsMeta

On the top-level object of a response only.