addedInput schema / properties / active_only
Added value: +{
+ "default": true,
+ "description": "false: also coupons that expired in the last 30 days",
+ "type": "boolean"
+}
changedOutput schema / properties / coupons / description
Previous value: -"coupon codes seen at their source (none collected yet)"New value: +"coupon codes seen at the registrars' own sources, by registrar"
addedOutput schema / properties / coupons / items / description
Added value: +"A coupon code as the registrar's own API, price list or promotions page shows it. Seen at the source, never tested at checkout."
addedOutput schema / properties / coupons / items / properties / all_tlds
Added value: +{
+ "description": "the source says the code applies to every extension",
+ "type": "boolean"
+}
addedOutput schema / properties / coupons / items / properties / code / examples
Added value: +[
+ "AWESOMENESS"
+]
changedOutput schema / properties / coupons / items / properties / code / type
Previous value: -[
- "string",
- "null"
-]New value: +"string"
addedOutput schema / properties / coupons / items / properties / description / examples
Added value: +[
+ "1.00 USD off a registration, first year only, 1 per customer"
+]
addedOutput schema / properties / coupons / items / properties / discount
Added value: +{
+ "properties": {
+ "amount": {
+ "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"
+ }
+ ]
+ },
+ "kind": {
+ "description": "amount: `amount` off; percent: `percent`% off; price: the price with the code is `amount`",
+ "enum": [
+ "amount",
+ "percent",
+ "price"
+ ],
+ "type": "string"
+ },
+ "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": "`amount` as the source gives it, when it was converted"
+ },
+ "percent": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "kind",
+ "percent",
+ "amount",
+ "native"
+ ],
+ "type": "object"
+}
addedOutput schema / properties / coupons / items / properties / ends_at
Added value: +{
+ "anyOf": [
+ {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+}
addedOutput schema / properties / coupons / items / properties / example
Added value: +{
+ "anyOf": [
+ {
+ "properties": {
+ "price": {
+ "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"
+ },
+ "tld": {
+ "type": "string"
+ },
+ "with_code": {
+ "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": [
+ "tld",
+ "price",
+ "with_code"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "one extension's current price and the price with the code"
+}
addedOutput schema / properties / coupons / items / properties / expired_at
Added value: +{
+ "anyOf": [
+ {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+}
addedOutput schema / properties / coupons / items / properties / expired_reason
Added value: +{
+ "anyOf": [
+ {
+ "enum": [
+ "ended",
+ "missing"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "ended: past its end date; missing: its source stopped listing it (2 consecutive collections)"
+}
addedOutput schema / properties / coupons / items / properties / expires_at / description
Added value: +"same as ends_at"
addedOutput schema / properties / coupons / items / properties / first_seen_at
Added value: +{
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+}
addedOutput schema / properties / coupons / items / properties / first_year_only
Added value: +{
+ "type": [
+ "boolean",
+ "null"
+ ]
+}
addedOutput schema / properties / coupons / items / properties / last_seen_at
Added value: +{
+ "description": "the last collection that saw the code at its source",
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+}
addedOutput schema / properties / coupons / items / properties / max_per_customer
Added value: +{
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+}
addedOutput schema / properties / coupons / items / properties / new_customers_only
Added value: +{
+ "type": [
+ "boolean",
+ "null"
+ ]
+}
addedOutput schema / properties / coupons / items / properties / observed_at / description
Added value: +"same as last_seen_at"
addedOutput schema / properties / coupons / items / properties / operation
Added value: +{
+ "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)",
+ "enum": [
+ "register",
+ "renew",
+ "transfer",
+ "restore"
+ ],
+ "type": "string"
+}
addedOutput schema / properties / coupons / items / properties / registrar / properties / note
Added value: +{
+ "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"
+ }
+ ]
+}
addedOutput schema / properties / coupons / items / properties / registrar / properties / pricing_tier
Added value: +{
+ "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"
+}
addedOutput schema / properties / coupons / items / properties / source
Added value: +{
+ "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"
+}
addedOutput schema / properties / coupons / items / properties / stale
Added value: +{
+ "description": "its source hasn't been collected for 3x its interval",
+ "type": "boolean"
+}
addedOutput schema / properties / coupons / items / properties / starts_at
Added value: +{
+ "anyOf": [
+ {
+ "examples": [
+ "2026-11-06T04:12:00.000Z"
+ ],
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+}
addedOutput schema / properties / coupons / items / properties / status
Added value: +{
+ "enum": [
+ "active",
+ "expired"
+ ],
+ "type": "string"
+}
addedOutput schema / properties / coupons / items / properties / terms
Added value: +{
+ "description": "the source's terms, as text",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / coupons / items / properties / tlds / description
Added value: +"the extensions the code applies to; empty when all_tlds"
changedOutput schema / properties / coupons / items / required
Previous value: -[
- "registrar",
- "code",
- "tlds",
- "description",
- "expires_at",
- "observed_at",
- "source_url"
-]New value: +[
+ "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"
+]
addedOutput schema / properties / fx
Added value: +{
+ "anyOf": [
+ {
+ "properties": {
+ "date": {
+ "description": "the date of the primary rates (ECB reference rates)",
+ "examples": [
+ "2026-11-05"
+ ],
+ "format": "date",
+ "type": "string"
+ },
+ "rates": {
+ "additionalProperties": {
+ "properties": {
+ "date": {
+ "examples": [
+ "2026-11-05"
+ ],
+ "format": "date",
+ "type": "string"
+ },
+ "rate": {
+ "description": "units of the response currency per unit of this currency",
+ "type": "number"
+ },
+ "source": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "rate",
+ "date",
+ "source"
+ ],
+ "type": "object"
+ },
+ "description": "every rate used in this response, by native currency",
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "source": {
+ "examples": [
+ "European Central Bank euro foreign exchange reference rates"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "date",
+ "source",
+ "rates"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "How converted prices were converted; null when nothing needed converting."
+}
addedOutput schema / properties / promotions / items / properties / promo_limited
Added value: +{
+ "description": "capped per customer or for first-time customers only",
+ "type": "boolean"
+}
addedOutput schema / properties / promotions / items / properties / registrar / properties / note
Added value: +{
+ "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"
+ }
+ ]
+}
addedOutput schema / properties / promotions / items / properties / registrar / properties / pricing_tier
Added value: +{
+ "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"
+}
changedOutput schema / required
Previous value: -[
- "as_of",
- "currency",
- "coupons",
- "promotions",
- "note"
-]New value: +[
+ "as_of",
+ "currency",
+ "fx",
+ "coupons",
+ "promotions",
+ "note"
+]