Markets
One market-discovery endpoint across every venue.
GET/context/markets
Search or list instruments on any supported venue.
Query parameters
| Param | Type | Notes |
|---|---|---|
venue | string | Required. hyperliquid, lighter, polymarket, binance |
q | string | Optional free-text search (symbol, name; for Polymarket, the question text) |
status | string | live (default), backtest_ready, all |
limit / cursor | Pagination, max 200 per page |
Response — 200 (Hyperliquid example)
{
"markets": [
{
"venue": "hyperliquid",
"symbol": "BTC",
"kind": "perp",
"status": "live",
"backtest_ready": true,
"framework_symbols": {
"freqtrade": "BTC/USDC:USDC",
"nautilus": "BTC-PERP.HYPERLIQUID"
},
"tick_size": 0.1,
"min_order_usd": 10,
"max_leverage": 40
}
],
"next_cursor": null
}
Response — 200 (Polymarket example — outcome markets carry their question and resolution date)
{
"markets": [
{
"venue": "polymarket",
"symbol": "512329.POLYMARKET",
"kind": "binary",
"status": "live",
"backtest_ready": true,
"question": "Will the Fed cut rates at the September 2026 meeting?",
"resolves_at": "2026-09-16T18:00:00Z",
"yes_price": 0.62
}
],
"next_cursor": "eyJvZmZzZXQiOjIwMH0"
}
backtest_ready
The one flag that matters for a research loop: true means the market's history is inside a published dataset release, so POST /runtime/backtests will accept it. A market can be live but not yet backtest_ready (new listings enter the dataset on the next backfill cycle). Filtering with status=backtest_ready gives you exactly the universe you can validate on.
Identifier conventions
symbol is the canonical venue-native market id across Context endpoints (/context/markets, /context/candles, /context/funding, datasets). Use it when reading market data or addressing a market through the API.
Framework-specific aliases live under framework_symbols. Use the alias matching your deployment's framework inside framework-native strategy config:
Framework-native spellings live in the market object's framework_symbols map and are used in exactly one place: your strategy's config (freqtrade pair_whitelist, Nautilus instrument_ids). Where an alias equals the canonical form, the map still lists it — agents never have to guess.
| Venue | Canonical symbol | framework_symbols.freqtrade | framework_symbols.nautilus |
|---|---|---|---|
| Hyperliquid | BTC/USDC:USDC | BTC/USDC:USDC | BTC-PERP.HYPERLIQUID |
| Binance | ETH/USDT | ETH/USDT | — |
| Lighter | SOL-PERP.LIGHTER | — | SOL-PERP.LIGHTER |
| Polymarket | 512329.POLYMARKET | — | 512329.POLYMARKET |
When a symbol goes in a URL path (e.g. GET /context/setup/:pair), URL-encode the canonical symbol. The API never guesses between venue-native ids and framework aliases; sending a framework alias where a Context endpoint expects symbol returns 400 symbol_not_canonical with the canonical candidate when one can be found.