changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": true,
+ "properties": {
+ "available": {
+ "description": "False when this call has no data — a snapshot that is not warm yet, a domain switched off, or an argument that was rejected. NOT an error, and NOT a statement about the market.",
+ "type": "boolean"
+ },
+ "fetchedAt": {
+ "additionalProperties": true,
+ "description": "Per-leg refresh times — positioning and funding age independently."
+ },
+ "funding": {
+ "additionalProperties": true,
+ "description": "Perp funding rates, their extremes, divergences and momentum.",
+ "properties": {
+ "available": {
+ "description": "False when the funding leg could not be read."
+ },
+ "divergences": {
+ "description": "Assets whose funding disagrees across venues.",
+ "items": {},
+ "type": "array"
+ },
+ "extremes": {
+ "additionalProperties": true,
+ "description": "Most positive and most negative funding."
+ },
+ "marketRegime": {
+ "description": "Regime implied by funding across the book."
+ },
+ "opportunities": {
+ "description": "Funding-carry candidates.",
+ "items": {},
+ "type": "array"
+ },
+ "rates": {
+ "additionalProperties": true,
+ "description": "Funding rate per asset."
+ }
+ }
+ },
+ "limit": {
+ "description": "Row cap applied to every list in this payload.",
+ "type": "number"
+ },
+ "reason": {
+ "description": "Why the payload is absent, when `available` is false.",
+ "type": "string"
+ },
+ "truncated": {
+ "additionalProperties": true,
+ "description": "Present only when a list was cut to `limit`.",
+ "properties": {
+ "limit": {
+ "description": "The cap that was applied.",
+ "type": "number"
+ },
+ "originalLengths": {
+ "additionalProperties": true,
+ "description": "Field name → its full length before the cut."
+ }
+ }
+ },
+ "whales": {
+ "additionalProperties": true,
+ "description": "Whale positioning: the consensus read, the bullish/bearish assets and the traders behind it.",
+ "properties": {
+ "available": {
+ "description": "False when the positioning leg could not be read."
+ },
+ "bearishAssets": {
+ "description": "Assets the cohort is net short.",
+ "items": {},
+ "type": "array"
+ },
+ "bullishAssets": {
+ "description": "Assets the cohort is net long.",
+ "items": {},
+ "type": "array"
+ },
+ "consensus": {
+ "description": "Net directional read across the traders."
+ },
+ "topTraders": {
+ "description": "The traders behind the read.",
+ "items": {},
+ "type": "array"
+ },
+ "tradersAnalyzed": {
+ "description": "Traders actually read."
+ },
+ "tradersRequested": {
+ "description": "Traders the pass tried to read — a gap means partial coverage."
+ },
+ "whalePositions": {
+ "description": "Individual positions.",
+ "items": {},
+ "type": "array"
+ }
+ }
+ }
+ },
+ "type": "object"
+}