changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$defs": {
+ "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"
+ },
+ "Popularity": {
+ "properties": {
+ "apiVersion": {
+ "type": "string"
+ },
+ "bucket": {
+ "description": "Top-N popularity group, without an exact position inside it. Null does not mean zero competition.",
+ "enum": [
+ null,
+ 200,
+ 500,
+ 1000,
+ 2000,
+ 5000,
+ 10000,
+ 20000,
+ 50000,
+ 100000,
+ 200000,
+ 500000,
+ 1000000
+ ],
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "categories": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "dataPeriod": {
+ "properties": {
+ "end": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "start": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ "required": [
+ "start",
+ "end"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "domain": {
+ "type": "string"
+ },
+ "expiresAt": {
+ "description": "Six-hour application cache expiry, not the dataset publication date.",
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "fetchedAt": {
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "limits": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "message": {
+ "type": "string"
+ },
+ "rank": {
+ "description": "Exact global DNS popularity rank, only for the top 100. Not a Google rank.",
+ "maximum": 100,
+ "minimum": 1,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "reason": {
+ "type": "string"
+ },
+ "reportedBucket": {
+ "description": "Provider bucket as supplied, including lower-bound markers such as >200000. A lower bound is not an exact rank or proof of traffic.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "service": {
+ "$ref": "#/$defs/ServiceInformation"
+ },
+ "source": {
+ "properties": {
+ "attribution": {
+ "type": "string"
+ },
+ "documentation": {
+ "format": "uri",
+ "type": "string"
+ },
+ "id": {
+ "const": "cloudflare-radar"
+ },
+ "license": {
+ "const": "CC BY-NC 4.0"
+ },
+ "licenseUrl": {
+ "const": "https://creativecommons.org/licenses/by-nc/4.0/"
+ },
+ "name": {
+ "const": "Cloudflare Radar"
+ },
+ "url": {
+ "format": "uri",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "name",
+ "url",
+ "documentation",
+ "license",
+ "licenseUrl",
+ "attribution"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "enum": [
+ "ranked",
+ "not_listed",
+ "unknown"
+ ],
+ "type": "string"
+ },
+ "topLocations": {
+ "items": {
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "rank": {
+ "minimum": 1,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "code",
+ "name",
+ "rank"
+ ],
+ "type": "object"
+ },
+ "maxItems": 5,
+ "type": "array"
+ }
+ },
+ "required": [
+ "service",
+ "apiVersion",
+ "domain",
+ "status",
+ "reason",
+ "message",
+ "rank",
+ "bucket",
+ "reportedBucket",
+ "categories",
+ "topLocations",
+ "dataPeriod",
+ "fetchedAt",
+ "expiresAt",
+ "source",
+ "limits"
+ ],
+ "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/Popularity"
+ },
+ {
+ "$ref": "#/$defs/Error"
+ }
+ ],
+ "description": "Successful results are Popularity, the REST 200 response; results with isError: true are Error.",
+ "type": "object"
+}