Discovery and markets API
Where does this coin trade, and how deep and liquid is each market?
Every spot market of one coin, centralized and on-chain, by 24h volume: venue, pair, price, volume, spread and 2% depth, with outlier and stale flags. Paged.
/api/external/discovery/coin-marketsWhat it returns
Every spot market one coin trades on, centralized exchanges and on-chain venues alike, 100 per page, largest 24h USD volume first: the venue, the pair, the last price (in the quote and in USD), 24h volume, bid-ask spread, the USD depth that moves the price 2% either way, and whether the market is flagged as an outlier or stale. The coin is a coin id (bitcoin, pepe), the one coin answers. Ask the next page for more; a page past the last is empty. An unknown coin returns 404.
Chains
This endpoint is not tied to a chain: it takes no chain in its request.
Request
Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.
curl -H "x-dex-data-key: $DEXDATA_API_KEY" \ "https://api.dexdata.io/api/external/discovery/coin-markets"
| Parameter | Description |
|---|---|
coinquery · string · optional | The coin, by coin id, e.g. bitcoin, pepe, bonk. Defaults to bitcoin. |
pagequery · integer · optional | Which page of 100 markets, from 1. Defaults to 1. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
coin | string | The coin answered, by coin id, lowercase. |
page | integer | The page answered. |
markets | object[] | Up to 100 markets, largest 24h USD volume first. Empty past the last page. |
markets[].venueId | string | null | The venue id, e.g. binance, okex; the subject of spot-venue for a centralized venue. |
markets[].venueName | string | The venue name, e.g. Binance, Raydium. |
markets[].base | string | null | The base side of the pair, e.g. PEPE; on an on-chain venue the token address (EVM lowercased). Null for a Solana token whose address is not known exactly: baseCoinId still names it. |
markets[].target | string | null | The quote side of the pair, e.g. USDT; on an on-chain venue the token address (EVM lowercased, the zero address for the native coin). Null for a Solana token whose address is not known exactly: targetCoinId still names it. |
markets[].baseCoinId | string | null | The base side, by coin id. |
markets[].targetCoinId | string | null | The quote side, by coin id. Null for a fiat quote. |
markets[].price | number | null | Last price, in the quote currency. |
markets[].priceUsd | number | null | Last price, in USD. Sub-cent prices come rounded to 3 significant figures; price is not rounded. |
markets[].volumeBase24h | number | null | 24h volume, in base-currency units. |
markets[].volumeUsd24h | number | null | 24h volume, in USD. |
markets[].spreadPercent | number | null | Bid-ask spread, in percent (0.01 = 0.01%). |
markets[].depthPlus2PercentUsd | number | null | USD of asks that must be bought to move the price 2% up. Null when not known. |
markets[].depthMinus2PercentUsd | number | null | USD of bids that must be sold into to move the price 2% down. Null when not known. |
markets[].isAnomaly | boolean | null | true when the price is flagged as an outlier against the other markets. |
markets[].isStale | boolean | null | true when the market has not traded recently. |
markets[].lastTradedAt | string | null | Last trade, ISO-8601 UTC. |
Start building with DexData today
Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.
Get a free API key