GET /v1/markets
#GET /v1/marketslistMarkets
Every listed market: venue, symbol, base, quote, type, precision, tick size
| Scope | market:read |
|---|---|
| Lowest tier | sandbox |
| Weight (units) | computed per request (the X-Request-Weight header of the answer) |
| Paginated | yes: follow meta.next_cursor |
| SDK | Python client.market.markets ยท JavaScript cd.market.markets |
Parameters
| Parameter | In | Type | Description |
|---|---|---|---|
venue | query | string | Only this venue. |
type | query | "perp" | "spot" | Market type. |
base | query | string | Base coin. |
limit | query | integer | Rows per page, at most 5,000 (default 1000). |
cursor | query | string | meta.next_cursor of the previous page (opaque; bound to the route). |
Errors
400invalid_param, invalid_cursor401unauthorized: missing, unknown, revoked or expired key403insufficient_scope, tier_required404not_found, not_available, not_in_sandbox422window_too_large429rate_limited (per minute) or quota_exhausted (month; X-Quota-* headers, Retry-After = seconds to the next month); see Retry-After503api_disabled, overloaded
Example
curl "https://api.chartdeck.trade/v1/markets" \
-H "Authorization: Bearer $CHARTDECK_API_KEY"from chartdeck import Client
client = Client() # reads CHARTDECK_API_KEY
r = client.market.markets()
print(r.data, r.meta["attribution"])import { ChartDeck } from '@chartdeck/api';
const cd = new ChartDeck(); // reads CHARTDECK_API_KEY
const r = await cd.market.markets();
console.log(r.data, r.meta.attribution);