GET /v1/catalog
Updated
What does GET /v1/catalog do?
The full schema: every venue, every column, its unit and the plan it unlocks on. The catalog is the machine-readable description of everything the API can return. An agent or SDK reads it once to discover which venues exist, which columns each row carries, the unit of each column, and the plan each column unlocks on.
It is the one endpoint that answers without an API key, so a client can discover the schema before it authenticates. A key still works and returns the same document.
Because the column set is derived from the same plan configuration the data endpoints enforce, the catalog is always in step with what a given key can actually read.
Authentication
No key required (public). Set $BF to the API base and pass your key in $BLACKFORGE_API_KEY.
Parameters
None. GET /v1/catalog takes no query parameters.
Example request
curl \
"$BF/v1/catalog"Example response
{
"venues": [
{
"venue": "binance",
"minPlan": "free"
},
{
"venue": "bitget",
"minPlan": "pro"
},
{
"venue": "bybit",
"minPlan": "pro"
},
{
"venue": "coinbase",
"minPlan": "pro"
},
{
"venue": "gate",
"minPlan": "free"
},
{
"venue": "kraken",
"minPlan": "pro"
},
{
"venue": "kucoin",
"minPlan": "pro"
},
{
"venue": "mexc",
"minPlan": "free"
},
{
"venue": "okx",
"minPlan": "pro"
}
],
"metrics": [
{
"key": "exchange",
"label": "Exchange",
"family": "keys",
"unit": "index",
"quoteRelative": false,
"nullable": false,
"description": "The exchange the snapshot came from.",
"plottable": false,
"minPlan": "free"
},
{
"key": "symbol",
"label": "Symbol",
"family": "keys",
"unit": "index",
"quoteRelative": false,
"nullable": false,
"description": "The trading pair the snapshot describes.",
"plottable": false,
"minPlan": "free"
},
{
"key": "ts",
"label": "Snapshot time",
"family": "keys",
"unit": "ms",
"quoteRelative": false,
"nullable": false,
"description": "The time the 5-minute window closed.",
"plottable": false,
"minPlan": "free"
},
"… (120 metrics in all)"
]
}Returns
A JSON object with a venues array (each venue and the lowest plan that can query it) and a metrics array (each column with its key, label, family, unit, and the plan it unlocks on).
Responses and errors
| Status | When |
|---|---|
200 | Always, for any valid request. No key is required. |
Columns it returns
Each column is defined on its own page. Taker buy volume, Depth within 30 bps. See the full metric reference.