{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "listCapabilities response 200",
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"description": "What one venue serves for one data type.",
"type": "object",
"properties": {
"available_from": {
"description": "First served instant (RFC 3339, UTC). Null when the data type has no venue-wide floor; see `/v1/symbols` for per-symbol coverage.",
"type": "string",
"format": "date-time",
"nullable": true
},
"cadence": {
"description": "How rows are produced: `event`, `snapshot`, `sample`, `interval`, or `reference`.",
"type": "string",
"example": "event"
},
"datatype": {
"description": "Data type, for example `trades`, `l4_diffs`, or `candles`.",
"type": "string",
"example": "trades"
},
"intervals": {
"description": "Values the `interval` parameter accepts. Empty when it does not apply.",
"type": "array",
"items": {
"type": "string"
}
},
"live": {
"description": "True when the WebSocket channels stream live data.",
"type": "boolean"
},
"notes": {
"description": "Data-type caveats, such as a policy floor or a replay restriction.",
"type": "string",
"nullable": true
},
"page_limit": {
"description": "Largest `limit` the REST routes accept. Null when the routes do not page.",
"type": "integer",
"nullable": true
},
"replay": {
"description": "True when the WebSocket channels support historical replay.",
"type": "boolean"
},
"rest_routes": {
"description": "REST route templates that serve the data type.",
"type": "array",
"items": {
"type": "string"
}
},
"venue": {
"description": "Venue, as `meta.venue` and `/v1/symbols` name it.",
"type": "string",
"enum": [
"hyperliquid",
"hip3",
"hip4",
"spot",
"lighter",
"rh-lighter"
]
},
"ws_channels": {
"description": "WebSocket channels that carry the data type. Empty when it is REST-only.",
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"meta": {
"description": "Response metadata",
"type": "object",
"properties": {
"count": {
"description": "Number of records returned",
"type": "integer"
},
"coverage_from": {
"description": "Earliest coverage for the requested symbol and data type. Present only when the requested window ends before coverage begins.",
"type": "string",
"format": "date-time"
},
"has_more": {
"description": "Present on cursor-paged routes: true when another page exists. `next_cursor` is present exactly when it is true.",
"type": "boolean"
},
"next_cursor": {
"description": "Cursor for pagination (timestamp). Use this value as the `cursor` parameter to fetch the next page of results.",
"type": "string",
"nullable": true
},
"notice": {
"description": "Human-readable advisory about the response. Used when the requested window ends before coverage begins for the symbol, and on CVD responses that are one page of several; may carry other advisories in future.",
"type": "string"
},
"request_id": {
"description": "Unique request ID for support",
"type": "string",
"format": "uuid"
},
"symbol": {
"description": "Present on per-symbol routes: the symbol the response covers.",
"type": "string"
},
"venue": {
"description": "Present on per-symbol routes: the venue the response covers, for example `hyperliquid` or `hip3`.",
"type": "string"
}
}
},
"success": {
"type": "boolean",
"example": true
}
}
}