Centralized exchanges with CoinGecko trust scores, 24h BTC-denominated volume, jurisdiction and year established.
trust_score, trade_volume_24h_btc and url are on every record; year_established on 97% and country on 93%. Small enough to walk in full — 150 rows is one page at limit=200.
Every field the corpus returns for one record. Real shape — walked corpus-wide, not sampled.
A curl that runs against the live API right now, plus the MCP tool names for the same data.
MCP tools
get_exchangesget_exchanges_detailThree concrete questions this capability answers that a general crypto API does not.
?min_trust_score=9 returns the 19 exchanges scoring 9 or 10, out of 150.country is a real field on 93% of rows and also arrives as a tag, so "which venues are domiciled where" needs no string matching.trade_volume_24h_btc is BTC-denominated across every venue, so it compares directly without an FX step.Required, not optional. Coverage gaps, staleness and parameter traps that were observed by running the curl above against the live server on 2026-09-18.
has_trading_incentive is false on all 150.
Walked the full set on 20 Sep 2026: not one exchange has it set. The filter works — ?has_trading_incentive=true returns 0 and false returns 150 — but it partitions nothing useful. Do not build a facet on it.
ordering and sort_by are documented here but not live.
?ordering=trust_score and ?ordering=-trust_score return identical rows, so the parameter does nothing on the public API yet; ?sort_by=trust_score returns 400. Sort the 150 rows client-side — trust_score_rank is already on each record.
description is missing on a third of rows.
100 of 150 carry one. A venue card that requires description will render empty for a third of the set, including venues with a perfect trust score.