Markets and Exchange Contracts
BTC-PERP identifies one perpetual market. Its contracts array lists the native exchange contracts, including their settlement assets and order-size units.
Public Routes
Section titled “Public Routes”| Route | Returns |
|---|---|
GET /v1/markets |
Perpetual markets and their exchange contracts |
GET /v1/markets/BTC-PERP |
All BTC contract mappings |
GET /v1/venues |
All 19 exchange IDs, names, categories, and websites |
These routes require no API key. List responses contain markets or venues, followed by pagination. An individual market returns its fields directly.
Each market has contract_type: "perpetual". Where supplied, a contract’s payoff_type distinguishes linear from inverse settlement. BTC, for example, includes USDT- and USDC-settled contracts alongside coin-settled inverse contracts.
# All exchange mappings for BTCcurl --fail-with-body 'https://api.trade8.xyz/v1/markets/BTC-PERP'
# OKX contracts settled in USDTcurl --fail-with-body \ 'https://api.trade8.xyz/v1/markets?venue=okx&settlement_asset=USDT&limit=10'
# All exchanges, or decentralized exchanges onlycurl --fail-with-body 'https://api.trade8.xyz/v1/venues'curl --fail-with-body 'https://api.trade8.xyz/v1/venues?type=decentralized'Filters and Pagination
Section titled “Filters and Pagination”Markets accept instrument, venue, settlement_asset, limit, and cursor. Exchange lists accept type, limit, and cursor. Markets default to 10 instruments per page; exchange lists default to 50. Both accept a maximum of 200. Use the identifiers exactly as returned, such as BTC-PERP, binance, and USDT.
Each instrument appears once. Filters narrow its contracts array to matching exchanges and settlement assets. Empty matches return an empty list. An unknown individual instrument returns 404 INSTRUMENT_NOT_FOUND; invalid or repeated parameters return 400 INVALID_PARAMETER.
Results sort by instrument or exchange ID. Pass pagination.next_cursor to fetch the next page with the same filters. A null cursor marks the final page. If a refresh invalidates a cursor, restart from the first page.
const url = new URL('https://api.trade8.xyz/v1/markets');url.searchParams.set('limit', '10');let cursor;do { if (cursor) url.searchParams.set('cursor', cursor); const response = await fetch(url); const page = await response.json(); if (!response.ok) throw new Error(page.error.message); for (const market of page.markets) { console.log(market.instrument, market.contracts.map(c => c.venue)); } cursor = page.pagination.next_cursor;} while (cursor);Native Contracts and Units
Section titled “Native Contracts and Units”Use venue and venue_instrument to identify a native contract. GMX pool addresses also include network, because Arbitrum and Avalanche have separate pools.
| Field | Meaning |
|---|---|
quantity_unit |
Native order-size unit: a base asset, USD, or contract |
contract_size, contract_size_unit |
Face value of one lot-based contract, when supplied |
price_unit |
Unit in which the contract price is quoted |
settlement_asset |
Settlement currency for a single-currency contract |
settlement_assets |
Pool settlement tokens when the token depends on the position side |
quantity_step |
Published native size increment, when supplied |
minimum_quantity, maximum_quantity |
Published limit-order size bounds |
minimum_notional |
Minimum order value in the price unit |
max_leverage |
Published exchange ceiling; account risk tiers can lower it |
Native quantity units differ. Binance BTC/USDT uses BTC quantities. OKX BTC/USDT uses contract lots with a published BTC face value. Binance BTC/USD inverse uses contracts with a USD face value and BTC settlement. Read the units before converting an order size.
GMX records identify the pool, network, and settlement tokens. Pool pricing and size rules differ from order books, so those records omit order-book tick and lot increments. Kraken Multi-M records use the default USD profit-and-loss currency; collateral and payout elections are account settings.
Price Rules
Section titled “Price Rules”price_rule.type identifies the published price constraint:
fixed_tick: prices are multiples ofprice_rule.tick_size.significant_figures: non-integer prices must satisfy bothmax_significant_figuresandmax_decimal_places.integer_prices_allowedpreserves the exchange’s integer-price exception.
Hyperliquid BTC allows five significant figures and one decimal place. 77000 is valid; 77000.1 has too many significant figures. Its quantity increment is 0.00001 BTC.
Optional rules appear when the source provides them. Use decimal arithmetic for prices, increments, and native contract conversions.
Coverage and Refresh
Section titled “Coverage and Refresh”The current metadata release contains 592 instruments and 5,288 exchange contracts, captured on 31 August 2026. It covers the 19 exchanges in the integration directory, including Binance, Bybit, OKX, Hyperliquid, dYdX, and GMX.
Instrument metadata is bundled at release time. The HTTP Last-Modified header records its refresh time. Live prices, order books, and account permissions have separate endpoints. Exchange listings and rules can change between metadata releases.
The crypto universe uses published asset classifications and native symbols. Multiplier-token names remain separate instruments. The directory lists all integrated exchanges; each market includes only its verified exchange mappings.
Prices and Funding
Section titled “Prices and Funding”last is the latest trade; mark_price supports exchange risk calculations; index_price tracks the reference index. Conditional orders select a trigger source and exchange.
Funding rates are decimal fractions for the supplied interval_hours: 0.0001 equals 0.01% for that interval. Read type and next_funding_at alongside the rate.
See the ticker, orderbook, funding, and exchange connectivity references for streaming messages. AI clients read the same market data through the public MCP tools.