# Coin Markets API
> Live "where to trade" data for any crypto coin — no key needed. The markets endpoint returns every spot market for a coin across all exchanges: the exchange, the trading pair, the last price, 24h volume (also converted to USD), the bid/ask spread and CoinGecko's trust score — so you can see where a coin trades, at what price and with what liquidity, ideal for arbitrage and best-execution. The exchanges endpoint aggregates that to per-exchange USD volume and pair counts for the coin. Pass the coin as a CoinGecko id (bitcoin, ethereum, solana); common tickers (BTC, ETH, SOL…) are mapped automatically. Data comes live from the public CoinGecko feed — nothing stored. This is the cross-exchange market view for a single coin, distinct from the single-venue exchange tickers, the whole-market data and the single-coin-profile APIs in the catalogue.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/coinmarkets-api/..."
```

## Pricing
- **Free** (Free) — 21,300 calls/Mo, 3 req/s
- **Starter** ($9/Mo) — 284,000 calls/Mo, 10 req/s
- **Growth** ($25/Mo) — 1,255,000 calls/Mo, 25 req/s
- **Scale** ($60/Mo) — 4,410,000 calls/Mo, 50 req/s

## Endpoints

### Markets

#### `GET /v1/markets` — All spot markets for a coin across exchanges

**Parameters:**
- `coin` (query, required, string) — CoinGecko id or ticker Example: `bitcoin`
- `target` (query, optional, string) — Filter by quote currency Example: `USDT`
- `limit` (query, optional, string) — Max results (1-200) Example: `50`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/coinmarkets-api/v1/markets?coin=bitcoin&target=USDT&limit=50"
```

**Response:**
```json
{
    "data": {
        "coin": "bitcoin",
        "count": 40,
        "source": "CoinGecko",
        "markets": [
            {
                "base": "BTC",
                "last": 62672.99,
                "stale": false,
                "target": "USDT",
                "volume": 16278.4035,
                "anomaly": false,
                "exchange": "Binance",
                "last_usd": 62598,
                "trade_url": "https://www.binance.com/en/trade/BTC_USDT?ref=37754157",
                "spread_pct": 0.010013,
                "volume_usd": 1018991960,
                "trust_score": null
            },
            {
                "base": "BTC",
                "last": 62680.1,
                "stale": false,
                "target": "USDT",
                "volume": 15017.192807031,
                "anomaly": false,
                "exchange": "Gate",
                "last_usd": 62605,
                "trade_url": "https://www.gate.com/trade/BTC_USDT",
                "spread_pct": 0.01016,
                "volume_usd": 936466600,
                "trust_score": null
            },
            {
                "base": "BTC",
                "last": 62689.3,
                "stale": false,
                "target": "USDT",
                "volume": 14545.925723,
                "anomaly": false,
                "exchange": "Bybit",
                "last_usd": 62627,
                "trade_url": "https://www.bybit.com/trade/spot/BTC/USDT",
                "s
…(truncated, see openapi.json for full schema)
```

### Exchanges

#### `GET /v1/exchanges` — Per-exchange volume and pair counts for a coin

**Parameters:**
- `coin` (query, required, string) — CoinGecko id or ticker Example: `bitcoin`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/coinmarkets-api/v1/exchanges?coin=bitcoin"
```

**Response:**
```json
{
    "data": {
        "coin": "bitcoin",
        "count": 56,
        "source": "CoinGecko",
        "exchanges": [
            {
                "pairs": 8,
                "exchange": "Binance",
                "volume_usd": 1864735818
            },
            {
                "pairs": 4,
                "exchange": "Bybit",
                "volume_usd": 997288497
            },
            {
                "pairs": 2,
                "exchange": "Gate",
                "volume_usd": 938497640
            },
            {
                "pairs": 2,
                "exchange": "Crypto.com Exchange",
                "volume_usd": 723759449
            },
            {
                "pairs": 5,
                "exchange": "Bullish",
                "volume_usd": 720208583
            },
            {
                "pairs": 2,
                "exchange": "MEXC",
                "volume_usd": 660814675
            },
            {
                "pairs": 2,
                "exchange": "Biconomy.com",
                "volume_usd": 650269408
            },
            {
                "pairs": 4,
                "exchange": "Coinbase Exchange",
                "volume_usd": 586360434
            },
            {
                "pairs": 5,
                "exchange": "OKX",
                "volume_usd": 561457526
            },
            {
                "pairs": 2,
                "exchange": "Tapbit",
                "volume_usd": 511682063
            },
       
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/coinmarkets-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "coin is a CoinGecko id (bitcoin, ethereum, solana); common tickers (BTC, ETH, SOL…) are mapped automatically. volume_usd is the 24h volume converted to USD. Results are cached briefly to protect the keyless rate-limited upstream.",
        "source": "CoinGecko public API (api.coingecko.com/api/v3, live)",
        "service": "coinmarkets-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/markets": "All spot markets for a coin across exchanges, ranked by USD volume (coin=bitcoin, target=USDT optional, limit=50).",
            "GET /v1/exchanges": "Per-exchange volume and pair counts for a coin (coin=bitcoin)."
        },
        "description": "Live 'where to trade' data for any crypto coin from CoinGecko. The markets endpoint returns every spot market for a coin across all exchanges — exchange, pair, last price, 24h volume, bid/ask spread and trust score — so you can see where it trades, at what price and with what liquidity (arbitrage, best execution). The exchanges endpoint aggregates that to per-exchange volume and pair counts. Live, no key, nothing stored. The cross-exchange market view for a single coin, distinct from the single-venue exchange tickers, whole-market and single-coin-profile APIs.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-11T16:47:00.559Z",
        "request_id": "e42c3486-01d7-4d98-ae9a-caef69fcb0f7"
    },
    "status": "ok",
    "m
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/coinmarkets-api
OpenAPI spec: https://www.oanor.com/api/coinmarkets-api/openapi.json
