changedOutput schema / properties / results / items / properties / best / anyOf
Previous value: -[
- {
- "description": "One registrar's prices for one extension.",
- "properties": {
- "includes": {
- "properties": {
- "icann_fee": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "whois_privacy": {
- "type": [
- "boolean",
- "null"
- ]
- }
- },
- "required": [
- "whois_privacy",
- "icann_fee"
- ],
- "type": "object"
- },
- "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)"
- },
- "observed_at": {
- "description": "the last time the source confirmed this price",
- "examples": [
- "2026-11-06T04:12:00.000Z"
- ],
- "format": "date-time",
- "type": "string"
- },
- "register": {
- "anyOf": [
- {
- "properties": {
- "native": {
- "anyOf": [
- {
- "description": "An amount in major units (12.99), in `currency`.",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
- },
- "price": {
- "description": "what one year costs now: the promotional price while a promotion runs, else the regular price",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- "promo": {
- "description": "price is a promotion (first year only, or until promo_ends_at)",
- "type": "boolean"
- },
- "promo_conditions": {
- "description": "the source's conditions for the promotion, as text",
- "type": [
- "string",
- "null"
- ]
- },
- "promo_ends_at": {
- "anyOf": [
- {
- "examples": [
- "2026-11-06T04:12:00.000Z"
- ],
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "regular": {
- "anyOf": [
- {
- "description": "An amount in major units (12.99), in `currency`.",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "the regular (list) price; null when the source gives only a promotional price"
- }
- },
- "required": [
- "price",
- "regular",
- "promo",
- "promo_ends_at",
- "promo_conditions",
- "native"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "registrar": {
- "properties": {
- "id": {
- "examples": [
- "porkbun"
- ],
- "type": "string"
- },
- "name": {
- "examples": [
- "Porkbun"
- ],
- "type": "string"
- },
- "url": {
- "description": "the registrar's website (a plain link, no affiliate code)",
- "type": [
- "string",
- "null"
- ]
- }
- },
- "required": [
- "id",
- "name",
- "url"
- ],
- "type": "object"
- },
- "renew": {
- "anyOf": [
- {
- "properties": {
- "native": {
- "anyOf": [
- {
- "description": "An amount in major units (12.99), in `currency`.",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
- },
- "price": {
- "description": "what one year costs now: the promotional price while a promotion runs, else the regular price",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- "promo": {
- "description": "price is a promotion (first year only, or until promo_ends_at)",
- "type": "boolean"
- },
- "promo_conditions": {
- "description": "the source's conditions for the promotion, as text",
- "type": [
- "string",
- "null"
- ]
- },
- "promo_ends_at": {
- "anyOf": [
- {
- "examples": [
- "2026-11-06T04:12:00.000Z"
- ],
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "regular": {
- "anyOf": [
- {
- "description": "An amount in major units (12.99), in `currency`.",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "the regular (list) price; null when the source gives only a promotional price"
- }
- },
- "required": [
- "price",
- "regular",
- "promo",
- "promo_ends_at",
- "promo_conditions",
- "native"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "restore": {
- "anyOf": [
- {
- "properties": {
- "native": {
- "anyOf": [
- {
- "description": "An amount in major units (12.99), in `currency`.",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
- },
- "price": {
- "description": "what one year costs now: the promotional price while a promotion runs, else the regular price",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- "promo": {
- "description": "price is a promotion (first year only, or until promo_ends_at)",
- "type": "boolean"
- },
- "promo_conditions": {
- "description": "the source's conditions for the promotion, as text",
- "type": [
- "string",
- "null"
- ]
- },
- "promo_ends_at": {
- "anyOf": [
- {
- "examples": [
- "2026-11-06T04:12:00.000Z"
- ],
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "regular": {
- "anyOf": [
- {
- "description": "An amount in major units (12.99), in `currency`.",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "the regular (list) price; null when the source gives only a promotional price"
- }
- },
- "required": [
- "price",
- "regular",
- "promo",
- "promo_ends_at",
- "promo_conditions",
- "native"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "source": {
- "properties": {
- "id": {
- "examples": [
- "porkbun"
- ],
- "type": "string"
- },
- "kind": {
- "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",
- "enum": [
- "api",
- "price_list",
- "page",
- "mirror"
- ],
- "type": "string"
- },
- "url": {
- "description": "where the price was read",
- "type": "string"
- }
- },
- "required": [
- "id",
- "kind",
- "url"
- ],
- "type": "object"
- },
- "stale": {
- "description": "not confirmed for 3x the source's collection interval",
- "type": "boolean"
- },
- "tld": {
- "description": "the extension",
- "examples": [
- "com",
- "co.uk"
- ],
- "type": "string"
- },
- "totals": {
- "anyOf": [
- {
- "description": "The cost of owning the domain for `years` years (packages/core computeTco).",
- "properties": {
- "breakdown": {
- "description": "year by year (in /v1/cheapest)",
- "items": {
- "properties": {
- "amount": {
- "description": "An amount in major units (12.99), in `currency`.",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- "kind": {
- "enum": [
- "register",
- "transfer",
- "renew"
- ],
- "type": "string"
- },
- "promo": {
- "type": "boolean"
- },
- "year": {
- "type": "integer"
- }
- },
- "required": [
- "year",
- "amount",
- "kind",
- "promo"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "first_payment": {
- "description": "charged at checkout: year 1 (promotional price if one runs) plus the rest of the minimum term at the regular price",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- "per_year": {
- "description": "total / years_paid",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- "promo_applied": {
- "type": "boolean"
- },
- "start": {
- "enum": [
- "register",
- "transfer"
- ],
- "type": "string"
- },
- "total": {
- "description": "first payment plus every later year at the regular renew price",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- "years": {
- "description": "the horizon asked for (?years=)",
- "type": "integer"
- },
- "years_paid": {
- "description": "years paid for: at least min_years when starting with a registration",
- "type": "integer"
- }
- },
- "required": [
- "years",
- "years_paid",
- "start",
- "first_payment",
- "total",
- "per_year",
- "promo_applied"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "null when the register or renew price is unknown"
- },
- "transfer": {
- "anyOf": [
- {
- "properties": {
- "native": {
- "anyOf": [
- {
- "description": "An amount in major units (12.99), in `currency`.",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
- },
- "price": {
- "description": "what one year costs now: the promotional price while a promotion runs, else the regular price",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- "promo": {
- "description": "price is a promotion (first year only, or until promo_ends_at)",
- "type": "boolean"
- },
- "promo_conditions": {
- "description": "the source's conditions for the promotion, as text",
- "type": [
- "string",
- "null"
- ]
- },
- "promo_ends_at": {
- "anyOf": [
- {
- "examples": [
- "2026-11-06T04:12:00.000Z"
- ],
- "format": "date-time",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "regular": {
- "anyOf": [
- {
- "description": "An amount in major units (12.99), in `currency`.",
- "properties": {
- "amount": {
- "type": "number"
- },
- "currency": {
- "description": "ISO 4217",
- "examples": [
- "USD"
- ],
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "the regular (list) price; null when the source gives only a promotional price"
- }
- },
- "required": [
- "price",
- "regular",
- "promo",
- "promo_ends_at",
- "promo_conditions",
- "native"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "vat_included": {
- "type": [
- "boolean",
- "null"
- ]
- }
- },
- "required": [
- "registrar",
- "tld",
- "register",
- "renew",
- "transfer",
- "restore",
- "min_years",
- "max_years",
- "includes",
- "vat_included",
- "totals",
- "observed_at",
- "source",
- "stale"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "description": "One registrar's prices for one extension.",
+ "properties": {
+ "includes": {
+ "properties": {
+ "icann_fee": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "whois_privacy": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "whois_privacy",
+ "icann_fee"
+ ],
+ "type": "object"
+ },
+ "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)"
+ },
+ "observed_at": {
+ "description": "the last time the source confirmed this price",
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ "register": {
+ "anyOf": [
+ {
+ "properties": {
+ "coupon": {
+ "anyOf": [
+ {
+ "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.",
+ "properties": {
+ "code": {
+ "examples": [
+ "AWESOMENESS"
+ ],
+ "type": "string"
+ },
+ "ends_at": {
+ "anyOf": [
+ {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "first_year_only": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "last_seen_at": {
+ "description": "the last time we saw the code at its source; codes are not tested at checkout",
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ "max_per_customer": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "new_customers_only": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "price": {
+ "description": "this price with the code (year 1, or the one operation it covers)",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "saving": {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "source_url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "price",
+ "saving",
+ "first_year_only",
+ "new_customers_only",
+ "max_per_customer",
+ "ends_at",
+ "last_seen_at",
+ "source_url"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
+ },
+ "native": {
+ "anyOf": [
+ {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
+ },
+ "price": {
+ "description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "promo": {
+ "description": "price is a promotion (first year only, or until promo_ends_at)",
+ "type": "boolean"
+ },
+ "promo_conditions": {
+ "description": "the source's conditions for the promotion, as text",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "promo_ends_at": {
+ "anyOf": [
+ {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "promo_inferred": {
+ "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",
+ "type": "boolean"
+ },
+ "promo_limited": {
+ "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)",
+ "type": "boolean"
+ },
+ "promo_years": {
+ "description": "the promotion covers the first N years of the term (default 1)",
+ "type": "integer"
+ },
+ "regular": {
+ "anyOf": [
+ {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
+ },
+ "scheduled": {
+ "anyOf": [
+ {
+ "properties": {
+ "from": {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ "regular": {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "regular",
+ "from"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "a change of the regular per-year price the source has announced, and when it takes effect"
+ },
+ "term_years": {
+ "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",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "price",
+ "regular",
+ "promo",
+ "promo_ends_at",
+ "promo_conditions",
+ "native"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "registrar": {
+ "properties": {
+ "id": {
+ "examples": [
+ "porkbun"
+ ],
+ "type": "string"
+ },
+ "name": {
+ "examples": [
+ "Porkbun"
+ ],
+ "type": "string"
+ },
+ "note": {
+ "anyOf": [
+ {
+ "description": "A short, sourced note about the registrar's prices (not a price we rank by).",
+ "properties": {
+ "checked_on": {
+ "anyOf": [
+ {
+ "examples": [
+ "2026-11-05"
+ ],
+ "format": "date",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "text": {
+ "examples": [
+ "NameSilo's free discount program prices .com at $12.00 (retail $19.99)."
+ ],
+ "type": "string"
+ },
+ "url": {
+ "description": "where the note's facts come from",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "text",
+ "url",
+ "checked_on"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "pricing_tier": {
+ "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",
+ "enum": [
+ "retail",
+ "reseller"
+ ],
+ "type": "string"
+ },
+ "url": {
+ "description": "the registrar's website (a plain link, no affiliate code)",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "name",
+ "url"
+ ],
+ "type": "object"
+ },
+ "renew": {
+ "anyOf": [
+ {
+ "properties": {
+ "coupon": {
+ "anyOf": [
+ {
+ "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.",
+ "properties": {
+ "code": {
+ "examples": [
+ "AWESOMENESS"
+ ],
+ "type": "string"
+ },
+ "ends_at": {
+ "anyOf": [
+ {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "first_year_only": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "last_seen_at": {
+ "description": "the last time we saw the code at its source; codes are not tested at checkout",
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ "max_per_customer": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "new_customers_only": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "price": {
+ "description": "this price with the code (year 1, or the one operation it covers)",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "saving": {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "source_url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "price",
+ "saving",
+ "first_year_only",
+ "new_customers_only",
+ "max_per_customer",
+ "ends_at",
+ "last_seen_at",
+ "source_url"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
+ },
+ "native": {
+ "anyOf": [
+ {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
+ },
+ "price": {
+ "description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "promo": {
+ "description": "price is a promotion (first year only, or until promo_ends_at)",
+ "type": "boolean"
+ },
+ "promo_conditions": {
+ "description": "the source's conditions for the promotion, as text",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "promo_ends_at": {
+ "anyOf": [
+ {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "promo_inferred": {
+ "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",
+ "type": "boolean"
+ },
+ "promo_limited": {
+ "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)",
+ "type": "boolean"
+ },
+ "promo_years": {
+ "description": "the promotion covers the first N years of the term (default 1)",
+ "type": "integer"
+ },
+ "regular": {
+ "anyOf": [
+ {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
+ },
+ "scheduled": {
+ "anyOf": [
+ {
+ "properties": {
+ "from": {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ "regular": {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "regular",
+ "from"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "a change of the regular per-year price the source has announced, and when it takes effect"
+ },
+ "term_years": {
+ "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",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "price",
+ "regular",
+ "promo",
+ "promo_ends_at",
+ "promo_conditions",
+ "native"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "restore": {
+ "anyOf": [
+ {
+ "properties": {
+ "coupon": {
+ "anyOf": [
+ {
+ "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.",
+ "properties": {
+ "code": {
+ "examples": [
+ "AWESOMENESS"
+ ],
+ "type": "string"
+ },
+ "ends_at": {
+ "anyOf": [
+ {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "first_year_only": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "last_seen_at": {
+ "description": "the last time we saw the code at its source; codes are not tested at checkout",
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ "max_per_customer": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "new_customers_only": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "price": {
+ "description": "this price with the code (year 1, or the one operation it covers)",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "saving": {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "source_url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "price",
+ "saving",
+ "first_year_only",
+ "new_customers_only",
+ "max_per_customer",
+ "ends_at",
+ "last_seen_at",
+ "source_url"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
+ },
+ "native": {
+ "anyOf": [
+ {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
+ },
+ "price": {
+ "description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "promo": {
+ "description": "price is a promotion (first year only, or until promo_ends_at)",
+ "type": "boolean"
+ },
+ "promo_conditions": {
+ "description": "the source's conditions for the promotion, as text",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "promo_ends_at": {
+ "anyOf": [
+ {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "promo_inferred": {
+ "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",
+ "type": "boolean"
+ },
+ "promo_limited": {
+ "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)",
+ "type": "boolean"
+ },
+ "promo_years": {
+ "description": "the promotion covers the first N years of the term (default 1)",
+ "type": "integer"
+ },
+ "regular": {
+ "anyOf": [
+ {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
+ },
+ "scheduled": {
+ "anyOf": [
+ {
+ "properties": {
+ "from": {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ "regular": {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "regular",
+ "from"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "a change of the regular per-year price the source has announced, and when it takes effect"
+ },
+ "term_years": {
+ "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",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "price",
+ "regular",
+ "promo",
+ "promo_ends_at",
+ "promo_conditions",
+ "native"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "source": {
+ "properties": {
+ "id": {
+ "examples": [
+ "porkbun"
+ ],
+ "type": "string"
+ },
+ "kind": {
+ "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",
+ "enum": [
+ "api",
+ "price_list",
+ "page",
+ "mirror"
+ ],
+ "type": "string"
+ },
+ "url": {
+ "description": "where the price was read",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "kind",
+ "url"
+ ],
+ "type": "object"
+ },
+ "stale": {
+ "description": "not confirmed for 3x the source's collection interval",
+ "type": "boolean"
+ },
+ "tld": {
+ "description": "the extension",
+ "examples": [
+ "com",
+ "co.uk"
+ ],
+ "type": "string"
+ },
+ "totals": {
+ "anyOf": [
+ {
+ "description": "The cost of owning the domain for `years` years (packages/core computeTco).",
+ "properties": {
+ "breakdown": {
+ "description": "year by year (in /v1/cheapest)",
+ "items": {
+ "properties": {
+ "amount": {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "kind": {
+ "enum": [
+ "register",
+ "transfer",
+ "renew"
+ ],
+ "type": "string"
+ },
+ "promo": {
+ "type": "boolean"
+ },
+ "year": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "year",
+ "amount",
+ "kind",
+ "promo"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "estimated": {
+ "description": "a year whose regular price is unknown was priced at the regular renewal: the total is an estimate",
+ "type": "boolean"
+ },
+ "first_payment": {
+ "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",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "limited_promo_skipped": {
+ "description": "a limited promotion runs (per customer, first-time customers) and was not counted: year 1 is the regular price",
+ "type": "boolean"
+ },
+ "per_year": {
+ "description": "total / years_paid",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "promo_applied": {
+ "description": "year 1 is a promotional price",
+ "type": "boolean"
+ },
+ "start": {
+ "enum": [
+ "register",
+ "transfer"
+ ],
+ "type": "string"
+ },
+ "total": {
+ "description": "first payment plus every later year at the regular renew price (never a renewal promotion)",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "years": {
+ "description": "the horizon asked for (?years=)",
+ "type": "integer"
+ },
+ "years_paid": {
+ "description": "years paid for: at least min_years when starting with a registration",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "years",
+ "years_paid",
+ "start",
+ "first_payment",
+ "total",
+ "per_year",
+ "promo_applied"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "null when the register or renew price is unknown"
+ },
+ "transfer": {
+ "anyOf": [
+ {
+ "properties": {
+ "coupon": {
+ "anyOf": [
+ {
+ "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.",
+ "properties": {
+ "code": {
+ "examples": [
+ "AWESOMENESS"
+ ],
+ "type": "string"
+ },
+ "ends_at": {
+ "anyOf": [
+ {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "first_year_only": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "last_seen_at": {
+ "description": "the last time we saw the code at its source; codes are not tested at checkout",
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ "max_per_customer": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "new_customers_only": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "price": {
+ "description": "this price with the code (year 1, or the one operation it covers)",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "saving": {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "source_url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "price",
+ "saving",
+ "first_year_only",
+ "new_customers_only",
+ "max_per_customer",
+ "ends_at",
+ "last_seen_at",
+ "source_url"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "a coupon code that lowers this price, beside it (never in it); null when none is listed"
+ },
+ "native": {
+ "anyOf": [
+ {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "price in the registrar's own currency, when it was converted; null when it is already in that currency"
+ },
+ "price": {
+ "description": "what one year costs now (per year, whatever the term): the promotional price while a promotion runs, else the regular price",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "promo": {
+ "description": "price is a promotion (first year only, or until promo_ends_at)",
+ "type": "boolean"
+ },
+ "promo_conditions": {
+ "description": "the source's conditions for the promotion, as text",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "promo_ends_at": {
+ "anyOf": [
+ {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "promo_inferred": {
+ "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",
+ "type": "boolean"
+ },
+ "promo_limited": {
+ "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)",
+ "type": "boolean"
+ },
+ "promo_years": {
+ "description": "the promotion covers the first N years of the term (default 1)",
+ "type": "integer"
+ },
+ "regular": {
+ "anyOf": [
+ {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "the regular (list) price per year; null when unknown (the source gives only a promotional or first-year price)"
+ },
+ "scheduled": {
+ "anyOf": [
+ {
+ "properties": {
+ "from": {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ "regular": {
+ "description": "An amount in major units (12.99), in `currency`.",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "currency": {
+ "description": "ISO 4217",
+ "examples": [
+ "USD"
+ ],
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "regular",
+ "from"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "a change of the regular per-year price the source has announced, and when it takes effect"
+ },
+ "term_years": {
+ "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",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "price",
+ "regular",
+ "promo",
+ "promo_ends_at",
+ "promo_conditions",
+ "native"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "vat_included": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "registrar",
+ "tld",
+ "register",
+ "renew",
+ "transfer",
+ "restore",
+ "min_years",
+ "max_years",
+ "includes",
+ "vat_included",
+ "totals",
+ "observed_at",
+ "source",
+ "stale"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]