Finding a Coin ID
Most endpoints require a coin ID (e.g.bitcoin, ethereum).
Find a coin’s API ID on its CoinGecko page, via Coins List, or this Google Sheet.

Using Contract Addresses
Query by contract address instead of coin ID — useful when you don’t know the CoinGecko ID.id: asset platform ID (e.g.ethereum)contract_addresses: token contract address

Not all coins have a contract address on CoinGecko. If unlisted, you can’t query by address.
include_platform=true:
Target Currencies
| Type | Examples |
|---|---|
| Fiat | usd, eur, jpy, gbp |
| Crypto | btc, eth, bnb |
Bulk Queries
/coins/markets — price and market data for many coins at once (up to 250 per page).Historical Data
| Endpoint | Query by | Description |
|---|---|---|
| /coins/{id}/history | Coin ID | Snapshot at a specific date |
| /coins/{id}/market_chart | Coin ID | Time series over N days |
| /coins/{id}/market_chart/range | Coin ID | Time series within a date range |
| /coins/{id}/contract/{address}/market_chart | Contract address | Time series over N days |
| /coins/{id}/contract/{address}/market_chart/range | Contract address | Time series within a date range |
Auto-granularity based on time range:
- 1 day from now → 5-minute intervals
- 1 day from any other time → hourly
- 2–90 days → hourly
- 90+ days → daily (00:00 UTC)
Common Patterns
| Pattern | How |
|---|---|
| BTC exchange rate | Current: Use /exchange_rates Historical: Use /coins/id/history |
| BTC dominance | Use /global Read market_cap_percentage.btc |
| Category market caps | Use /coins/categories Includes 24h change |
| Sparkline | Use /coins/id or /coins/markets Set sparkline=true |
| Stale price detection | Use /simple/price Set include_last_updated_at=true |
| Inactive coins | Use /coins/list with status=inactiveThen query historical endpoints Paid plan only |
| DEX vs CEX | Use /exchanges/id Check "centralized": false |

