CoinWorldCap Developer Support Request a key

DEX tokens

GET https://open-api.coinworldcap.com/openapi/v1/dex/tokens

One list of DEX tokens, a page at a time, optionally on one chain, filtered and sorted.

Query parameters

Filters, each _min and _max inclusive. A filter sent empty is the same as one not sent: the list's default applies.

Filter Value Bounds
liquidity_min, liquidity_max decimal ≥ 0 liquidity
volume_min, volume_max decimal ≥ 0 the volume over window
market_cap_min, market_cap_max, fdv_min, fdv_max decimal ≥ 0 market_cap, fdv
txns_min, txns_max, traders_min, traders_max integer ≥ 0 transactions, traders over window
age_hours_min, age_hours_max decimal ≥ 0 hours since launch_time
percent_change_24h_min, percent_change_24h_max decimal percent_change["24h"], whatever window
percent_change_min, percent_change_max decimal the change over window
hide_high_risk true or false true drops risk_level high_risk; unknown and null stay. Rows from our backup copy of the 24-hour Trending list, served when the published list is unavailable, all carry risk_level null, so this filter drops none of them
has_social true or false true keeps tokens with a website, X or Telegram link

A token whose value is null does not pass a bound on it. A _min above its _max is an empty page. Each list has default filters, shown in filters.defaults: none on Trending; liquidity_min 10000, volume_min 1000 and hide_high_risk on New; liquidity_min 50000, volume_min 10000, percent_change_24h_max 100000 and hide_high_risk on Gainers. A filter you send replaces that list's default for it.

Which list. window=24h serves the list named. A shorter window on trending serves Trending's version for that window. On gainers, it serves Gainers' version for that window, followed by the tokens of the 24-hour Gainers and Trending lists that are not in it, by their change over the window, highest first, none above its last row. On new, every window serves the same list, with that window's figures. A list that is missing or more than three hours old is an empty page with data_time: null and stale: true; for a shorter window, the 24-hour list does not stand in for it.

Order without sort. The 24-hour Trending list by trending_rank, or by chain_rank on one chain. Every other list — Trending's shorter windows included — in the order CoinMarketCap gives it, with Gainers' fill after it.

Response

The example's values are illustrative, and filters shows five of its twenty keys.

Field Type Notes
items[] array [] past the last page
page, total_page, total number As on /assets; total counts the tokens after chain_slug and the filters
list, window string What was served
data_time string or null When the list was built; null when it is missing or more than three hours old
stale boolean The list is more than two hours old, or missing
filters.applied, filters.defaults object Every filter above by name: what this request used, and the list's defaults. Amounts, percentages and age_hours_* are decimal strings, txns_* and traders_* integers, null no bound; hide_high_risk and has_social are booleans
items[].id string The token's id: one per chain and address
items[].chain_slug, items[].address string Name the token on the other /dex endpoints
items[].symbol, items[].name, items[].logo string Those of the asset we match the token to, CoinMarketCap's otherwise — and CoinMarketCap's logo when that asset has none; logo is "" when there is none
items[].price, items[].volume_24h, items[].liquidity, items[].market_cap, items[].fdv string or null USD
items[].percent_change object Always the keys 5m, 1h, 4h, 24h; each a percentage string ("2.31" is 2.31%) or null
items[].txns, items[].traders number or null Over 24 hours
items[].windows object Always the keys 5m, 1h, 4h, 24h, each {volume, txns, traders}, any of them null
items[].trending_rank, items[].chain_rank number or null Its place in the 24-hour Trending list, overall and on its chain; null when it is not in it
items[].launch_time string or null When the token was created, as CoinMarketCap records it
items[].last_trade_time string or null The newest trade we have seen
items[].risk_level string or null safe, caution, high_risk or unknown, from CoinMarketCap. Tolerate a value you do not recognise
items[].inactive boolean No trade in 24 hours, or liquidity under $1,000

Examples

bash
# Trending, first page
curl -H "X-Api-Key: <your-api-key>" \
  "https://open-api.coinworldcap.com/openapi/v1/dex/tokens"

# The biggest 1-hour gainers on Solana with at least $50,000 of liquidity
curl -H "X-Api-Key: <your-api-key>" \
  "https://open-api.coinworldcap.com/openapi/v1/dex/tokens?list=gainers&window=1h&chain_slug=solana&liquidity_min=50000&sort=percent_change_1h:desc&limit=10"
HTTP status code When
400 40000 list, window or sort outside the values above; a filter that is not a number of its kind (a count that is not a whole number, an amount below zero, more than 64 characters, an exponent beyond ±64), or a switch other than true/false; a select name that is not an items[] field, or more than 100 names; the paging limits of /assets
503 50300 No Trending list younger than three hours

id and slug are not parameters here and are ignored. The other errors are in Errors.