changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$defs": {
+ "AvailabilityAttempt": {
+ "properties": {
+ "availability": {
+ "enum": [
+ "available",
+ "unavailable",
+ "unknown"
+ ]
+ },
+ "checkedAt": {
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "expiresAt": {
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "outcome": {
+ "description": "Whether this stage returned an answer, failed before confirming evidence, or is still in progress. Optional for older responses.",
+ "enum": [
+ "answered",
+ "failed",
+ "pending"
+ ]
+ },
+ "premium": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "provider": {
+ "properties": {
+ "documentation": {
+ "format": "uri",
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "name",
+ "documentation"
+ ],
+ "type": "object"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "retryAfterSeconds": {
+ "description": "Suggested wait after a failed stage; never an evidence lifetime.",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "provider",
+ "availability",
+ "premium",
+ "reason",
+ "checkedAt",
+ "expiresAt"
+ ],
+ "type": "object"
+ },
+ "AvailabilityBatch": {
+ "properties": {
+ "apiVersion": {
+ "type": "string"
+ },
+ "cachedOnly": {
+ "type": "boolean"
+ },
+ "error": {
+ "description": "Partial failure: retain successful facts and wait before another explicit request. A confirmed Cloudflare-specific rate denial may continue through admitted fallback providers. Caller or shared-storage failure with no returned results uses the ordinary HTTP/MCP error envelope.",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "domains": {
+ "description": "When present, only these domains have a paused fallback.",
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "retryAfterSeconds": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "code",
+ "retryAfterSeconds"
+ ],
+ "type": "object"
+ },
+ "results": {
+ "items": {
+ "$ref": "#/$defs/AvailabilityEvidence"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "service": {
+ "$ref": "#/$defs/ServiceInformation"
+ },
+ "unconfirmedDomains": {
+ "description": "Domains with unknown availability, not taken domains. Premium must be inspected separately even when this list is empty.",
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 20,
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiVersion",
+ "service",
+ "results",
+ "unconfirmedDomains",
+ "cachedOnly"
+ ],
+ "type": "object"
+ },
+ "AvailabilityEvidence": {
+ "properties": {
+ "attempts": {
+ "items": {
+ "$ref": "#/$defs/AvailabilityAttempt"
+ },
+ "maxItems": 5,
+ "type": "array"
+ },
+ "availability": {
+ "description": "Registration status; independent of premium classification.",
+ "enum": [
+ "available",
+ "unavailable",
+ "unknown"
+ ]
+ },
+ "checkedAt": {
+ "description": "Successful provider response time; null when no reliable result was obtained.",
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "domain": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "description": "Recheck after this time; never a reservation or guarantee until expiry.",
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "fallback": {
+ "properties": {
+ "reason": {
+ "type": "string"
+ },
+ "registrar": {
+ "type": "string"
+ },
+ "state": {
+ "enum": [
+ "used",
+ "unavailable"
+ ]
+ }
+ },
+ "required": [
+ "registrar",
+ "state",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "listEnrichmentComplete": {
+ "description": "Batch results: true when availability is known or every configured fallback stage has answered for this name. False means a later explicit request may add facts; it never means taken.",
+ "type": "boolean"
+ },
+ "message": {
+ "type": "string"
+ },
+ "premium": {
+ "description": "Null means not confirmed, never standard tier.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "provider": {
+ "properties": {
+ "documentation": {
+ "format": "uri",
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "name",
+ "documentation"
+ ],
+ "type": "object"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "registrar": {
+ "type": "string"
+ },
+ "status": {
+ "enum": [
+ "available",
+ "unavailable",
+ "premium",
+ "unsupported",
+ "unknown"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "domain",
+ "status",
+ "reason",
+ "message",
+ "provider",
+ "checkedAt",
+ "expiresAt"
+ ],
+ "type": "object"
+ },
+ "Error": {
+ "properties": {
+ "apiVersion": {
+ "type": "string"
+ },
+ "error": {
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "retryAfterSeconds": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "apiVersion",
+ "error"
+ ],
+ "type": "object"
+ },
+ "ServiceInformation": {
+ "description": "Cheapest Domains identity and optional setup links, separate from upstream evidence. Does not establish client installation or provider health.",
+ "properties": {
+ "name": {
+ "const": "Cheapest Domains"
+ },
+ "pluginUrl": {
+ "format": "uri",
+ "type": "string"
+ },
+ "setupUrl": {
+ "format": "uri",
+ "type": "string"
+ },
+ "url": {
+ "format": "uri",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url",
+ "setupUrl",
+ "pluginUrl"
+ ],
+ "type": "object"
+ }
+ },
+ "anyOf": [
+ {
+ "$ref": "#/$defs/AvailabilityBatch"
+ },
+ {
+ "$ref": "#/$defs/Error"
+ }
+ ],
+ "description": "Successful results are AvailabilityBatch, the REST 200 response; results with isError: true are Error.",
+ "type": "object"
+}