TLD Bench MCP
A remote MCP server providing read-only tools for domain name price comparison, availability checking, and registrar information across top registrars. It allows agents to query registration, renewal, and transfer costs, check name availability via RDAP/WHOIS, and retrieve price history without requiring an API key.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://tldbench.com/mcpWhat its tools do
10 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to tldbench.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Compare domain extension prices across registrars
- Check availability of specific domain names
- Retrieve price history for TLDs
- Find the cheapest registrar for domain registration
Source and maintenance
Protocol and capabilities
- Server
- tldbench 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 10 advertised
- Resources
- 5 advertised
- Resource templates
- 2 advertised
- Prompts
- 1 advertised
{
"tools": {},
"prompts": {},
"resources": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
10 advertised
compare_tld_prices — Compare prices for an extension
Use this when the user asks what an extension costs or where it is cheapest. Returns every registrar's register, renew, transfer and restore prices for one TLD, ranked by the N-year cost of ownership (default 3 years), with each price's source and date.
{
"type": "object",
"required": [
"tld"
],
"properties": {
"tld": {
"type": "string",
"examples": [
"io"
],
"maxLength": 253,
"minLength": 1,
"description": "an extension: com, .io, co.uk or рф"
},
"sort": {
"enum": [
"total",
"register",
"renew",
"transfer"
],
"type": "string",
"default": "total",
"description": "rank by the N-year total (default), or by one price"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 200,
"minimum": 1,
"description": "offers returned, cheapest first (default 20)"
},
"years": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1,
"description": "horizon for totals, 1-10 years (default 3)"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "ISO 4217 currency for prices (default USD); converted at the ECB's daily rate, disclosed in `fx`"
},
"registrars": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "a registrar's id (porkbun), name (Porkbun) or IANA id (1861)"
},
"maxItems": 50,
"description": "only these registrars"
},
"include_stale": {
"type": "boolean",
"default": true,
"description": "include prices not confirmed for 3x their source's cadence (marked stale)"
},
"include_resellers": {
"type": "boolean",
"default": false,
"description": "include registrars whose prices are a reseller account's tier (pricing_tier reseller, e.g. eNom); default false"
},
"include_limited_promos": {
"type": "boolean",
"default": false,
"description": "count limited promotions (one per customer, first-time customers only) in totals and rankings; default false: they are listed and flagged promo_limited, but year 1 is priced at the regular price"
}
}
}{
"type": "object",
"required": [
"as_of",
"currency",
"fx",
"tld",
"years",
"sort",
"offers",
"stats",
"offers_total",
"url"
],
"properties": {
"fx": {
"anyOf": [
{
"type": "object",
"required": [
"date",
"source",
"rates"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
],
"description": "the date of the primary rates (ECB reference rates)"
},
"rates": {
"type": "object",
"description": "every rate used in this response, by native currency",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"required": [
"rate",
"date",
"source"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
"rate": {
"type": "number",
"description": "units of the response currency per unit of this currency"
},
"source": {
"type": "string"
}
}
}
},
"source": {
"type": "string",
"examples": [
"European Central Bank euro foreign exchange reference rates"
]
}
}
},
{
"type": "null"
}
],
"description": "How converted prices were converted; null when nothing needed converting."
},
"tld": {
"type": "string"
},
"url": {
"type": "string",
"description": "the page on tldbench.com with the full comparison"
},
"sort": {
"enum": [
"total",
"register",
"renew",
"transfer"
],
"type": "string"
},
"as_of": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "when the newest price in this response was collected"
},
"stats": {
"type": "object",
"required": [
"registrars",
"min_register",
"median_renew",
"max_renew"
],
"properties": {
"max_renew": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
]
},
"registrars": {
"type": "integer"
},
"median_renew": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
]
},
"min_register": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "a limited promotion counts at its regular price"
},
"median_register": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
]
}
}
},
"years": {
"type": "integer"
},
"offers": {
"type": "array",
"items": {
"type": "object",
"required": [
"registrar",
"tld",
"register",
"renew",
"transfer",
"restore",
"min_years",
"max_years",
"includes",
"vat_included",
"totals",
"observed_at",
"source",
"stale"
],
"properties": {
"tld": {
"type": "string",
"examples": [
"com",
"co.uk"
],
"description": "the extension"
},
"renew": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"regular",
"promo",
"promo_ends_at",
"promo_conditions",
"native"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price"
},
"promo": {
"type": "boolean",
"description": "price is a promotion (first year only, or until promo_ends_at)"
},
"coupon": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"price",
"saving",
"first_year_only",
"new_customers_only",
"max_per_customer",
"ends_at",
"last_seen_at",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "this price with the code (year 1, or the one operation it covers)"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"source_url": {
"type": "string"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time we saw the code at its source; codes are not tested at checkout"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "The coupon code that lowers this price most, as the registrar's own source lists it. Seen at the source, not tested at checkout. Never part of `price`, the totals or any ranking."
},
{
"type": "null"
}
],
"description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
},
"scheduled": {
"anyOf": [
{
"type": "object",
"required": [
"regular",
"from"
],
"properties": {
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"regular": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "a change of the regular per-year price the source has announced, and when it takes effect"
},
"term_years": {
"type": "integer",
"description": "the shortest term this operation is sold for, in years (2 for a .ai registration, or a transfer that adds 2 years); price is per year, so the operation costs price x term_years"
},
"promo_years": {
"type": "integer",
"description": "the promotion covers the first N years of the term (default 1)"
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "the promotion is limited: capped per customer or for first-time / new customers only. It is shown, but totals, rankings and cheapest use the regular price instead (include_limited_promos=true counts it)"
},
"promo_inferred": {
"type": "boolean",
"description": "the source marks no promotion, but this register price is below the renewal: we treat it as a first-year price whose regular price is unknown"
},
"promo_conditions": {
"type": [
"string",
"null"
],
"description": "the source's conditions for the promotion, as text"
}
}
},
{
"type": "null"
}
]
},
"stale": {
"type": "boolean",
"description": "not confirmed for 3x the source's collection interval"
},
"source": {
"type": "object",
"required": [
"id",
"kind",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": "string",
"description": "where the price was read"
},
"kind": {
"enum": [
"api",
"price_list",
"page",
"mirror"
],
"type": "string",
"description": "api: the registrar's own price API; price_list: a file or JSON the registrar publishes; page: its price page; mirror: a third party's copy of the registrar's prices"
}
}
},
"totals": {
"anyOf": [
{
"type": "object",
"required": [
"years",
"years_paid",
"start",
"first_payment",
"total",
"per_year",
"promo_applied"
],
"properties": {
"start": {
"enum": [
"register",
"transfer"
],
"type": "string"
},
"total": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "first payment plus every later year at the regular renew price (never a renewal promotion)"
},
"years": {
"type": "integer",
"description": "the horizon asked for (?years=)"
},
"per_year": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "total / years_paid"
},
"breakdown": {
"type": "array",
"items": {
"type": "object",
"required": [
"year",
"amount",
"kind",
"promo"
],
"properties": {
"kind": {
"enum": [
"register",
"transfer",
"renew"
],
"type": "string"
},
"year": {
"type": "integer"
},
"promo": {
"type": "boolean"
},
"amount": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
"description": "year by year (in /v1/cheapest)"
},
"estimated": {
"type": "boolean",
"description": "a year whose regular price is unknown was priced at the regular renewal: the total is an estimate"
},
"years_paid": {
"type": "integer",
"description": "years paid for: at least min_years when starting with a registration"
},
"first_payment": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "charged at checkout: year 1 (promotional price if one runs) plus the rest of the minimum term at the regular price; for a transfer, the transfer price x its term"
},
"promo_applied": {
"type": "boolean",
"description": "year 1 is a promotional price"
},
"limited_promo_skipped": {
"type": "boolean",
"description": "a limited promotion runs (per customer, first-time customers) and was not counted: year 1 is the regular price"
}
},
"description": "The cost of owning the domain for `years` years (packages/core computeTco)."
},
{
"type": "null"
}
],
"description": "null when the register or renew price is unknown"
},
"restore": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"regular",
"promo",
"promo_ends_at",
"promo_conditions",
"native"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price"
},
"promo": {
"type": "boolean",
"description": "price is a promotion (first year only, or until promo_ends_at)"
},
"coupon": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"price",
"saving",
"first_year_only",
"new_customers_only",
"max_per_customer",
"ends_at",
"last_seen_at",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "this price with the code (year 1, or the one operation it covers)"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"source_url": {
"type": "string"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time we saw the code at its source; codes are not tested at checkout"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "The coupon code that lowers this price most, as the registrar's own source lists it. Seen at the source, not tested at checkout. Never part of `price`, the totals or any ranking."
},
{
"type": "null"
}
],
"description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
},
"scheduled": {
"anyOf": [
{
"type": "object",
"required": [
"regular",
"from"
],
"properties": {
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"regular": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "a change of the regular per-year price the source has announced, and when it takes effect"
},
"term_years": {
"type": "integer",
"description": "the shortest term this operation is sold for, in years (2 for a .ai registration, or a transfer that adds 2 years); price is per year, so the operation costs price x term_years"
},
"promo_years": {
"type": "integer",
"description": "the promotion covers the first N years of the term (default 1)"
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "the promotion is limited: capped per customer or for first-time / new customers only. It is shown, but totals, rankings and cheapest use the regular price instead (include_limited_promos=true counts it)"
},
"promo_inferred": {
"type": "boolean",
"description": "the source marks no promotion, but this register price is below the renewal: we treat it as a first-year price whose regular price is unknown"
},
"promo_conditions": {
"type": [
"string",
"null"
],
"description": "the source's conditions for the promotion, as text"
}
}
},
{
"type": "null"
}
]
},
"includes": {
"type": "object",
"required": [
"whois_privacy",
"icann_fee"
],
"properties": {
"icann_fee": {
"type": [
"boolean",
"null"
]
},
"whois_privacy": {
"type": [
"boolean",
"null"
]
}
}
},
"register": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"regular",
"promo",
"promo_ends_at",
"promo_conditions",
"native"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price"
},
"promo": {
"type": "boolean",
"description": "price is a promotion (first year only, or until promo_ends_at)"
},
"coupon": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"price",
"saving",
"first_year_only",
"new_customers_only",
"max_per_customer",
"ends_at",
"last_seen_at",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "this price with the code (year 1, or the one operation it covers)"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"source_url": {
"type": "string"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time we saw the code at its source; codes are not tested at checkout"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "The coupon code that lowers this price most, as the registrar's own source lists it. Seen at the source, not tested at checkout. Never part of `price`, the totals or any ranking."
},
{
"type": "null"
}
],
"description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
},
"scheduled": {
"anyOf": [
{
"type": "object",
"required": [
"regular",
"from"
],
"properties": {
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"regular": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "a change of the regular per-year price the source has announced, and when it takes effect"
},
"term_years": {
"type": "integer",
"description": "the shortest term this operation is sold for, in years (2 for a .ai registration, or a transfer that adds 2 years); price is per year, so the operation costs price x term_years"
},
"promo_years": {
"type": "integer",
"description": "the promotion covers the first N years of the term (default 1)"
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "the promotion is limited: capped per customer or for first-time / new customers only. It is shown, but totals, rankings and cheapest use the regular price instead (include_limited_promos=true counts it)"
},
"promo_inferred": {
"type": "boolean",
"description": "the source marks no promotion, but this register price is below the renewal: we treat it as a first-year price whose regular price is unknown"
},
"promo_conditions": {
"type": [
"string",
"null"
],
"description": "the source's conditions for the promotion, as text"
}
}
},
{
"type": "null"
}
]
},
"transfer": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"regular",
"promo",
"promo_ends_at",
"promo_conditions",
"native"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price"
},
"promo": {
"type": "boolean",
"description": "price is a promotion (first year only, or until promo_ends_at)"
},
"coupon": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"price",
"saving",
"first_year_only",
"new_customers_only",
"max_per_customer",
"ends_at",
"last_seen_at",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "this price with the code (year 1, or the one operation it covers)"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"source_url": {
"type": "string"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time we saw the code at its source; codes are not tested at checkout"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "The coupon code that lowers this price most, as the registrar's own source lists it. Seen at the source, not tested at checkout. Never part of `price`, the totals or any ranking."
},
{
"type": "null"
}
],
"description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
},
"scheduled": {
"anyOf": [
{
"type": "object",
"required": [
"regular",
"from"
],
"properties": {
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"regular": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "a change of the regular per-year price the source has announced, and when it takes effect"
},
"term_years": {
"type": "integer",
"description": "the shortest term this operation is sold for, in years (2 for a .ai registration, or a transfer that adds 2 years); price is per year, so the operation costs price x term_years"
},
"promo_years": {
"type": "integer",
"description": "the promotion covers the first N years of the term (default 1)"
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "the promotion is limited: capped per customer or for first-time / new customers only. It is shown, but totals, rankings and cheapest use the regular price instead (include_limited_promos=true counts it)"
},
"promo_inferred": {
"type": "boolean",
"description": "the source marks no promotion, but this register price is below the renewal: we treat it as a first-year price whose regular price is unknown"
},
"promo_conditions": {
"type": [
"string",
"null"
],
"description": "the source's conditions for the promotion, as text"
}
}
},
{
"type": "null"
}
]
},
"max_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"min_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "the shortest registration term (2 for .ai at most registrars)"
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
},
"observed_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time the source confirmed this price"
},
"vat_included": {
"type": [
"boolean",
"null"
]
}
},
"description": "One registrar's prices for one extension."
}
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
},
"offers_total": {
"type": "integer",
"description": "offers before `limit` and `registrars`"
}
}
}{
"title": "Compare prices for an extension",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}cheapest_registrar — Cheapest registrar
Use this when the user wants the single best place to buy (or transfer) one or more extensions for N years. Ranks by the total cost of ownership, not the first-year promotion; returns the winner with a year-by-year breakdown, three runners-up and caveats. Up to 20 extensions in one call.
{
"type": "object",
"required": [
"tlds"
],
"properties": {
"tlds": {
"type": "array",
"items": {
"type": "string",
"examples": [
"io"
],
"maxLength": 253,
"minLength": 1,
"description": "an extension: com, .io, co.uk or рф"
},
"maxItems": 20,
"minItems": 1,
"description": "1-20 extensions"
},
"years": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1,
"description": "horizon for totals, 1-10 years (default 3)"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "ISO 4217 currency for prices (default USD); converted at the ECB's daily rate, disclosed in `fx`"
},
"operation": {
"enum": [
"register",
"transfer"
],
"type": "string",
"default": "register",
"description": "start with a new registration (default) or a transfer in"
},
"include_resellers": {
"type": "boolean",
"default": false,
"description": "include registrars whose prices are a reseller account's tier (pricing_tier reseller, e.g. eNom); default false"
},
"exclude_registrars": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "registrar ids to leave out"
},
"include_limited_promos": {
"type": "boolean",
"default": false,
"description": "count limited promotions (one per customer, first-time customers only) in totals and rankings; default false: they are listed and flagged promo_limited, but year 1 is priced at the regular price"
}
}
}{
"type": "object",
"required": [
"as_of",
"currency",
"fx",
"years",
"operation",
"results",
"urls"
],
"properties": {
"fx": {
"anyOf": [
{
"type": "object",
"required": [
"date",
"source",
"rates"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
],
"description": "the date of the primary rates (ECB reference rates)"
},
"rates": {
"type": "object",
"description": "every rate used in this response, by native currency",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"required": [
"rate",
"date",
"source"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
"rate": {
"type": "number",
"description": "units of the response currency per unit of this currency"
},
"source": {
"type": "string"
}
}
}
},
"source": {
"type": "string",
"examples": [
"European Central Bank euro foreign exchange reference rates"
]
}
}
},
{
"type": "null"
}
],
"description": "How converted prices were converted; null when nothing needed converting."
},
"urls": {
"type": "object",
"description": "each extension's page on tldbench.com",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"as_of": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "when the newest price in this response was collected"
},
"years": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"tld",
"best",
"runners_up",
"caveats"
],
"properties": {
"tld": {
"type": "string"
},
"best": {
"anyOf": [
{
"type": "object",
"required": [
"registrar",
"tld",
"register",
"renew",
"transfer",
"restore",
"min_years",
"max_years",
"includes",
"vat_included",
"totals",
"observed_at",
"source",
"stale"
],
"properties": {
"tld": {
"type": "string",
"examples": [
"com",
"co.uk"
],
"description": "the extension"
},
"renew": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"regular",
"promo",
"promo_ends_at",
"promo_conditions",
"native"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price"
},
"promo": {
"type": "boolean",
"description": "price is a promotion (first year only, or until promo_ends_at)"
},
"coupon": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"price",
"saving",
"first_year_only",
"new_customers_only",
"max_per_customer",
"ends_at",
"last_seen_at",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "this price with the code (year 1, or the one operation it covers)"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"source_url": {
"type": "string"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time we saw the code at its source; codes are not tested at checkout"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "The coupon code that lowers this price most, as the registrar's own source lists it. Seen at the source, not tested at checkout. Never part of `price`, the totals or any ranking."
},
{
"type": "null"
}
],
"description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
},
"scheduled": {
"anyOf": [
{
"type": "object",
"required": [
"regular",
"from"
],
"properties": {
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"regular": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "a change of the regular per-year price the source has announced, and when it takes effect"
},
"term_years": {
"type": "integer",
"description": "the shortest term this operation is sold for, in years (2 for a .ai registration, or a transfer that adds 2 years); price is per year, so the operation costs price x term_years"
},
"promo_years": {
"type": "integer",
"description": "the promotion covers the first N years of the term (default 1)"
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "the promotion is limited: capped per customer or for first-time / new customers only. It is shown, but totals, rankings and cheapest use the regular price instead (include_limited_promos=true counts it)"
},
"promo_inferred": {
"type": "boolean",
"description": "the source marks no promotion, but this register price is below the renewal: we treat it as a first-year price whose regular price is unknown"
},
"promo_conditions": {
"type": [
"string",
"null"
],
"description": "the source's conditions for the promotion, as text"
}
}
},
{
"type": "null"
}
]
},
"stale": {
"type": "boolean",
"description": "not confirmed for 3x the source's collection interval"
},
"source": {
"type": "object",
"required": [
"id",
"kind",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": "string",
"description": "where the price was read"
},
"kind": {
"enum": [
"api",
"price_list",
"page",
"mirror"
],
"type": "string",
"description": "api: the registrar's own price API; price_list: a file or JSON the registrar publishes; page: its price page; mirror: a third party's copy of the registrar's prices"
}
}
},
"totals": {
"anyOf": [
{
"type": "object",
"required": [
"years",
"years_paid",
"start",
"first_payment",
"total",
"per_year",
"promo_applied"
],
"properties": {
"start": {
"enum": [
"register",
"transfer"
],
"type": "string"
},
"total": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "first payment plus every later year at the regular renew price (never a renewal promotion)"
},
"years": {
"type": "integer",
"description": "the horizon asked for (?years=)"
},
"per_year": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "total / years_paid"
},
"breakdown": {
"type": "array",
"items": {
"type": "object",
"required": [
"year",
"amount",
"kind",
"promo"
],
"properties": {
"kind": {
"enum": [
"register",
"transfer",
"renew"
],
"type": "string"
},
"year": {
"type": "integer"
},
"promo": {
"type": "boolean"
},
"amount": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
"description": "year by year (in /v1/cheapest)"
},
"estimated": {
"type": "boolean",
"description": "a year whose regular price is unknown was priced at the regular renewal: the total is an estimate"
},
"years_paid": {
"type": "integer",
"description": "years paid for: at least min_years when starting with a registration"
},
"first_payment": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "charged at checkout: year 1 (promotional price if one runs) plus the rest of the minimum term at the regular price; for a transfer, the transfer price x its term"
},
"promo_applied": {
"type": "boolean",
"description": "year 1 is a promotional price"
},
"limited_promo_skipped": {
"type": "boolean",
"description": "a limited promotion runs (per customer, first-time customers) and was not counted: year 1 is the regular price"
}
},
"description": "The cost of owning the domain for `years` years (packages/core computeTco)."
},
{
"type": "null"
}
],
"description": "null when the register or renew price is unknown"
},
"restore": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"regular",
"promo",
"promo_ends_at",
"promo_conditions",
"native"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price"
},
"promo": {
"type": "boolean",
"description": "price is a promotion (first year only, or until promo_ends_at)"
},
"coupon": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"price",
"saving",
"first_year_only",
"new_customers_only",
"max_per_customer",
"ends_at",
"last_seen_at",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "this price with the code (year 1, or the one operation it covers)"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"source_url": {
"type": "string"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time we saw the code at its source; codes are not tested at checkout"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "The coupon code that lowers this price most, as the registrar's own source lists it. Seen at the source, not tested at checkout. Never part of `price`, the totals or any ranking."
},
{
"type": "null"
}
],
"description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
},
"scheduled": {
"anyOf": [
{
"type": "object",
"required": [
"regular",
"from"
],
"properties": {
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"regular": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "a change of the regular per-year price the source has announced, and when it takes effect"
},
"term_years": {
"type": "integer",
"description": "the shortest term this operation is sold for, in years (2 for a .ai registration, or a transfer that adds 2 years); price is per year, so the operation costs price x term_years"
},
"promo_years": {
"type": "integer",
"description": "the promotion covers the first N years of the term (default 1)"
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "the promotion is limited: capped per customer or for first-time / new customers only. It is shown, but totals, rankings and cheapest use the regular price instead (include_limited_promos=true counts it)"
},
"promo_inferred": {
"type": "boolean",
"description": "the source marks no promotion, but this register price is below the renewal: we treat it as a first-year price whose regular price is unknown"
},
"promo_conditions": {
"type": [
"string",
"null"
],
"description": "the source's conditions for the promotion, as text"
}
}
},
{
"type": "null"
}
]
},
"includes": {
"type": "object",
"required": [
"whois_privacy",
"icann_fee"
],
"properties": {
"icann_fee": {
"type": [
"boolean",
"null"
]
},
"whois_privacy": {
"type": [
"boolean",
"null"
]
}
}
},
"register": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"regular",
"promo",
"promo_ends_at",
"promo_conditions",
"native"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price"
},
"promo": {
"type": "boolean",
"description": "price is a promotion (first year only, or until promo_ends_at)"
},
"coupon": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"price",
"saving",
"first_year_only",
"new_customers_only",
"max_per_customer",
"ends_at",
"last_seen_at",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "this price with the code (year 1, or the one operation it covers)"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"source_url": {
"type": "string"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time we saw the code at its source; codes are not tested at checkout"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "The coupon code that lowers this price most, as the registrar's own source lists it. Seen at the source, not tested at checkout. Never part of `price`, the totals or any ranking."
},
{
"type": "null"
}
],
"description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
},
"scheduled": {
"anyOf": [
{
"type": "object",
"required": [
"regular",
"from"
],
"properties": {
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"regular": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "a change of the regular per-year price the source has announced, and when it takes effect"
},
"term_years": {
"type": "integer",
"description": "the shortest term this operation is sold for, in years (2 for a .ai registration, or a transfer that adds 2 years); price is per year, so the operation costs price x term_years"
},
"promo_years": {
"type": "integer",
"description": "the promotion covers the first N years of the term (default 1)"
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "the promotion is limited: capped per customer or for first-time / new customers only. It is shown, but totals, rankings and cheapest use the regular price instead (include_limited_promos=true counts it)"
},
"promo_inferred": {
"type": "boolean",
"description": "the source marks no promotion, but this register price is below the renewal: we treat it as a first-year price whose regular price is unknown"
},
"promo_conditions": {
"type": [
"string",
"null"
],
"description": "the source's conditions for the promotion, as text"
}
}
},
{
"type": "null"
}
]
},
"transfer": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"regular",
"promo",
"promo_ends_at",
"promo_conditions",
"native"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price"
},
"promo": {
"type": "boolean",
"description": "price is a promotion (first year only, or until promo_ends_at)"
},
"coupon": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"price",
"saving",
"first_year_only",
"new_customers_only",
"max_per_customer",
"ends_at",
"last_seen_at",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "this price with the code (year 1, or the one operation it covers)"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"source_url": {
"type": "string"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time we saw the code at its source; codes are not tested at checkout"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "The coupon code that lowers this price most, as the registrar's own source lists it. Seen at the source, not tested at checkout. Never part of `price`, the totals or any ranking."
},
{
"type": "null"
}
],
"description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
},
"scheduled": {
"anyOf": [
{
"type": "object",
"required": [
"regular",
"from"
],
"properties": {
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"regular": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "a change of the regular per-year price the source has announced, and when it takes effect"
},
"term_years": {
"type": "integer",
"description": "the shortest term this operation is sold for, in years (2 for a .ai registration, or a transfer that adds 2 years); price is per year, so the operation costs price x term_years"
},
"promo_years": {
"type": "integer",
"description": "the promotion covers the first N years of the term (default 1)"
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "the promotion is limited: capped per customer or for first-time / new customers only. It is shown, but totals, rankings and cheapest use the regular price instead (include_limited_promos=true counts it)"
},
"promo_inferred": {
"type": "boolean",
"description": "the source marks no promotion, but this register price is below the renewal: we treat it as a first-year price whose regular price is unknown"
},
"promo_conditions": {
"type": [
"string",
"null"
],
"description": "the source's conditions for the promotion, as text"
}
}
},
{
"type": "null"
}
]
},
"max_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"min_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "the shortest registration term (2 for .ai at most registrars)"
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
},
"observed_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time the source confirmed this price"
},
"vat_included": {
"type": [
"boolean",
"null"
]
}
},
"description": "One registrar's prices for one extension."
},
{
"type": "null"
}
],
"description": "the lowest total; its totals carry the year-by-year breakdown"
},
"caveats": {
"type": "array",
"items": {
"type": "string"
},
"description": "for example a minimum term or a first-year promotion"
},
"runners_up": {
"type": "array",
"items": {
"type": "object",
"required": [
"registrar",
"tld",
"register",
"renew",
"transfer",
"restore",
"min_years",
"max_years",
"includes",
"vat_included",
"totals",
"observed_at",
"source",
"stale"
],
"properties": {
"tld": {
"type": "string",
"examples": [
"com",
"co.uk"
],
"description": "the extension"
},
"renew": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"regular",
"promo",
"promo_ends_at",
"promo_conditions",
"native"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price"
},
"promo": {
"type": "boolean",
"description": "price is a promotion (first year only, or until promo_ends_at)"
},
"coupon": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"price",
"saving",
"first_year_only",
"new_customers_only",
"max_per_customer",
"ends_at",
"last_seen_at",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "this price with the code (year 1, or the one operation it covers)"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"source_url": {
"type": "string"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time we saw the code at its source; codes are not tested at checkout"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "The coupon code that lowers this price most, as the registrar's own source lists it. Seen at the source, not tested at checkout. Never part of `price`, the totals or any ranking."
},
{
"type": "null"
}
],
"description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
},
"scheduled": {
"anyOf": [
{
"type": "object",
"required": [
"regular",
"from"
],
"properties": {
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"regular": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "a change of the regular per-year price the source has announced, and when it takes effect"
},
"term_years": {
"type": "integer",
"description": "the shortest term this operation is sold for, in years (2 for a .ai registration, or a transfer that adds 2 years); price is per year, so the operation costs price x term_years"
},
"promo_years": {
"type": "integer",
"description": "the promotion covers the first N years of the term (default 1)"
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "the promotion is limited: capped per customer or for first-time / new customers only. It is shown, but totals, rankings and cheapest use the regular price instead (include_limited_promos=true counts it)"
},
"promo_inferred": {
"type": "boolean",
"description": "the source marks no promotion, but this register price is below the renewal: we treat it as a first-year price whose regular price is unknown"
},
"promo_conditions": {
"type": [
"string",
"null"
],
"description": "the source's conditions for the promotion, as text"
}
}
},
{
"type": "null"
}
]
},
"stale": {
"type": "boolean",
"description": "not confirmed for 3x the source's collection interval"
},
"source": {
"type": "object",
"required": [
"id",
"kind",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": "string",
"description": "where the price was read"
},
"kind": {
"enum": [
"api",
"price_list",
"page",
"mirror"
],
"type": "string",
"description": "api: the registrar's own price API; price_list: a file or JSON the registrar publishes; page: its price page; mirror: a third party's copy of the registrar's prices"
}
}
},
"totals": {
"anyOf": [
{
"type": "object",
"required": [
"years",
"years_paid",
"start",
"first_payment",
"total",
"per_year",
"promo_applied"
],
"properties": {
"start": {
"enum": [
"register",
"transfer"
],
"type": "string"
},
"total": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "first payment plus every later year at the regular renew price (never a renewal promotion)"
},
"years": {
"type": "integer",
"description": "the horizon asked for (?years=)"
},
"per_year": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "total / years_paid"
},
"breakdown": {
"type": "array",
"items": {
"type": "object",
"required": [
"year",
"amount",
"kind",
"promo"
],
"properties": {
"kind": {
"enum": [
"register",
"transfer",
"renew"
],
"type": "string"
},
"year": {
"type": "integer"
},
"promo": {
"type": "boolean"
},
"amount": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
"description": "year by year (in /v1/cheapest)"
},
"estimated": {
"type": "boolean",
"description": "a year whose regular price is unknown was priced at the regular renewal: the total is an estimate"
},
"years_paid": {
"type": "integer",
"description": "years paid for: at least min_years when starting with a registration"
},
"first_payment": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "charged at checkout: year 1 (promotional price if one runs) plus the rest of the minimum term at the regular price; for a transfer, the transfer price x its term"
},
"promo_applied": {
"type": "boolean",
"description": "year 1 is a promotional price"
},
"limited_promo_skipped": {
"type": "boolean",
"description": "a limited promotion runs (per customer, first-time customers) and was not counted: year 1 is the regular price"
}
},
"description": "The cost of owning the domain for `years` years (packages/core computeTco)."
},
{
"type": "null"
}
],
"description": "null when the register or renew price is unknown"
},
"restore": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"regular",
"promo",
"promo_ends_at",
"promo_conditions",
"native"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price"
},
"promo": {
"type": "boolean",
"description": "price is a promotion (first year only, or until promo_ends_at)"
},
"coupon": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"price",
"saving",
"first_year_only",
"new_customers_only",
"max_per_customer",
"ends_at",
"last_seen_at",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "this price with the code (year 1, or the one operation it covers)"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"source_url": {
"type": "string"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time we saw the code at its source; codes are not tested at checkout"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "The coupon code that lowers this price most, as the registrar's own source lists it. Seen at the source, not tested at checkout. Never part of `price`, the totals or any ranking."
},
{
"type": "null"
}
],
"description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
},
"scheduled": {
"anyOf": [
{
"type": "object",
"required": [
"regular",
"from"
],
"properties": {
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"regular": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "a change of the regular per-year price the source has announced, and when it takes effect"
},
"term_years": {
"type": "integer",
"description": "the shortest term this operation is sold for, in years (2 for a .ai registration, or a transfer that adds 2 years); price is per year, so the operation costs price x term_years"
},
"promo_years": {
"type": "integer",
"description": "the promotion covers the first N years of the term (default 1)"
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "the promotion is limited: capped per customer or for first-time / new customers only. It is shown, but totals, rankings and cheapest use the regular price instead (include_limited_promos=true counts it)"
},
"promo_inferred": {
"type": "boolean",
"description": "the source marks no promotion, but this register price is below the renewal: we treat it as a first-year price whose regular price is unknown"
},
"promo_conditions": {
"type": [
"string",
"null"
],
"description": "the source's conditions for the promotion, as text"
}
}
},
{
"type": "null"
}
]
},
"includes": {
"type": "object",
"required": [
"whois_privacy",
"icann_fee"
],
"properties": {
"icann_fee": {
"type": [
"boolean",
"null"
]
},
"whois_privacy": {
"type": [
"boolean",
"null"
]
}
}
},
"register": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"regular",
"promo",
"promo_ends_at",
"promo_conditions",
"native"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price"
},
"promo": {
"type": "boolean",
"description": "price is a promotion (first year only, or until promo_ends_at)"
},
"coupon": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"price",
"saving",
"first_year_only",
"new_customers_only",
"max_per_customer",
"ends_at",
"last_seen_at",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "this price with the code (year 1, or the one operation it covers)"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"source_url": {
"type": "string"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time we saw the code at its source; codes are not tested at checkout"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "The coupon code that lowers this price most, as the registrar's own source lists it. Seen at the source, not tested at checkout. Never part of `price`, the totals or any ranking."
},
{
"type": "null"
}
],
"description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
},
"scheduled": {
"anyOf": [
{
"type": "object",
"required": [
"regular",
"from"
],
"properties": {
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"regular": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "a change of the regular per-year price the source has announced, and when it takes effect"
},
"term_years": {
"type": "integer",
"description": "the shortest term this operation is sold for, in years (2 for a .ai registration, or a transfer that adds 2 years); price is per year, so the operation costs price x term_years"
},
"promo_years": {
"type": "integer",
"description": "the promotion covers the first N years of the term (default 1)"
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "the promotion is limited: capped per customer or for first-time / new customers only. It is shown, but totals, rankings and cheapest use the regular price instead (include_limited_promos=true counts it)"
},
"promo_inferred": {
"type": "boolean",
"description": "the source marks no promotion, but this register price is below the renewal: we treat it as a first-year price whose regular price is unknown"
},
"promo_conditions": {
"type": [
"string",
"null"
],
"description": "the source's conditions for the promotion, as text"
}
}
},
{
"type": "null"
}
]
},
"transfer": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"regular",
"promo",
"promo_ends_at",
"promo_conditions",
"native"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price"
},
"promo": {
"type": "boolean",
"description": "price is a promotion (first year only, or until promo_ends_at)"
},
"coupon": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"price",
"saving",
"first_year_only",
"new_customers_only",
"max_per_customer",
"ends_at",
"last_seen_at",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "this price with the code (year 1, or the one operation it covers)"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"source_url": {
"type": "string"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time we saw the code at its source; codes are not tested at checkout"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "The coupon code that lowers this price most, as the registrar's own source lists it. Seen at the source, not tested at checkout. Never part of `price`, the totals or any ranking."
},
{
"type": "null"
}
],
"description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
},
"scheduled": {
"anyOf": [
{
"type": "object",
"required": [
"regular",
"from"
],
"properties": {
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"regular": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "a change of the regular per-year price the source has announced, and when it takes effect"
},
"term_years": {
"type": "integer",
"description": "the shortest term this operation is sold for, in years (2 for a .ai registration, or a transfer that adds 2 years); price is per year, so the operation costs price x term_years"
},
"promo_years": {
"type": "integer",
"description": "the promotion covers the first N years of the term (default 1)"
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "the promotion is limited: capped per customer or for first-time / new customers only. It is shown, but totals, rankings and cheapest use the regular price instead (include_limited_promos=true counts it)"
},
"promo_inferred": {
"type": "boolean",
"description": "the source marks no promotion, but this register price is below the renewal: we treat it as a first-year price whose regular price is unknown"
},
"promo_conditions": {
"type": [
"string",
"null"
],
"description": "the source's conditions for the promotion, as text"
}
}
},
{
"type": "null"
}
]
},
"max_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"min_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "the shortest registration term (2 for .ai at most registrars)"
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
},
"observed_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last time the source confirmed this price"
},
"vat_included": {
"type": [
"boolean",
"null"
]
}
},
"description": "One registrar's prices for one extension."
},
"description": "the next three"
}
}
}
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
},
"operation": {
"enum": [
"register",
"transfer"
],
"type": "string"
}
}
}{
"title": "Cheapest registrar",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}total_cost_of_ownership — Total cost of ownership
Use this when the user compares the long-run cost of several names or extensions, at one registrar or the cheapest. Applies minimum terms and regular renewals; with transfer_after_year it also finds the cheapest registrar to move to later. Up to 20 domains or extensions in one call.
{
"type": "object",
"properties": {
"tlds": {
"type": "array",
"items": {
"type": "string",
"examples": [
"io"
],
"maxLength": 253,
"minLength": 1,
"description": "an extension: com, .io, co.uk or рф"
},
"maxItems": 20,
"minItems": 1,
"description": "1-20 extensions"
},
"years": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1,
"description": "horizon for totals, 1-10 years (default 3)"
},
"domains": {
"type": "array",
"items": {
"type": "string",
"maxLength": 253,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "1-20 domain names (their extensions are priced)"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "ISO 4217 currency for prices (default USD); converted at the ECB's daily rate, disclosed in `fx`"
},
"registrar": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "price at this registrar; default: the cheapest to own"
},
"include_resellers": {
"type": "boolean",
"default": false,
"description": "include registrars whose prices are a reseller account's tier (pricing_tier reseller, e.g. eNom); default false"
},
"transfer_after_year": {
"type": "integer",
"maximum": 9,
"minimum": 1,
"description": "also price moving to the cheapest renewing registrar after this many years"
},
"include_limited_promos": {
"type": "boolean",
"default": false,
"description": "count limited promotions (one per customer, first-time customers only) in totals and rankings; default false: they are listed and flagged promo_limited, but year 1 is priced at the regular price"
}
}
}{
"type": "object",
"required": [
"as_of",
"currency",
"fx",
"years",
"rows"
],
"properties": {
"fx": {
"anyOf": [
{
"type": "object",
"required": [
"date",
"source",
"rates"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
],
"description": "the date of the primary rates (ECB reference rates)"
},
"rates": {
"type": "object",
"description": "every rate used in this response, by native currency",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"required": [
"rate",
"date",
"source"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
"rate": {
"type": "number",
"description": "units of the response currency per unit of this currency"
},
"source": {
"type": "string"
}
}
}
},
"source": {
"type": "string",
"examples": [
"European Central Bank euro foreign exchange reference rates"
]
}
}
},
{
"type": "null"
}
],
"description": "How converted prices were converted; null when nothing needed converting."
},
"rows": {
"type": "array",
"items": {
"type": "object",
"required": [
"input",
"domain",
"tld",
"registrar",
"totals",
"min_years",
"observed_at",
"source",
"stale",
"switch",
"reason",
"url"
],
"properties": {
"tld": {
"type": [
"string",
"null"
]
},
"url": {
"type": [
"string",
"null"
]
},
"input": {
"type": "string",
"description": "the domain or extension as asked"
},
"stale": {
"type": [
"boolean",
"null"
]
},
"domain": {
"type": [
"string",
"null"
]
},
"reason": {
"type": [
"string",
"null"
]
},
"source": {
"anyOf": [
{
"type": "object",
"required": [
"id",
"kind",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": "string",
"description": "where the price was read"
},
"kind": {
"enum": [
"api",
"price_list",
"page",
"mirror"
],
"type": "string",
"description": "api: the registrar's own price API; price_list: a file or JSON the registrar publishes; page: its price page; mirror: a third party's copy of the registrar's prices"
}
}
},
{
"type": "null"
}
]
},
"switch": {
"anyOf": [
{
"type": "object",
"required": [
"after_year",
"to",
"transfer",
"total",
"saving"
],
"properties": {
"to": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
},
"total": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "register at `registrar`, transfer to `to` after `after_year` years, renew there"
},
"saving": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "total without the switch minus total with it"
},
"transfer": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"after_year": {
"type": "integer"
}
}
},
{
"type": "null"
}
],
"description": "transfer_after_year: the cheapest registrar to transfer to, when that saves money"
},
"totals": {
"anyOf": [
{
"type": "object",
"required": [
"years",
"years_paid",
"start",
"first_payment",
"total",
"per_year",
"promo_applied"
],
"properties": {
"start": {
"enum": [
"register",
"transfer"
],
"type": "string"
},
"total": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "first payment plus every later year at the regular renew price (never a renewal promotion)"
},
"years": {
"type": "integer",
"description": "the horizon asked for (?years=)"
},
"per_year": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "total / years_paid"
},
"breakdown": {
"type": "array",
"items": {
"type": "object",
"required": [
"year",
"amount",
"kind",
"promo"
],
"properties": {
"kind": {
"enum": [
"register",
"transfer",
"renew"
],
"type": "string"
},
"year": {
"type": "integer"
},
"promo": {
"type": "boolean"
},
"amount": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
"description": "year by year (in /v1/cheapest)"
},
"estimated": {
"type": "boolean",
"description": "a year whose regular price is unknown was priced at the regular renewal: the total is an estimate"
},
"years_paid": {
"type": "integer",
"description": "years paid for: at least min_years when starting with a registration"
},
"first_payment": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "charged at checkout: year 1 (promotional price if one runs) plus the rest of the minimum term at the regular price; for a transfer, the transfer price x its term"
},
"promo_applied": {
"type": "boolean",
"description": "year 1 is a promotional price"
},
"limited_promo_skipped": {
"type": "boolean",
"description": "a limited promotion runs (per customer, first-time customers) and was not counted: year 1 is the regular price"
}
},
"description": "The cost of owning the domain for `years` years (packages/core computeTco)."
},
{
"type": "null"
}
],
"description": "with the year-by-year breakdown; null when no registrar has both prices"
},
"min_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"registrar": {
"anyOf": [
{
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
},
{
"type": "null"
}
],
"description": "the registrar asked for, else the cheapest to own"
},
"observed_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
}
}
}
},
"as_of": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "when the newest price in this response was collected"
},
"years": {
"type": "integer"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
}
}{
"title": "Total cost of ownership",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}check_availability — Check availability
Use this when the user asks whether specific domain names are free. Checks the registry (RDAP, WHOIS for some ccTLDs) after a DNS pre-check, with an honest unknown, and adds the cheapest registrar's price to own each free name. Up to 50 names in one call.
{
"type": "object",
"required": [
"domains"
],
"properties": {
"mode": {
"enum": [
"fast",
"precise"
],
"type": "string",
"default": "fast",
"description": "fast: a DNS delegation is accepted as proof of registration; precise: always ask the registry (status codes, expiry)"
},
"years": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1,
"description": "horizon for totals, 1-10 years (default 3)"
},
"domains": {
"type": "array",
"items": {
"type": "string",
"maxLength": 253,
"minLength": 1
},
"examples": [
[
"acmeforge.com",
"acmeforge.io"
]
],
"maxItems": 50,
"minItems": 1,
"description": "1-50 full names (example.com, bücher.de)"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "ISO 4217 currency for prices (default USD); converted at the ECB's daily rate, disclosed in `fx`"
},
"with_prices": {
"type": "boolean",
"default": true,
"description": "add the cheapest registrar's price for names that are free"
},
"include_resellers": {
"type": "boolean",
"default": false,
"description": "include registrars whose prices are a reseller account's tier (pricing_tier reseller, e.g. eNom); default false"
},
"include_limited_promos": {
"type": "boolean",
"default": false,
"description": "count limited promotions (one per customer, first-time customers only) in totals and rankings; default false: they are listed and flagged promo_limited, but year 1 is priced at the regular price"
}
}
}{
"type": "object",
"required": [
"as_of",
"currency",
"years",
"results",
"notes"
],
"properties": {
"as_of": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "when this answer was put together"
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"years": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"domain",
"ascii",
"unicode",
"tld",
"status",
"registrable",
"premium_unknown",
"confidence",
"source",
"cached",
"checked_at",
"cache_age_s",
"registry_status",
"expires_at",
"reason",
"cheapest",
"url"
],
"properties": {
"tld": {
"type": [
"string",
"null"
],
"description": "the extension it is registered under (co.uk for example.co.uk)"
},
"url": {
"type": [
"string",
"null"
],
"description": "the extension's page on tldbench.com"
},
"ascii": {
"type": [
"string",
"null"
],
"examples": [
"xn--bcher-kva.de"
],
"description": "the A-label (punycode) form, the canonical spelling"
},
"cached": {
"type": "boolean",
"description": "answered from our cache (available: 10 min, registered: 24 h, 1 h near expiry; unknown is never cached)"
},
"domain": {
"type": "string",
"description": "the name as asked"
},
"reason": {
"type": [
"string",
"null"
],
"description": "why the status is unknown, unsupported or invalid; or a caveat"
},
"source": {
"enum": [
"rdap",
"whois",
"dns",
"policy",
"none"
],
"type": "string"
},
"status": {
"enum": [
"available",
"registered",
"pending_delete",
"redemption",
"unsupported",
"invalid",
"unknown"
],
"type": "string",
"description": "available: the registry has no such name; registered; pending_delete / redemption: registered, in the deletion cycle; unsupported: not sold to the public (a brand TLD, not in the root, no registry lookup possible); invalid: not a domain name; unknown: no registry answered (NOT available)"
},
"unicode": {
"type": [
"string",
"null"
]
},
"cheapest": {
"anyOf": [
{
"type": "object",
"required": [
"registrar",
"years",
"register",
"renew",
"first_payment",
"total",
"min_years",
"promo_first_year",
"observed_at",
"source"
],
"properties": {
"renew": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular renewal"
},
"total": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "the cost to own it for `years` (computeTco), the same number as /v1/tlds/{tld}/prices"
},
"years": {
"type": "integer"
},
"source": {
"type": "object",
"required": [
"id",
"kind",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": "string",
"description": "where the price was read"
},
"kind": {
"enum": [
"api",
"price_list",
"page",
"mirror"
],
"type": "string",
"description": "api: the registrar's own price API; price_list: a file or JSON the registrar publishes; page: its price page; mirror: a third party's copy of the registrar's prices"
}
}
},
"register": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "year 1 now (a promotion when one runs)"
},
"estimated": {
"type": "boolean",
"description": "the total prices a year at the regular renewal because its own regular price is unknown"
},
"min_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
},
"observed_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"first_payment": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"promo_first_year": {
"type": "boolean"
}
},
"description": "The cheapest registrar to own the name for `years` (standard price; a premium name costs more)."
},
{
"type": "null"
}
],
"description": "with_prices: the cheapest registrar for the extension, when the name is available or unknown"
},
"checked_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"confidence": {
"enum": [
"registry",
"dns",
"none"
],
"type": "string",
"description": "registry: RDAP or WHOIS answered; dns: a DNS delegation proves it is registered; none: unknown"
},
"expires_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
],
"description": "registration expiry from RDAP, when registered"
},
"cache_age_s": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"registrable": {
"type": [
"boolean",
"null"
],
"description": "true when it can be registered at a standard price as far as we can tell; null when we can't tell (unknown, or premium_unknown)"
},
"premium_unknown": {
"type": "boolean",
"description": "the registry's lookup can't tell a premium or reserved name from a free one (RDAP 404 on .ai, .io, new gTLDs with premium tiers): check the price at a registrar before promising it"
},
"registry_status": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "RDAP status codes, e.g. [\"client transfer prohibited\"]"
}
}
},
"description": "in the order asked"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
}
}{
"title": "Check availability",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_name_across_tlds — Search a name across extensions
Use this when the user has a name and wants to know which extensions are free and what each costs to own. Checks one label across up to 50 extensions (or a preset: popular, tech, cheap, country:<cc>) and sorts the free ones by total cost.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"examples": [
"acmeforge"
],
"maxLength": 63,
"minLength": 1,
"description": "the label, without an extension (acmeforge)"
},
"tlds": {
"type": "array",
"items": {
"type": "string",
"examples": [
"io"
],
"maxLength": 253,
"minLength": 1,
"description": "an extension: com, .io, co.uk or рф"
},
"maxItems": 50,
"minItems": 1,
"description": "1-50 extensions; default: the preset"
},
"years": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1,
"description": "horizon for totals, 1-10 years (default 3)"
},
"preset": {
"type": "string",
"maxLength": 40,
"description": "popular (default), tech, cheap, or country:<cc> (country:de)"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "ISO 4217 currency for prices (default USD); converted at the ECB's daily rate, disclosed in `fx`"
},
"max_renew_price": {
"type": "number",
"description": "leave out extensions whose cheapest renewal is above this (in `currency`)",
"exclusiveMinimum": 0
},
"include_resellers": {
"type": "boolean",
"default": false,
"description": "include registrars whose prices are a reseller account's tier (pricing_tier reseller, e.g. eNom); default false"
},
"include_limited_promos": {
"type": "boolean",
"default": false,
"description": "count limited promotions (one per customer, first-time customers only) in totals and rankings; default false: they are listed and flagged promo_limited, but year 1 is priced at the regular price"
}
}
}{
"type": "object",
"required": [
"as_of",
"currency",
"years",
"name",
"tlds",
"results",
"notes"
],
"properties": {
"name": {
"type": "string",
"description": "the label checked"
},
"tlds": {
"type": "array",
"items": {
"type": "string"
}
},
"as_of": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"years": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"domain",
"ascii",
"unicode",
"tld",
"status",
"registrable",
"premium_unknown",
"confidence",
"source",
"cached",
"checked_at",
"cache_age_s",
"registry_status",
"expires_at",
"reason",
"cheapest",
"url"
],
"properties": {
"tld": {
"type": [
"string",
"null"
],
"description": "the extension it is registered under (co.uk for example.co.uk)"
},
"url": {
"type": [
"string",
"null"
],
"description": "the extension's page on tldbench.com"
},
"ascii": {
"type": [
"string",
"null"
],
"examples": [
"xn--bcher-kva.de"
],
"description": "the A-label (punycode) form, the canonical spelling"
},
"cached": {
"type": "boolean",
"description": "answered from our cache (available: 10 min, registered: 24 h, 1 h near expiry; unknown is never cached)"
},
"domain": {
"type": "string",
"description": "the name as asked"
},
"reason": {
"type": [
"string",
"null"
],
"description": "why the status is unknown, unsupported or invalid; or a caveat"
},
"source": {
"enum": [
"rdap",
"whois",
"dns",
"policy",
"none"
],
"type": "string"
},
"status": {
"enum": [
"available",
"registered",
"pending_delete",
"redemption",
"unsupported",
"invalid",
"unknown"
],
"type": "string",
"description": "available: the registry has no such name; registered; pending_delete / redemption: registered, in the deletion cycle; unsupported: not sold to the public (a brand TLD, not in the root, no registry lookup possible); invalid: not a domain name; unknown: no registry answered (NOT available)"
},
"unicode": {
"type": [
"string",
"null"
]
},
"cheapest": {
"anyOf": [
{
"type": "object",
"required": [
"registrar",
"years",
"register",
"renew",
"first_payment",
"total",
"min_years",
"promo_first_year",
"observed_at",
"source"
],
"properties": {
"renew": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular renewal"
},
"total": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "the cost to own it for `years` (computeTco), the same number as /v1/tlds/{tld}/prices"
},
"years": {
"type": "integer"
},
"source": {
"type": "object",
"required": [
"id",
"kind",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": "string",
"description": "where the price was read"
},
"kind": {
"enum": [
"api",
"price_list",
"page",
"mirror"
],
"type": "string",
"description": "api: the registrar's own price API; price_list: a file or JSON the registrar publishes; page: its price page; mirror: a third party's copy of the registrar's prices"
}
}
},
"register": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "year 1 now (a promotion when one runs)"
},
"estimated": {
"type": "boolean",
"description": "the total prices a year at the regular renewal because its own regular price is unknown"
},
"min_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
},
"observed_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"first_payment": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"promo_first_year": {
"type": "boolean"
}
},
"description": "The cheapest registrar to own the name for `years` (standard price; a premium name costs more)."
},
{
"type": "null"
}
],
"description": "with_prices: the cheapest registrar for the extension, when the name is available or unknown"
},
"checked_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"confidence": {
"enum": [
"registry",
"dns",
"none"
],
"type": "string",
"description": "registry: RDAP or WHOIS answered; dns: a DNS delegation proves it is registered; none: unknown"
},
"expires_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
],
"description": "registration expiry from RDAP, when registered"
},
"cache_age_s": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"registrable": {
"type": [
"boolean",
"null"
],
"description": "true when it can be registered at a standard price as far as we can tell; null when we can't tell (unknown, or premium_unknown)"
},
"premium_unknown": {
"type": "boolean",
"description": "the registry's lookup can't tell a premium or reserved name from a free one (RDAP 404 on .ai, .io, new gTLDs with premium tiers): check the price at a registrar before promising it"
},
"registry_status": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "RDAP status codes, e.g. [\"client transfer prohibited\"]"
}
}
},
"description": "available first, cheapest to own first; then unknown; then taken and the rest"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
}
}{
"title": "Search a name across extensions",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}suggest_names — Check and price name ideas
Use this when the user needs name ideas. Pass `candidates` from your own brainstorm and we check and price them; with only `keywords` we add simple prefixes, suffixes, TLD hacks and combinations. Returns only names that are available or unknown, cheapest first.
{
"type": "object",
"properties": {
"tlds": {
"type": "array",
"items": {
"type": "string",
"examples": [
"io"
],
"maxLength": 253,
"minLength": 1,
"description": "an extension: com, .io, co.uk or рф"
},
"maxItems": 10,
"minItems": 1,
"description": "extensions to try (default com)"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "names to check (each counts against the availability limit; default 20)"
},
"years": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1,
"description": "horizon for totals, 1-10 years (default 3)"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "ISO 4217 currency for prices (default USD); converted at the ECB's daily rate, disclosed in `fx`"
},
"keywords": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"maxItems": 10,
"description": "words to build names from with simple rules (prefixes, suffixes, TLD hacks, pairs)"
},
"candidates": {
"type": "array",
"items": {
"type": "string",
"maxLength": 253,
"minLength": 1
},
"maxItems": 100,
"description": "your own ideas: labels (brewly) or full names (brewly.co); labels are tried with each of `tlds`"
},
"max_length": {
"type": "integer",
"maximum": 63,
"minimum": 2,
"description": "longest label"
},
"max_renew_price": {
"type": "number",
"exclusiveMinimum": 0
},
"include_resellers": {
"type": "boolean",
"default": false,
"description": "include registrars whose prices are a reseller account's tier (pricing_tier reseller, e.g. eNom); default false"
},
"include_limited_promos": {
"type": "boolean",
"default": false,
"description": "count limited promotions (one per customer, first-time customers only) in totals and rankings; default false: they are listed and flagged promo_limited, but year 1 is priced at the regular price"
}
}
}{
"type": "object",
"required": [
"as_of",
"currency",
"years",
"generated",
"checked",
"suggestions",
"notes"
],
"properties": {
"as_of": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"years": {
"type": "integer"
},
"checked": {
"type": "integer"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
},
"generated": {
"type": "integer",
"description": "names made from the input before checking"
},
"suggestions": {
"type": "array",
"items": {
"type": "object",
"required": [
"domain",
"status",
"premium_unknown",
"confidence",
"cheapest",
"why",
"url"
],
"properties": {
"url": {
"type": [
"string",
"null"
]
},
"why": {
"type": "string",
"description": "how it was made: your candidate, or the rule (prefix, suffix, TLD hack, combination)"
},
"domain": {
"type": "string"
},
"status": {
"enum": [
"available",
"unknown"
],
"type": "string"
},
"cheapest": {
"anyOf": [
{
"type": "object",
"required": [
"registrar",
"years",
"register",
"renew",
"first_payment",
"total",
"min_years",
"promo_first_year",
"observed_at",
"source"
],
"properties": {
"renew": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the regular renewal"
},
"total": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "the cost to own it for `years` (computeTco), the same number as /v1/tlds/{tld}/prices"
},
"years": {
"type": "integer"
},
"source": {
"type": "object",
"required": [
"id",
"kind",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": "string",
"description": "where the price was read"
},
"kind": {
"enum": [
"api",
"price_list",
"page",
"mirror"
],
"type": "string",
"description": "api: the registrar's own price API; price_list: a file or JSON the registrar publishes; page: its price page; mirror: a third party's copy of the registrar's prices"
}
}
},
"register": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "year 1 now (a promotion when one runs)"
},
"estimated": {
"type": "boolean",
"description": "the total prices a year at the regular renewal because its own regular price is unknown"
},
"min_years": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
},
"observed_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"first_payment": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"promo_first_year": {
"type": "boolean"
}
},
"description": "The cheapest registrar to own the name for `years` (standard price; a premium name costs more)."
},
{
"type": "null"
}
]
},
"confidence": {
"enum": [
"registry",
"dns",
"none"
],
"type": "string"
},
"premium_unknown": {
"type": "boolean"
}
}
},
"description": "only names that are available or unknown: available first, cheapest first"
}
}
}{
"title": "Check and price name ideas",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_registrar — Registrar profile
Use this when the user asks about a registrar: its country, group, size (gTLD domains under management), how many extensions it sells, and how fresh our prices for it are. Accepts our id, its name or an IANA id.
{
"type": "object",
"required": [
"registrar"
],
"properties": {
"registrar": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "a registrar's id (porkbun), name (Porkbun) or IANA id (1861)"
}
}
}{
"type": "object",
"required": [
"registrar",
"url"
],
"properties": {
"url": {
"type": "string",
"description": "the page on tldbench.com with the full comparison"
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url",
"country",
"kind",
"family",
"iana_ids",
"rank",
"domains",
"domains_month",
"extensions",
"icon_url",
"sources"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": [
"string",
"null"
]
},
"kind": {
"enum": [
"retail",
"wholesale",
"cloud",
"registry-direct"
],
"type": "string"
},
"name": {
"type": "string"
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"rank": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "by gTLD domains under management (ICANN monthly registry reports), registrar groups counted together"
},
"family": {
"type": [
"string",
"null"
],
"description": "the group it belongs to (several brands, one owner)"
},
"country": {
"type": [
"string",
"null"
],
"description": "ISO 3166-1 alpha-2"
},
"domains": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"last_success_at",
"stale"
],
"properties": {
"id": {
"type": "string"
},
"stale": {
"type": "boolean"
},
"last_success_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
}
}
}
},
"iana_ids": {
"type": "array",
"items": {
"type": "integer"
}
},
"icon_url": {
"type": [
"string",
"null"
]
},
"extensions": {
"type": "integer",
"description": "extensions with a current price"
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
},
"domains_month": {
"type": [
"string",
"null"
]
}
}
}
}
}{
"title": "Registrar profile",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}price_history — Price history
Use this when the user asks how an extension's prices have moved or whether a rise is coming. Returns each registrar's price periods (changes only) and the registry's announced wholesale changes.
{
"type": "object",
"required": [
"tld"
],
"properties": {
"tld": {
"type": "string",
"examples": [
"io"
],
"maxLength": 253,
"minLength": 1,
"description": "an extension: com, .io, co.uk or рф"
},
"since": {
"type": "string",
"description": "YYYY-MM-DD: only periods that end on or after it"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "ISO 4217 currency for prices (default USD); converted at the ECB's daily rate, disclosed in `fx`"
},
"operation": {
"enum": [
"register",
"renew",
"transfer",
"restore"
],
"type": "string",
"description": "register (a new registration, year 1), renew (one more year), transfer (move in; usually adds a year), restore (redeem an expired domain in its redemption period)"
},
"registrar": {
"type": "string",
"description": "one registrar's id"
}
}
}{
"type": "object",
"required": [
"as_of",
"currency",
"fx",
"tld",
"series",
"registry_events",
"url"
],
"properties": {
"fx": {
"anyOf": [
{
"type": "object",
"required": [
"date",
"source",
"rates"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
],
"description": "the date of the primary rates (ECB reference rates)"
},
"rates": {
"type": "object",
"description": "every rate used in this response, by native currency",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"required": [
"rate",
"date",
"source"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
"rate": {
"type": "number",
"description": "units of the response currency per unit of this currency"
},
"source": {
"type": "string"
}
}
}
},
"source": {
"type": "string",
"examples": [
"European Central Bank euro foreign exchange reference rates"
]
}
}
},
{
"type": "null"
}
],
"description": "How converted prices were converted; null when nothing needed converting."
},
"tld": {
"type": "string"
},
"url": {
"type": "string",
"description": "the page on tldbench.com with the full comparison"
},
"as_of": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "when the newest price in this response was collected"
},
"series": {
"type": "array",
"items": {
"type": "object",
"required": [
"registrar",
"operation",
"kind",
"points"
],
"properties": {
"kind": {
"enum": [
"regular",
"promo"
],
"type": "string"
},
"points": {
"type": "array",
"items": {
"type": "object",
"required": [
"from",
"to",
"price",
"native"
],
"properties": {
"to": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
],
"description": "null while it is the current price"
},
"from": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"price": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "converted at the rate of `from`; null while not offered"
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
]
}
}
}
},
"operation": {
"enum": [
"register",
"renew",
"transfer",
"restore"
],
"type": "string",
"description": "register (a new registration, year 1), renew (one more year), transfer (move in; usually adds a year), restore (redeem an expired domain in its redemption period)"
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
}
}
}
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
},
"registry_events": {
"type": "array",
"items": {
"type": "object",
"required": [
"tld",
"operation",
"effective_from",
"from",
"to",
"source",
"note"
],
"properties": {
"to": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"tld": {
"type": "string"
},
"from": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the previous registry fee; null for the first one we know"
},
"note": {
"type": [
"string",
"null"
]
},
"source": {
"type": "object",
"required": [
"kind",
"url"
],
"properties": {
"url": {
"type": [
"string",
"null"
]
},
"kind": {
"type": "string"
}
}
},
"operation": {
"enum": [
"register",
"renew",
"transfer",
"restore"
],
"type": "string",
"description": "register (a new registration, year 1), renew (one more year), transfer (move in; usually adds a year), restore (redeem an expired domain in its redemption period)"
},
"effective_from": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
}
},
"description": "A registry (wholesale) fee and when it takes effect, in the registry's currency."
}
}
}
}{
"title": "Price history",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_coupons — Promotions and coupons
Use this when the user asks for promo codes, coupons, deals or first-year discounts. Returns coupon codes as each registrar's own API or promotions page lists them (code, operation, extensions, discount, limits, end date, last seen at the source, an example price with the code), and running promotional prices anyone gets without a code. Codes are seen at the source, not tested at checkout; quote the list price and renewal too.
{
"type": "object",
"properties": {
"tld": {
"type": "string",
"examples": [
"io"
],
"maxLength": 253,
"minLength": 1,
"description": "an extension: com, .io, co.uk or рф"
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "ISO 4217 currency for prices (default USD); converted at the ECB's daily rate, disclosed in `fx`"
},
"operation": {
"enum": [
"register",
"renew",
"transfer"
],
"type": "string"
},
"registrar": {
"type": "string"
},
"active_only": {
"type": "boolean",
"default": true,
"description": "false: also coupons that expired in the last 30 days"
}
}
}{
"type": "object",
"required": [
"as_of",
"currency",
"fx",
"coupons",
"promotions",
"note"
],
"properties": {
"fx": {
"anyOf": [
{
"type": "object",
"required": [
"date",
"source",
"rates"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
],
"description": "the date of the primary rates (ECB reference rates)"
},
"rates": {
"type": "object",
"description": "every rate used in this response, by native currency",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"required": [
"rate",
"date",
"source"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
"rate": {
"type": "number",
"description": "units of the response currency per unit of this currency"
},
"source": {
"type": "string"
}
}
}
},
"source": {
"type": "string",
"examples": [
"European Central Bank euro foreign exchange reference rates"
]
}
}
},
{
"type": "null"
}
],
"description": "How converted prices were converted; null when nothing needed converting."
},
"note": {
"type": "string"
},
"as_of": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"coupons": {
"type": "array",
"items": {
"type": "object",
"required": [
"registrar",
"code",
"operation",
"tlds",
"all_tlds",
"description",
"discount",
"first_year_only",
"new_customers_only",
"max_per_customer",
"starts_at",
"ends_at",
"expires_at",
"terms",
"status",
"expired_at",
"expired_reason",
"first_seen_at",
"last_seen_at",
"observed_at",
"stale",
"example",
"source",
"source_url"
],
"properties": {
"code": {
"type": "string",
"examples": [
"AWESOMENESS"
]
},
"tlds": {
"type": "array",
"items": {
"type": "string"
},
"description": "the extensions the code applies to; empty when all_tlds"
},
"stale": {
"type": "boolean",
"description": "its source hasn't been collected for 3x its interval"
},
"terms": {
"type": [
"string",
"null"
],
"description": "the source's terms, as text"
},
"source": {
"type": "object",
"required": [
"id",
"kind",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": "string",
"description": "where the price was read"
},
"kind": {
"enum": [
"api",
"price_list",
"page",
"mirror"
],
"type": "string",
"description": "api: the registrar's own price API; price_list: a file or JSON the registrar publishes; page: its price page; mirror: a third party's copy of the registrar's prices"
}
}
},
"status": {
"enum": [
"active",
"expired"
],
"type": "string"
},
"ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"example": {
"anyOf": [
{
"type": "object",
"required": [
"tld",
"price",
"with_code"
],
"properties": {
"tld": {
"type": "string"
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"with_code": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
}
}
},
{
"type": "null"
}
],
"description": "one extension's current price and the price with the code"
},
"all_tlds": {
"type": "boolean",
"description": "the source says the code applies to every extension"
},
"discount": {
"type": "object",
"required": [
"kind",
"percent",
"amount",
"native"
],
"properties": {
"kind": {
"enum": [
"amount",
"percent",
"price"
],
"type": "string",
"description": "amount: `amount` off; percent: `percent`% off; price: the price with the code is `amount`"
},
"amount": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
]
},
"native": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "`amount` as the source gives it, when it was converted"
},
"percent": {
"type": [
"number",
"null"
]
}
}
},
"operation": {
"enum": [
"register",
"renew",
"transfer",
"restore"
],
"type": "string",
"description": "register (a new registration, year 1), renew (one more year), transfer (move in; usually adds a year), restore (redeem an expired domain in its redemption period)"
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
},
"starts_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"expired_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"expires_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
],
"description": "same as ends_at"
},
"source_url": {
"type": "string"
},
"description": {
"type": "string",
"examples": [
"1.00 USD off a registration, first year only, 1 per customer"
]
},
"observed_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "same as last_seen_at"
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "the last collection that saw the code at its source"
},
"first_seen_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"expired_reason": {
"anyOf": [
{
"enum": [
"ended",
"missing"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "ended: past its end date; missing: its source stopped listing it (2 consecutive collections)"
},
"first_year_only": {
"type": [
"boolean",
"null"
]
},
"max_per_customer": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"new_customers_only": {
"type": [
"boolean",
"null"
]
}
},
"description": "A coupon code as the registrar's own API, price list or promotions page shows it. Seen at the source, never tested at checkout."
},
"description": "coupon codes seen at the registrars' own sources, by registrar"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
},
"promotions": {
"type": "array",
"items": {
"type": "object",
"required": [
"registrar",
"tld",
"operation",
"price",
"regular",
"promo_ends_at",
"promo_conditions",
"observed_at",
"source",
"url"
],
"properties": {
"tld": {
"type": "string"
},
"url": {
"type": "string"
},
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"source": {
"type": "object",
"required": [
"id",
"kind",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": "string",
"description": "where the price was read"
},
"kind": {
"enum": [
"api",
"price_list",
"page",
"mirror"
],
"type": "string",
"description": "api: the registrar's own price API; price_list: a file or JSON the registrar publishes; page: its price page; mirror: a third party's copy of the registrar's prices"
}
}
},
"regular": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
]
},
"operation": {
"enum": [
"register",
"renew",
"transfer",
"restore"
],
"type": "string",
"description": "register (a new registration, year 1), renew (one more year), transfer (move in; usually adds a year), restore (redeem an expired domain in its redemption period)"
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
},
"observed_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
"promo_ends_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
]
},
{
"type": "null"
}
]
},
"promo_limited": {
"type": "boolean",
"description": "capped per customer or for first-time customers only"
},
"promo_conditions": {
"type": [
"string",
"null"
]
}
},
"description": "A promotional price anyone gets now (no code needed), as the registrar lists it."
},
"description": "running promotional prices, cheapest first"
}
}
}{
"title": "Promotions and coupons",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_tld — Extension facts
Use this when the user asks what an extension is, who runs it, or whether it fits: type (generic or country code), registry, brand TLD or not, DNSSEC, RDAP and WHOIS servers, minimum term, second levels, registry fees, and its price summary.
{
"type": "object",
"required": [
"tld"
],
"properties": {
"tld": {
"type": "string",
"examples": [
"io"
],
"maxLength": 253,
"minLength": 1,
"description": "an extension: com, .io, co.uk or рф"
},
"years": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1,
"description": "horizon for totals, 1-10 years (default 3)"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "ISO 4217 currency for prices (default USD); converted at the ECB's daily rate, disclosed in `fx`"
},
"include_resellers": {
"type": "boolean",
"default": false,
"description": "include registrars whose prices are a reseller account's tier (pricing_tier reseller, e.g. eNom); default false"
},
"include_limited_promos": {
"type": "boolean",
"default": false,
"description": "count limited promotions (one per customer, first-time customers only) in totals and rankings; default false: they are listed and flagged promo_limited, but year 1 is priced at the regular price"
}
}
}{
"type": "object",
"required": [
"as_of",
"currency",
"fx",
"years",
"tld",
"facts",
"second_levels",
"wholesale",
"url"
],
"properties": {
"fx": {
"anyOf": [
{
"type": "object",
"required": [
"date",
"source",
"rates"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
],
"description": "the date of the primary rates (ECB reference rates)"
},
"rates": {
"type": "object",
"description": "every rate used in this response, by native currency",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"required": [
"rate",
"date",
"source"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
"rate": {
"type": "number",
"description": "units of the response currency per unit of this currency"
},
"source": {
"type": "string"
}
}
}
},
"source": {
"type": "string",
"examples": [
"European Central Bank euro foreign exchange reference rates"
]
}
}
},
{
"type": "null"
}
],
"description": "How converted prices were converted; null when nothing needed converting."
},
"tld": {
"type": "object",
"required": [
"tld",
"unicode",
"kind",
"level",
"root",
"type",
"brand",
"idn",
"registrars",
"cheapest_register",
"cheapest_renew",
"cheapest_total",
"median_renew",
"popularity"
],
"properties": {
"idn": {
"type": "boolean"
},
"tld": {
"type": "string",
"examples": [
"com",
"co.uk",
"xn--p1ai"
]
},
"kind": {
"enum": [
"tld",
"registry_sld",
"private_sld"
],
"type": "string",
"description": "tld: a root label (com); registry_sld: a second level the TLD's registry runs (co.uk); private_sld: a second level a company sells under someone else's TLD (uk.com)"
},
"root": {
"type": "string",
"description": "the root label (uk for co.uk)"
},
"type": {
"anyOf": [
{
"enum": [
"generic",
"country-code",
"infrastructure"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "the root label's IANA category"
},
"brand": {
"type": "boolean",
"description": "a brand TLD (ICANN Specification 13): not sold to the public"
},
"level": {
"type": "integer"
},
"unicode": {
"type": "string",
"examples": [
"com",
"рф"
]
},
"popularity": {
"anyOf": [
{
"type": "object",
"required": [
"domains",
"month",
"rank"
],
"properties": {
"rank": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"month": {
"type": "string",
"examples": [
"2026-07"
]
},
"domains": {
"type": "integer"
}
}
},
{
"type": "null"
}
],
"description": "domains under management from ICANN's monthly registry report (gTLDs only)"
},
"registrars": {
"type": "integer",
"description": "registrars with a current price"
},
"median_renew": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
]
},
"cheapest_renew": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"registrar"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
}
}
},
{
"type": "null"
}
]
},
"cheapest_total": {
"anyOf": [
{
"type": "object",
"required": [
"years",
"total",
"registrar"
],
"properties": {
"total": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"years": {
"type": "integer"
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
}
}
},
{
"type": "null"
}
],
"description": "the lowest total over `years` (default 3)"
},
"median_register": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the typical year-1 price (median over fresh offers; a limited promotion counts at its regular price)"
},
"cheapest_register": {
"anyOf": [
{
"type": "object",
"required": [
"price",
"registrar"
],
"properties": {
"price": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"registrar": {
"type": "object",
"required": [
"id",
"name",
"url"
],
"properties": {
"id": {
"type": "string",
"examples": [
"porkbun"
]
},
"url": {
"type": [
"string",
"null"
],
"description": "the registrar's website (a plain link, no affiliate code)"
},
"name": {
"type": "string",
"examples": [
"Porkbun"
]
},
"note": {
"anyOf": [
{
"type": "object",
"required": [
"text",
"url",
"checked_on"
],
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "where the note's facts come from"
},
"text": {
"type": "string",
"examples": [
"NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
]
},
"checked_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
}
},
"description": "A short, sourced note about the registrar's prices (not a price we rank by)."
},
{
"type": "null"
}
]
},
"pricing_tier": {
"enum": [
"retail",
"reseller"
],
"type": "string",
"description": "retail: anyone can buy at these prices; reseller: the prices are a reseller account's tier (eNom's Silver), left out of consumer rankings unless include_resellers=true"
}
}
}
}
},
{
"type": "null"
}
],
"description": "the lowest year-1 price; a limited promotion counts at its regular price"
}
}
},
"url": {
"type": "string",
"description": "the page on tldbench.com with the full comparison"
},
"as_of": {
"type": "string",
"format": "date-time",
"examples": [
"2026-11-06T04:12:00.000Z"
],
"description": "when the newest price in this response was collected"
},
"facts": {
"type": "object",
"required": [
"manager",
"registry_operator",
"delegated_on",
"contract_terminated",
"dnssec",
"whois_server",
"rdap_urls",
"iana_url",
"third_level_registration",
"in_root",
"psl_section"
],
"properties": {
"dnssec": {
"type": [
"boolean",
"null"
],
"description": "the TLD is signed (a DS record in the root zone)"
},
"in_root": {
"type": "boolean",
"description": "in IANA's root zone list today"
},
"manager": {
"type": [
"string",
"null"
],
"description": "the TLD manager in IANA's root zone database"
},
"iana_url": {
"type": "string"
},
"rdap_urls": {
"type": "array",
"items": {
"type": "string"
}
},
"psl_section": {
"anyOf": [
{
"enum": [
"icann",
"private"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "where the Public Suffix List has this extension"
},
"delegated_on": {
"anyOf": [
{
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
},
{
"type": "null"
}
]
},
"whois_server": {
"type": [
"string",
"null"
]
},
"registry_operator": {
"type": [
"string",
"null"
],
"description": "the registry operator under ICANN contract (gTLDs)"
},
"contract_terminated": {
"type": [
"boolean",
"null"
]
},
"third_level_registration": {
"type": [
"boolean",
"null"
]
}
}
},
"years": {
"type": "integer"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
},
"wholesale": {
"type": "array",
"items": {
"type": "object",
"required": [
"tld",
"operation",
"effective_from",
"from",
"to",
"source",
"note"
],
"properties": {
"to": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
"tld": {
"type": "string"
},
"from": {
"anyOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD"
],
"description": "ISO 4217"
}
},
"description": "An amount in major units (12.99), in `currency`."
},
{
"type": "null"
}
],
"description": "the previous registry fee; null for the first one we know"
},
"note": {
"type": [
"string",
"null"
]
},
"source": {
"type": "object",
"required": [
"kind",
"url"
],
"properties": {
"url": {
"type": [
"string",
"null"
]
},
"kind": {
"type": "string"
}
}
},
"operation": {
"enum": [
"register",
"renew",
"transfer",
"restore"
],
"type": "string",
"description": "register (a new registration, year 1), renew (one more year), transfer (move in; usually adds a year), restore (redeem an expired domain in its redemption period)"
},
"effective_from": {
"type": "string",
"format": "date",
"examples": [
"2026-11-05"
]
}
},
"description": "A registry (wholesale) fee and when it takes effect, in the registry's currency."
},
"description": "known registry fees, newest first"
},
"second_levels": {
"type": "array",
"items": {
"type": "string"
},
"description": "priced extensions under this root (co.uk, org.uk under uk)"
}
}
}{
"title": "Extension facts",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
1 advertised
find_a_domain — Find a domain
Find a good, affordable domain for an idea: brainstorm names, check them, and compare the cost to own them.
- idea
- what the site or business is (required)
- budget
- the most to pay per year, e.g. 20 USD
Resources
5 advertised
.com — .com prices
tldbench://tld/com.io — .io prices
tldbench://tld/io.ai — .ai prices
tldbench://tld/ai.dev — .dev prices
tldbench://tld/dev.co — .co prices
tldbench://tld/cotld — An extension's facts and prices
get_tld plus the 10 cheapest offers by 3-year total
tldbench://tld/{tld}registrar — A registrar's profile
get_registrar
tldbench://registrar/{id}90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 2 of 2 checks answered
- 2026-11-09: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1067 ms
- 95th percentile latency
- 1067 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1067 ms · metadata changed · 10 tool(s), 5 resource(s), 2 resource template(s), 1 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http tld-bench-mcp https://tldbench.com/mcpCodex
codex mcp add tld-bench-mcp --url https://tldbench.com/mcpCursor
{
"mcpServers": {
"tld-bench-mcp": {
"url": "https://tldbench.com/mcp"
}
}
}Cline
{
"mcpServers": {
"tld-bench-mcp": {
"type": "streamableHttp",
"url": "https://tldbench.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"tld-bench-mcp": {
"type": "http",
"url": "https://tldbench.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http tld-bench-mcp https://tldbench.com/mcpClaude Desktop
https://tldbench.com/mcpWindsurf
{
"mcpServers": {
"tld-bench-mcp": {
"serverUrl": "https://tldbench.com/mcp"
}
}
}Let your agent find its tools
Find servers like TLD Bench MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other commerce servers
Do you run TLD Bench MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.