changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$defs": {
+ "IntegrationMarketSlug": {
+ "description": "Published English-name market slug returned by authorized discovery.",
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
+ "type": "string"
+ },
+ "IntegrationNotice": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "approaching_limit",
+ "limit_reached"
+ ]
+ },
+ "limit": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "nextCapacityAt": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/IntegrationTimestamp"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "period": {
+ "enum": [
+ "day",
+ "week",
+ "month"
+ ]
+ },
+ "remaining": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "used": {
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "id",
+ "period",
+ "kind",
+ "message",
+ "used",
+ "limit",
+ "remaining",
+ "nextCapacityAt"
+ ],
+ "type": "object"
+ },
+ "IntegrationPerformance": {
+ "additionalProperties": false,
+ "description": "Market-wide historical evidence at each published classifier probability threshold and reporting period. Sample counts and missing rates are preserved; this is not evidence matched to each current output.",
+ "properties": {
+ "defaultProbabilityThresholdPercent": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "latestReport": {
+ "$ref": "#/$defs/IntegrationReportEvidence"
+ },
+ "market": {
+ "$ref": "#/$defs/IntegrationMarketSlug"
+ },
+ "periods": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "period": {
+ "enum": [
+ "d1",
+ "d7",
+ "d30",
+ "all_time"
+ ]
+ },
+ "points": {
+ "items": {
+ "$ref": "#/$defs/IntegrationPerformancePoint"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "period",
+ "points"
+ ],
+ "type": "object"
+ },
+ "maxItems": 4,
+ "minItems": 4,
+ "type": "array"
+ },
+ "sourceAt": {
+ "$ref": "#/$defs/IntegrationTimestamp"
+ },
+ "url": {
+ "description": "The market's page on kunkafa.com.",
+ "format": "uri",
+ "pattern": "^https://kunkafa\\.com/markets/[a-z0-9-]+/$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "market",
+ "sourceAt",
+ "defaultProbabilityThresholdPercent",
+ "periods"
+ ],
+ "type": "object"
+ },
+ "IntegrationPerformanceHeadline": {
+ "additionalProperties": false,
+ "description": "The row to read first: past results at one published confidence level for each reporting period. basis is default (the market's default level) or requested (the nearest level at or below probabilityPercent).",
+ "properties": {
+ "basis": {
+ "enum": [
+ "default",
+ "requested"
+ ]
+ },
+ "periods": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "period": {
+ "enum": [
+ "d1",
+ "d7",
+ "d30",
+ "all_time"
+ ]
+ },
+ "sampleCount": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "status": {
+ "enum": [
+ "available",
+ "insufficient"
+ ]
+ },
+ "targetsReachedPercent": {
+ "anyOf": [
+ {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "period",
+ "sampleCount",
+ "targetsReachedPercent",
+ "status"
+ ],
+ "type": "object"
+ },
+ "maxItems": 4,
+ "minItems": 4,
+ "type": "array"
+ },
+ "probabilityThresholdPercent": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "probabilityThresholdPercent",
+ "basis",
+ "periods"
+ ],
+ "type": "object"
+ },
+ "IntegrationPerformancePoint": {
+ "additionalProperties": false,
+ "description": "Published classifier probability threshold and observed target-touch rate. Rates are null for fewer than 100 examples or missing evidence; classifier probability is separate from historical success.",
+ "properties": {
+ "probabilityThresholdPercent": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "sampleCount": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "status": {
+ "enum": [
+ "available",
+ "insufficient"
+ ]
+ },
+ "targetsReachedPercent": {
+ "anyOf": [
+ {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "probabilityThresholdPercent",
+ "sampleCount",
+ "targetsReachedPercent",
+ "status"
+ ],
+ "type": "object"
+ },
+ "IntegrationReportBreakdown": {
+ "additionalProperties": false,
+ "description": "The market's latest full published report: every settled forecast placed in one of eight bands by how far price travelled toward its target within the duration, as a percent of the distance to the target (100 is the target itself; 300 is three times that distance, not a price change). All eight bands are always present.",
+ "properties": {
+ "bands": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "fromPct": {
+ "type": "number"
+ },
+ "key": {
+ "type": "string"
+ },
+ "toPct": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "key",
+ "fromPct",
+ "toPct"
+ ],
+ "type": "object"
+ },
+ "maxItems": 8,
+ "minItems": 8,
+ "type": "array"
+ },
+ "edition": {
+ "const": "full"
+ },
+ "floors": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "bandsPercent": {
+ "description": "Share of the settled forecasts in each band, in the order of bands; sums to 100.",
+ "items": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "maxItems": 8,
+ "minItems": 8,
+ "type": "array"
+ },
+ "down": {
+ "$ref": "#/$defs/IntegrationReportShares"
+ },
+ "minimumProbabilityPercent": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "settledForecasts": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "up": {
+ "$ref": "#/$defs/IntegrationReportShares"
+ }
+ },
+ "required": [
+ "minimumProbabilityPercent",
+ "settledForecasts",
+ "bandsPercent",
+ "up",
+ "down"
+ ],
+ "type": "object"
+ },
+ "maxItems": 20,
+ "minItems": 1,
+ "type": "array"
+ },
+ "generatedAt": {
+ "type": "string"
+ },
+ "market": {
+ "type": "string"
+ },
+ "reportUrl": {
+ "pattern": "^https://kunkafa\\.com/reports/",
+ "type": "string"
+ },
+ "window": {
+ "additionalProperties": false,
+ "properties": {
+ "from": {
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ "to": {
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "from",
+ "to"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "market",
+ "edition",
+ "window",
+ "generatedAt",
+ "reportUrl",
+ "bands",
+ "floors"
+ ],
+ "type": "object"
+ },
+ "IntegrationReportEvidence": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "$ref": "#/$defs/IntegrationReportBreakdown"
+ },
+ "status": {
+ "const": "available"
+ }
+ },
+ "required": [
+ "status",
+ "data"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "type": "null"
+ },
+ "status": {
+ "const": "unavailable"
+ }
+ },
+ "required": [
+ "status",
+ "data"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "IntegrationReportShares": {
+ "additionalProperties": false,
+ "properties": {
+ "bandsPercent": {
+ "description": "Share of the settled forecasts in each band, in the order of bands; sums to 100.",
+ "items": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "maxItems": 8,
+ "minItems": 8,
+ "type": "array"
+ },
+ "settledForecasts": {
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "settledForecasts",
+ "bandsPercent"
+ ],
+ "type": "object"
+ },
+ "IntegrationTimestamp": {
+ "description": "ISO 8601 UTC timestamp supplied by Kunkafa.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "IntegrationUsage": {
+ "additionalProperties": false,
+ "properties": {
+ "adjustment": {
+ "additionalProperties": false,
+ "description": "An owner-approved account allowance increase. A null expiration is permanent until changed. Usage is never reset; market access and credential eligibility still follow the current plan.",
+ "properties": {
+ "expiresAt": {
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "expiresAt"
+ ],
+ "type": "object"
+ },
+ "calculatedAt": {
+ "$ref": "#/$defs/IntegrationTimestamp"
+ },
+ "concurrency": {
+ "additionalProperties": false,
+ "description": "Private requests that can run at the same time. Requests from one connection run side by side up to this limit (the plan burst); a request from another connection waits until they finish.",
+ "properties": {
+ "limit": {
+ "maximum": 100,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "nextRequestAt": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/IntegrationTimestamp"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "remaining": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "limit",
+ "remaining",
+ "nextRequestAt"
+ ],
+ "type": "object"
+ },
+ "requests": {
+ "additionalProperties": false,
+ "description": "Steady request rate with bounded burst capacity; metadata and repeated summaries still count toward request protection.",
+ "properties": {
+ "burst": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "nextRequestAt": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/IntegrationTimestamp"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "perMinute": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "remaining": {
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "perMinute",
+ "burst",
+ "remaining",
+ "nextRequestAt"
+ ],
+ "type": "object"
+ },
+ "tier": {
+ "enum": [
+ "free",
+ "starter",
+ "core",
+ "pro",
+ "publisher"
+ ]
+ },
+ "windows": {
+ "items": {
+ "$ref": "#/$defs/IntegrationWindowUsage"
+ },
+ "maxItems": 3,
+ "minItems": 3,
+ "type": "array"
+ }
+ },
+ "required": [
+ "calculatedAt",
+ "tier",
+ "requests",
+ "concurrency",
+ "windows"
+ ],
+ "type": "object"
+ },
+ "IntegrationWindowUsage": {
+ "additionalProperties": false,
+ "description": "Rolling 24-hour, 7-day or 30-day allowance, not a midnight reset. Used can exceed the current limit after a downgrade; remaining is never negative.",
+ "properties": {
+ "limit": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "nextCapacityAt": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/IntegrationTimestamp"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "notice": {
+ "enum": [
+ "approaching_limit",
+ "limit_reached",
+ null
+ ]
+ },
+ "noticeId": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "period": {
+ "enum": [
+ "day",
+ "week",
+ "month"
+ ]
+ },
+ "remaining": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "used": {
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "period",
+ "used",
+ "limit",
+ "remaining",
+ "nextCapacityAt",
+ "notice",
+ "noticeId"
+ ],
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/IntegrationPerformance"
+ },
+ {
+ "required": [
+ "url"
+ ]
+ }
+ ]
+ },
+ "dataUse": {
+ "description": "Use restriction on every reply: data collection is prohibited; the data may not be collected, saved, stored, exported or compiled, or used to train, retrain, fine-tune or distil any model.",
+ "type": "string"
+ },
+ "fieldGuide": {
+ "additionalProperties": false,
+ "description": "Plain meanings of the returned fields.",
+ "properties": {
+ "latestReport": {
+ "type": "string"
+ },
+ "periods": {
+ "type": "string"
+ },
+ "probabilityThresholdPercent": {
+ "type": "string"
+ },
+ "sampleCount": {
+ "type": "string"
+ },
+ "targetsReachedPercent": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "periods",
+ "probabilityThresholdPercent",
+ "targetsReachedPercent",
+ "sampleCount",
+ "latestReport"
+ ],
+ "type": "object"
+ },
+ "headline": {
+ "$ref": "#/$defs/IntegrationPerformanceHeadline"
+ },
+ "notices": {
+ "items": {
+ "$ref": "#/$defs/IntegrationNotice"
+ },
+ "maxItems": 3,
+ "type": "array"
+ },
+ "usage": {
+ "$ref": "#/$defs/IntegrationUsage"
+ }
+ },
+ "required": [
+ "data",
+ "usage",
+ "notices",
+ "dataUse",
+ "fieldGuide",
+ "headline"
+ ],
+ "type": "object"
+}