Raw schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"description": "TLD search: .com is exact; com is partial. Separate alternatives with commas or spaces.",
"default": ""
},
"registrar": {
"type": "string",
"maxLength": 40,
"pattern": "^[a-z0-9-]+$",
"description": "Connected registrar ID from the registrars endpoint. Omit to compare all."
},
"registrars": {
"type": "string",
"maxLength": 200,
"pattern": "^[a-z0-9-]+(?:,[a-z0-9-]+)*$",
"description": "Comma-separated connected registrar IDs to compare together. Use instead of registrar. Cheapest-per-extension winners are chosen within this set."
},
"favorites": {
"type": "string",
"maxLength": 81,
"pattern": "^[a-z0-9-]+(?:,[a-z0-9-]+)?$",
"description": "Up to two distinct connected registrar IDs, comma-separated. Adds saved favorite offers and fresh baselines for this result page, independent of filters. Does not save preferences or check names."
},
"sort": {
"type": "string",
"enum": [
"renewal",
"registration",
"total"
],
"default": "renewal",
"description": "Ranking metric. Total uses a conservative new-registration estimate."
},
"orderBy": {
"type": "string",
"enum": [
"price",
"extension"
],
"default": "price",
"description": "Order results by the selected price metric or extension. Cheapest-per-extension winners are selected before ordering."
},
"direction": {
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "asc",
"description": "Ascending or descending result order. Unknown totals follow priced totals in either price direction."
},
"years": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 3,
"description": "Planning horizon in years, including initial registration."
},
"maxRenewalCents": {
"type": "integer",
"minimum": 0,
"maximum": 100000000,
"description": "Maximum annual renewal in integer USD cents; 1000 means USD 10."
},
"hideCountryCodes": {
"type": "boolean",
"default": false,
"description": "Exclude two-letter country-code extensions."
},
"hideJumps": {
"type": "boolean",
"default": false,
"description": "Exclude current renewal prices greater than twice registration."
},
"view": {
"type": "string",
"enum": [
"best",
"all"
],
"default": "best",
"description": "Best returns one winner per TLD; all returns every matching registrar offer."
},
"includeStale": {
"type": "boolean",
"default": false,
"description": "Accepted for compatibility. Saved prices stay in results until a successful refresh replaces them and are labeled stale. includeStale=true still requires view=all."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50,
"description": "Maximum number of results, up to 200."
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000,
"default": 0,
"description": "Result offset. Follow pagination.next for additional results; the feed can change between requests."
},
"name": {
"type": "string",
"pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
"maxLength": 63,
"description": "One ASCII domain label without the extension, such as myproject. Price and link tools only build links from it; availability and popularity tools send the exact domain to their providers."
},
"format": {
"type": "string",
"enum": [
"json",
"csv",
"markdown"
],
"default": "json",
"description": "Response representation. CSV and Markdown use the same filters, order and bounded pagination; they contain main offers, not favorite comparison arrays. MCP retains structured JSON alongside rendered text."
}
},
"additionalProperties": false
}