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"
+ },
+ "crossAsset": {
+ "additionalProperties": true,
+ "description": "Cross-asset ranking plus the universe/cohort sizes it was drawn from.",
+ "properties": {
+ "cohortSize": {
+ "description": "Assets in the ranked cohort."
+ },
+ "gainers": {
+ "description": "Top gainers.",
+ "items": {},
+ "type": "array"
+ },
+ "losers": {
+ "description": "Top losers.",
+ "items": {},
+ "type": "array"
+ },
+ "universeSize": {
+ "description": "Assets considered before filtering."
+ }
+ }
+ },
+ "errors": {
+ "description": "Legs that failed. A partial answer says so here rather than reading as a quiet market.",
+ "items": {
+ "description": "Error text."
+ },
+ "type": "array"
+ },
+ "fetchedAt": {
+ "description": "When the underlying snapshot was refreshed (epoch ms, or ISO-8601 for the Bitcoin cycle feed). Age matters: these are cached reads, not live queries."
+ },
+ "idSource": {
+ "description": "Source of the asset identifiers."
+ },
+ "limit": {
+ "description": "Row cap applied to every list in this payload.",
+ "type": "number"
+ },
+ "perChain": {
+ "additionalProperties": true,
+ "description": "Per-chain movers, keyed by chain."
+ },
+ "perChainUnavailable": {
+ "description": "True when the per-chain leg could not be read."
+ },
+ "reason": {
+ "description": "Why the payload is absent, when `available` is false.",
+ "type": "string"
+ },
+ "side": {
+ "description": "Which side was asked for — gainers or losers."
+ },
+ "source": {
+ "description": "Price source behind the cross-asset ranking."
+ },
+ "stale": {
+ "description": "True when the snapshot is past its refresh interval."
+ }
+ },
+ "type": "object"
+}