---
type: "firecrawl-provider"
description: "Public market data from the Coinbase Exchange REST API (api.exchange.coinbase.com): trading pairs, tickers with 24h stats, aggregated order books, tick-level trades with cursor pagination, historical OHLCV candles from 1 minute to 1 day walked in 300-bucket windows, exchange-wide volume summary, currencies with networks, and wrapped-asset conversion rates. Anonymous endpoints only; no trading or account access."
use_when: "Public market data from the Coinbase Exchange REST API (api.exchange.coinbase.com): trading pairs, tickers with 24h stats, aggregated order books, tick-level trades with cursor pagination, historical OHLCV candles from 1 minute to 1 day walked in 300-bucket windows, exchange-wide volume summary, currencies with networks, and wrapped-asset conversion rates. Anonymous endpoints only; no trading or account access."
categories: "Finance"
capabilities: 10
credits_per_call: 5
---
# Coinbase Exchange on Firecrawl Alexandria

Public market data from the Coinbase Exchange REST API (api.exchange.coinbase.com): trading pairs, tickers with 24h stats, aggregated order books, tick-level trades with cursor pagination, historical OHLCV candles from 1 minute to 1 day walked in 300-bucket windows, exchange-wide volume summary, currencies with networks, and wrapped-asset conversion rates. Anonymous endpoints only; no trading or account access.

- Categories: Finance
- Category index: [Finance category](https://firecrawl.dev/alexandria/agents/categories/finance)
- Provider key: `api-exchange-coinbase-com`
- Access: Firecrawl credits
- Cost: 5 credits per call

## More

- [Human guide](https://firecrawl.dev/app/alexandria/api-exchange-coinbase-com)
- [OpenAPI spec](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/openapi.json)

## Capabilities

- [Get candles](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/get_candles): Historical OHLCV candles for one trading pair (`GET /products/{product_id}/candles`) at 1m, 5m, 15m, 1h, 6h or 1d granularity, oldest first. The exchange serves at most 300 buckets per request, so a wider `start`..`end` range is walked in consecutive 300-bucket windows, up to `max_candles` (default 300, max 3000 = 10 upstream requests) per call; `next_start` continues where the call stopped. Buckets without trades are omitted by the exchange (thin markets return fewer rows than the window length; a `sparse_buckets` warning says so). Values are numbers as the exchange sends them.
- [Get currency](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/get_currency): One currency's definition (`GET /currencies/{currency_id}`): name, status, minimum size and precision, type, convertible-to list, and every supported network with contract address, confirmations and withdrawal limits. Unknown ids are `not_found`.
- [Get order book](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/get_order_book): Aggregated order book for one trading pair (`GET /products/{product_id}/book?level=1|2`). Level 1 is the best bid and ask only; level 2 is the full aggregated book (thousands of price levels), truncated client-side to `depth` levels per side, best first. Level 3 (every individual order, ~6 MB) is not exposed.
- [Get product](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/get_product): One trading pair's definition (`GET /products/{product_id}`): base and quote currency, price and size increments, minimum order funds, status and trading flags. Unknown ids are `not_found`.
- [Get ticker](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/get_ticker): Market snapshot for one trading pair: last trade price, size, id and time, best bid and ask and 24h volume (`GET /products/{product_id}/ticker`) together with the 24h/30d statistics (`GET /products/{product_id}/stats`: open, high, low, last, volume). Prices and sizes are decimal strings in the pair's quote and base currency.
- [Get wrapped asset](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/get_wrapped_asset): Supply, staking yield and conversion rate of a Coinbase wrapped asset such as cbETH (`GET /wrapped-assets/{id}` and `GET /wrapped-assets/{id}/conversion-rate`). Only the assets the exchange wraps exist (currently CBETH); anything else is `not_found`.
- [List currencies](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/list_currencies): Currencies known to Coinbase Exchange (`GET /currencies`, ~500 crypto and fiat) with client-side filters on type, status and a free-text match on id or name, sorted by id and paged. Rows carry status, precision, default network and network count; `get_currency` has the networks.
- [List products](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/list_products): List Coinbase Exchange trading pairs (`GET /products`) with client-side filters on base/quote currency, status and a free-text match, sorted by id and paged with limit/offset. Each product carries its increments, minimum funds, status and trading flags. This is the discovery step for every `product_id`.
- [List trades](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/list_trades): Recent trades for one trading pair (`GET /products/{product_id}/trades`), newest first, up to 1000 per page. Cursor pagination follows the exchange's `cb-after`/`cb-before` headers: pass `after` (a trade id) to get older trades, `before` to get newer ones. `next_after` is the cursor for the next older page.
- [List volume summary](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/list_volume_summary): 24-hour and 30-day traded volume for every Coinbase Exchange market (`GET /products/volume-summary`, ~3100 rows including RFQ-only and conversion markets), with client-side filters on market type, base/quote currency and a free-text match, sorted by id and paged.

## 1. Choose this provider when

Public market data from the Coinbase Exchange REST API (api.exchange.coinbase.com): trading pairs, tickers with 24h stats, aggregated order books, tick-level trades with cursor pagination, historical OHLCV candles from 1 minute to 1 day walked in 300-bucket windows, exchange-wide volume summary, currencies with networks, and wrapped-asset conversion rates. Anonymous endpoints only; no trading or account access.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "api-exchange-coinbase-com",
  "capability": "markets/get_candles",
  "options": {
    "end": "2026-08-22",
    "granularity": 86400,
    "product_id": "BTC-USD",
    "start": "2026-07-24"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `end` (string): Inclusive range end, same forms as `start`. Defaults to now. Example: `<end>`
- `granularity` (number): Bucket length in seconds: 60, 300, 900, 3600, 21600 or 86400. Example: `60`
- `max_candles` (number): Upper bound on buckets fetched in this call (300 per upstream request; requests are made sequentially to respect the 10 req/s public limit). Example: `300`
- `product_id` (string, required): Trading pair id `BASE-QUOTE` as listed by `list_products`, e.g. `BTC-USD`, `USELESS-USD`. Case-insensitive; the canonical upper-case id is returned. Pattern: ^[A-Za-z0-9]{1,20}-[A-Za-z0-9]{1,20}$. Example: `BASE-QUOTE`
- `start` (string): Inclusive range start: RFC 3339 (`2026-07-24T00:00:00Z`) or a date (`2026-07-24`, midnight UTC). Defaults to `end` minus `max_candles` buckets. Example: `2026-07-24T00:00:00Z`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "api-exchange-coinbase-com",
    capability: "markets/get_candles",
    options: {
      end: "2026-08-22",
      granularity: 86400,
      product_id: "BTC-USD",
      start: "2026-07-24",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "api-exchange-coinbase-com",
  "capability": "markets/get_candles",
  "options": {
    "end": "2026-08-22",
    "granularity": 86400,
    "product_id": "BTC-USD",
    "start": "2026-07-24"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "api-exchange-coinbase-com",
    "capability": "markets/get_candles",
    "options": {
      "end": "2026-08-22",
      "granularity": 86400,
      "product_id": "BTC-USD",
      "start": "2026-07-24"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'api-exchange-coinbase-com/markets/get_candles' \
  --options '{"end":"2026-08-22","granularity":86400,"product_id":"BTC-USD","start":"2026-07-24"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "api-exchange-coinbase-com",
  "capability": "markets/get_candles",
  "options": {
    "end": "2026-08-22",
    "granularity": 86400,
    "product_id": "BTC-USD",
    "start": "2026-07-24"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "api-exchange-coinbase-com",
  "capability": "markets/get_candles",
  "options": {
    "end": "2026-08-22",
    "granularity": 86400,
    "product_id": "BTC-USD",
    "start": "2026-07-24"
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "candles": [
    {
      "close": 64083.32,
      "high": 65762.78,
      "low": 63641,
      "open": 65051.24,
      "time": 1784851200,
      "time_iso": "2026-07-24T00:00:00Z",
      "volume": 7327.49813634
    },
    {
      "close": 64295.61,
      "high": 64387.43,
      "low": 63732,
      "open": 64083.31,
      "time": 1784937600,
      "time_iso": "2026-07-25T00:00:00Z",
      "volume": 2180.46852205
    },
    {
      "close": 65341.07,
      "high": 65511.36,
      "low": 64229.6,
      "open": 64295.61,
      "time": 1785024000,
      "time_iso": "2026-07-26T00:00:00Z",
      "volume": 2390.56790196
    },
    {
      "close": 63694.43,
      "high": 65705.08,
      "low": 63545,
      "open": 65341.07,
      "time": 1785110400,
      "time_iso": "2026-07-27T00:00:00Z",
      "volume": 5069.45269918
    },
    {
      "close": 63847.12,
      "high": 64041.02,
      "low": 62645.39,
      "open": 63693.44,
      "time": 1785196800,
      "time_iso": "2026-07-28T00:00:00Z",
      "volume": 6232.18054403
    },
    {
      "close": 63896.14,
      "high": 64665.3,
      "low": 63194.45,
      "open": 63847.12,
      "time": 1785283200,
      "time_iso": "2026-07-29T00:00:00Z",
      "volume": 8092.70552294
    },
    {
      "close": 64721.9,
      "high": 65118.08,
      "low": 63502.91,
      "open": 63896.14,
      "time": 1785369600,
      "time_iso": "2026-07-30T00:00:00Z",
      "volume": 8025.87127027
    },
    {
      "close": 62825.9,
      "high": 65360,
      "low": 62358.96,
      "open": 64721.9,
      "time": 1785456000,
      "time_iso": "2026-07-31T00:00:00Z",
      "volume": 8260.37090197
    },
    {
      "close": 62764.2,
      "high": 63093,
      "low": 62209.81,
      "open": 62826.69,
      "time": 1785542400,
      "time_iso": "2026-08-01T00:00:00Z",
      "volume": 3060.55404241
    },
    {
      "close": 63499.49,
      "high": 63730.49,
      "low": 62743.87,
      "open": 62764.2,
      "time": 1785628800,
      "time_iso": "2026-08-02T00:00:00Z",
      "volume": 3283.94724012
    },
    {
      "close": 63466.51,
      "high": 64032.43,
      "low": 62210.14,
      "open": 63499.49,
      "time": 1785715200,
      "time_iso": "2026-08-03T00:00:00Z",
      "volume": 7086.70328594
    },
    {
      "close": 64050.51,
      "high": 64497.24,
      "low": 63250,
      "open": 63466.51,
      "time": 1785801600,
      "time_iso": "2026-08-04T00:00:00Z",
      "volume": 6227.77436334
    },
    {
      "close": 64603.03,
      "high": 64988.78,
      "low": 63814.8,
      "open": 64050.51,
      "time": 1785888000,
      "time_iso": "2026-08-05T00:00:00Z",
      "volume": 6932.34404967
    },
    {
      "close": 64267.3,
      "high": 64944.16,
      "low": 64087.41,
      "open": 64603.02,
      "time": 1785974400,
      "time_iso": "2026-08-06T00:00:00Z",
      "volume": 4520.43206155
    },
    {
      "close": 64891.61,
      "high": 65348.97,
      "low": 64099.35,
      "open": 64267.3,
      "time": 1786060800,
      "time_iso": "2026-08-07T00:00:00Z",
      "volume": 6181.48293213
    },
    {
      "close": 64908.72,
      "high": 65150.16,
      "low": 64789.89,
      "open": 64891.6,
      "time": 1786147200,
      "time_iso": "2026-08-08T00:00:00Z",
      "volume": 2494.26436439
    },
    {
      "close": 64848.69,
      "high": 65426,
      "low": 64675.22,
      "open": 64908.71,
      "time": 1786233600,
      "time_iso": "2026-08-09T00:00:00Z",
      "volume": 3044.21136585
    },
    {
      "close": 63911.88,
      "high": 65341.83,
      "low": 63733.03,
      "open": 64848.68,
      "time": 1786320000,
      "time_iso": "2026-08-10T00:00:00Z",
      "volume": 6197.02944527
    },
    {
      "close": 63531.75,
      "high": 64439.38,
      "low": 63158,
      "open": 63911.88,
      "time": 1786406400,
      "time_iso": "2026-08-11T00:00:00Z",
      "volume": 6020.29333133
    },
    {
      "close": 63411.72,
      "high": 64416.3,
      "low": 63235.88,
      "open": 63531.75,
      "time": 1786492800,
      "time_iso": "2026-08-12T00:00:00Z",
      "volume": 6570.08215862
    },
    {
      "close": 63425.35,
      "high": 63949.9,
      "low": 62772.84,
      "open": 63411.71,
      "time": 1786579200,
      "time_iso": "2026-08-13T00:00:00Z",
      "volume": 5119.66743787
    },
    {
      "close": 62975.19,
      "high": 63561.45,
      "low": 62468.21,
      "open": 63425.35,
      "time": 1786665600,
      "time_iso": "2026-08-14T00:00:00Z",
      "volume": 5116.86738135
    },
    {
      "close": 63018.75,
      "high": 63123.68,
      "low": 62830.01,
      "open": 62975.18,
      "time": 1786752000,
      "time_iso": "2026-08-15T00:00:00Z",
      "volume": 1233.57820711
    },
    {
      "close": 62836.66,
      "high": 63318.09,
      "low": 62631.18,
      "open": 63018.75,
      "time": 1786838400,
      "time_iso": "2026-08-16T00:00:00Z",
      "volume": 1794.19400235
    },
    {
      "close": 64484.18,
      "high": 64588,
      "low": 62679.42,
      "open": 62836.67,
      "time": 1786924800,
      "time_iso": "2026-08-17T00:00:00Z",
      "volume": 6069.64648358
    },
    {
      "close": 64681.33,
      "high": 65020,
      "low": 63979.36,
      "open": 64477.26,
      "time": 1787011200,
      "time_iso": "2026-08-18T00:00:00Z",
      "volume": 5099.57954731
    },
    {
      "close": 69300.01,
      "high": 70022.44,
      "low": 64112.04,
      "open": 64681.33,
      "time": 1787097600,
      "time_iso": "2026-08-19T00:00:00Z",
      "volume": 16917.83327784
    },
    {
      "close": 73011.87,
      "high": 73391.43,
      "low": 68853.22,
      "open": 69300.01,
      "time": 1787184000,
      "time_iso": "2026-08-20T00:00:00Z",
      "volume": 16155.04322781
    },
    {
      "close": 78325.54,
      "high": 79500,
      "low": 73004.7,
      "open": 73010.86,
      "time": 1787270400,
      "time_iso": "2026-08-21T00:00:00Z",
      "volume": 20245.16913846
    },
    {
      "close": 77054.44,
      "high": 78828.37,
      "low": 76471.7,
      "open": 78325.54,
      "time": 1787356800,
      "time_iso": "2026-08-22T00:00:00Z",
      "volume": 5400.20084011
    }
  ],
  "count": 30,
  "end": "2026-08-22T00:00:00Z",
  "expected_buckets": 30,
  "granularity": 86400,
  "next_start": null,
  "observed_at_ms": 1790268751183,
  "product_id": "BTC-USD",
  "request_count": 1,
  "source_url": "https://api.exchange.coinbase.com/products/BTC-USD/candles?granularity=86400&start=2026-07-24T00%3A00%3A00Z&end=2026-08-22T00%3A00%3A00Z",
  "start": "2026-07-24T00:00:00Z"
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Get candles

- Capability: `markets/get_candles`
- Description: Historical OHLCV candles for one trading pair (`GET /products/{product_id}/candles`) at 1m, 5m, 15m, 1h, 6h or 1d granularity, oldest first. The exchange serves at most 300 buckets per request, so a wider `start`..`end` range is walked in consecutive 300-bucket windows, up to `max_candles` (default 300, max 3000 = 10 upstream requests) per call; `next_start` continues where the call stopped. Buckets without trades are omitted by the exchange (thin markets return fewer rows than the window length; a `sparse_buckets` warning says so). Values are numbers as the exchange sends them.
- Instructions: Backtests and price history, e.g. 1-minute BTC-USD candles between two dates: call with `granularity: 60`, `start`, `end`, `max_candles: 3000`, then follow `next_start` until it is null.
- Cost: 5 credits per call
- Capability file: [Get candles](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/get_candles)

Accepted options:
- `end` (string): Inclusive range end, same forms as `start`. Defaults to now. Example: `<end>`
- `granularity` (number): Bucket length in seconds: 60, 300, 900, 3600, 21600 or 86400. Example: `60`
- `max_candles` (number): Upper bound on buckets fetched in this call (300 per upstream request; requests are made sequentially to respect the 10 req/s public limit). Example: `300`
- `product_id` (string, required): Trading pair id `BASE-QUOTE` as listed by `list_products`, e.g. `BTC-USD`, `USELESS-USD`. Case-insensitive; the canonical upper-case id is returned. Pattern: ^[A-Za-z0-9]{1,20}-[A-Za-z0-9]{1,20}$. Example: `BASE-QUOTE`
- `start` (string): Inclusive range start: RFC 3339 (`2026-07-24T00:00:00Z`) or a date (`2026-07-24`, midnight UTC). Defaults to `end` minus `max_candles` buckets. Example: `2026-07-24T00:00:00Z`

Response schema example:
```json
{
  "candles": [
    {
      "close": 64083.32,
      "high": 65762.78,
      "low": 63641,
      "open": 65051.24,
      "time": 1784851200,
      "time_iso": "2026-07-24T00:00:00Z",
      "volume": 7327.49813634
    },
    {
      "close": 64295.61,
      "high": 64387.43,
      "low": 63732,
      "open": 64083.31,
      "time": 1784937600,
      "time_iso": "2026-07-25T00:00:00Z",
      "volume": 2180.46852205
    },
    {
      "close": 65341.07,
      "high": 65511.36,
      "low": 64229.6,
      "open": 64295.61,
      "time": 1785024000,
      "time_iso": "2026-07-26T00:00:00Z",
      "volume": 2390.56790196
    },
    {
      "close": 63694.43,
      "high": 65705.08,
      "low": 63545,
      "open": 65341.07,
      "time": 1785110400,
      "time_iso": "2026-07-27T00:00:00Z",
      "volume": 5069.45269918
    },
    {
      "close": 63847.12,
      "high": 64041.02,
      "low": 62645.39,
      "open": 63693.44,
      "time": 1785196800,
      "time_iso": "2026-07-28T00:00:00Z",
      "volume": 6232.18054403
    },
    {
      "close": 63896.14,
      "high": 64665.3,
      "low": 63194.45,
      "open": 63847.12,
      "time": 1785283200,
      "time_iso": "2026-07-29T00:00:00Z",
      "volume": 8092.70552294
    },
    {
      "close": 64721.9,
      "high": 65118.08,
      "low": 63502.91,
      "open": 63896.14,
      "time": 1785369600,
      "time_iso": "2026-07-30T00:00:00Z",
      "volume": 8025.87127027
    },
    {
      "close": 62825.9,
      "high": 65360,
      "low": 62358.96,
      "open": 64721.9,
      "time": 1785456000,
      "time_iso": "2026-07-31T00:00:00Z",
      "volume": 8260.37090197
    },
    {
      "close": 62764.2,
      "high": 63093,
      "low": 62209.81,
      "open": 62826.69,
      "time": 1785542400,
      "time_iso": "2026-08-01T00:00:00Z",
      "volume": 3060.55404241
    },
    {
      "close": 63499.49,
      "high": 63730.49,
      "low": 62743.87,
      "open": 62764.2,
      "time": 1785628800,
      "time_iso": "2026-08-02T00:00:00Z",
      "volume": 3283.94724012
    },
    {
      "close": 63466.51,
      "high": 64032.43,
      "low": 62210.14,
      "open": 63499.49,
      "time": 1785715200,
      "time_iso": "2026-08-03T00:00:00Z",
      "volume": 7086.70328594
    },
    {
      "close": 64050.51,
      "high": 64497.24,
      "low": 63250,
      "open": 63466.51,
      "time": 1785801600,
      "time_iso": "2026-08-04T00:00:00Z",
      "volume": 6227.77436334
    },
    {
      "close": 64603.03,
      "high": 64988.78,
      "low": 63814.8,
      "open": 64050.51,
      "time": 1785888000,
      "time_iso": "2026-08-05T00:00:00Z",
      "volume": 6932.34404967
    },
    {
      "close": 64267.3,
      "high": 64944.16,
      "low": 64087.41,
      "open": 64603.02,
      "time": 1785974400,
      "time_iso": "2026-08-06T00:00:00Z",
      "volume": 4520.43206155
    },
    {
      "close": 64891.61,
      "high": 65348.97,
      "low": 64099.35,
      "open": 64267.3,
      "time": 1786060800,
      "time_iso": "2026-08-07T00:00:00Z",
      "volume": 6181.48293213
    },
    {
      "close": 64908.72,
      "high": 65150.16,
      "low": 64789.89,
      "open": 64891.6,
      "time": 1786147200,
      "time_iso": "2026-08-08T00:00:00Z",
      "volume": 2494.26436439
    },
    {
      "close": 64848.69,
      "high": 65426,
      "low": 64675.22,
      "open": 64908.71,
      "time": 1786233600,
      "time_iso": "2026-08-09T00:00:00Z",
      "volume": 3044.21136585
    },
    {
      "close": 63911.88,
      "high": 65341.83,
      "low": 63733.03,
      "open": 64848.68,
      "time": 1786320000,
      "time_iso": "2026-08-10T00:00:00Z",
      "volume": 6197.02944527
    },
    {
      "close": 63531.75,
      "high": 64439.38,
      "low": 63158,
      "open": 63911.88,
      "time": 1786406400,
      "time_iso": "2026-08-11T00:00:00Z",
      "volume": 6020.29333133
    },
    {
      "close": 63411.72,
      "high": 64416.3,
      "low": 63235.88,
      "open": 63531.75,
      "time": 1786492800,
      "time_iso": "2026-08-12T00:00:00Z",
      "volume": 6570.08215862
    },
    {
      "close": 63425.35,
      "high": 63949.9,
      "low": 62772.84,
      "open": 63411.71,
      "time": 1786579200,
      "time_iso": "2026-08-13T00:00:00Z",
      "volume": 5119.66743787
    },
    {
      "close": 62975.19,
      "high": 63561.45,
      "low": 62468.21,
      "open": 63425.35,
      "time": 1786665600,
      "time_iso": "2026-08-14T00:00:00Z",
      "volume": 5116.86738135
    },
    {
      "close": 63018.75,
      "high": 63123.68,
      "low": 62830.01,
      "open": 62975.18,
      "time": 1786752000,
      "time_iso": "2026-08-15T00:00:00Z",
      "volume": 1233.57820711
    },
    {
      "close": 62836.66,
      "high": 63318.09,
      "low": 62631.18,
      "open": 63018.75,
      "time": 1786838400,
      "time_iso": "2026-08-16T00:00:00Z",
      "volume": 1794.19400235
    },
    {
      "close": 64484.18,
      "high": 64588,
      "low": 62679.42,
      "open": 62836.67,
      "time": 1786924800,
      "time_iso": "2026-08-17T00:00:00Z",
      "volume": 6069.64648358
    },
    {
      "close": 64681.33,
      "high": 65020,
      "low": 63979.36,
      "open": 64477.26,
      "time": 1787011200,
      "time_iso": "2026-08-18T00:00:00Z",
      "volume": 5099.57954731
    },
    {
      "close": 69300.01,
      "high": 70022.44,
      "low": 64112.04,
      "open": 64681.33,
      "time": 1787097600,
      "time_iso": "2026-08-19T00:00:00Z",
      "volume": 16917.83327784
    },
    {
      "close": 73011.87,
      "high": 73391.43,
      "low": 68853.22,
      "open": 69300.01,
      "time": 1787184000,
      "time_iso": "2026-08-20T00:00:00Z",
      "volume": 16155.04322781
    },
    {
      "close": 78325.54,
      "high": 79500,
      "low": 73004.7,
      "open": 73010.86,
      "time": 1787270400,
      "time_iso": "2026-08-21T00:00:00Z",
      "volume": 20245.16913846
    },
    {
      "close": 77054.44,
      "high": 78828.37,
      "low": 76471.7,
      "open": 78325.54,
      "time": 1787356800,
      "time_iso": "2026-08-22T00:00:00Z",
      "volume": 5400.20084011
    }
  ],
  "count": 30,
  "end": "2026-08-22T00:00:00Z",
  "expected_buckets": 30,
  "granularity": 86400,
  "next_start": null,
  "observed_at_ms": 1790268751183,
  "product_id": "BTC-USD",
  "request_count": 1,
  "source_url": "https://api.exchange.coinbase.com/products/BTC-USD/candles?granularity=86400&start=2026-07-24T00%3A00%3A00Z&end=2026-08-22T00%3A00%3A00Z",
  "start": "2026-07-24T00:00:00Z"
}
```

### Get currency

- Capability: `markets/get_currency`
- Description: One currency's definition (`GET /currencies/{currency_id}`): name, status, minimum size and precision, type, convertible-to list, and every supported network with contract address, confirmations and withdrawal limits. Unknown ids are `not_found`.
- Instructions: Networks and precision of an asset before interpreting sizes or addresses.
- Cost: 5 credits per call
- Capability file: [Get currency](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/get_currency)

Accepted options:
- `currency_id` (string, required): Currency id as listed by `list_currencies`, e.g. `BTC`, `USD`. Case-insensitive. Pattern: ^[A-Za-z0-9]{1,20}$. Example: `list_currencies`

Response schema example:
```json
{
  "convertible_to": [],
  "default_network": "bitcoin",
  "details": {
    "crypto_address_link": "https://live.blockcypher.com/btc/address/{{address}}",
    "crypto_transaction_link": "https://live.blockcypher.com/btc/tx/{{txId}}",
    "display_name": null,
    "group_types": [
      "btc",
      "crypto"
    ],
    "max_withdrawal_amount": 2400,
    "min_withdrawal_amount": 0.0001,
    "network_confirmations": 2,
    "processing_time_seconds": null,
    "push_payment_methods": [
      "crypto"
    ],
    "sort_order": 20,
    "symbol": "₿",
    "type": "crypto"
  },
  "display_name": "BTC",
  "id": "BTC",
  "max_precision": "0.00000001",
  "message": null,
  "min_size": "0.00000001",
  "name": "Bitcoin",
  "observed_at_ms": 1790268887908,
  "source_url": "https://api.exchange.coinbase.com/currencies/BTC",
  "status": "online",
  "supported_networks": [
    {
      "contract_address": null,
      "crypto_address_link": "https://arbiscan.io/address/{{address}}",
      "crypto_transaction_link": "https://arbiscan.io/tx/{{txId}}",
      "destination_tag_regex": null,
      "id": "arbitrum",
      "is_evm_network": true,
      "max_withdrawal_amount": 200,
      "min_withdrawal_amount": 0.00002,
      "name": "Arbitrum",
      "network_confirmations": null,
      "processing_time_seconds": null,
      "status": "online"
    },
    {
      "contract_address": null,
      "crypto_address_link": "https://basescan.org/address/{{address}}",
      "crypto_transaction_link": "https://basescan.org/tx/{{txId}}",
      "destination_tag_regex": null,
      "id": "base",
      "is_evm_network": true,
      "max_withdrawal_amount": 200,
      "min_withdrawal_amount": 0.00002,
      "name": "Base",
      "network_confirmations": null,
      "processing_time_seconds": null,
      "status": "online"
    },
    {
      "contract_address": null,
      "crypto_address_link": "https://live.blockcypher.com/btc/address/{{address}}",
      "crypto_transaction_link": "https://live.blockcypher.com/btc/tx/{{txId}}",
      "destination_tag_regex": null,
      "id": "bitcoin",
      "is_evm_network": false,
      "max_withdrawal_amount": 2400,
      "min_withdrawal_amount": 0.0001,
      "name": "Bitcoin",
      "network_confirmations": 2,
      "processing_time_seconds": null,
      "status": "online"
    },
    {
      "contract_address": null,
      "crypto_address_link": "https://etherscan.io/token/0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf?a={{address}}",
      "crypto_transaction_link": "https://etherscan.io/tx/0x{{txId}}",
      "destination_tag_regex": null,
      "id": "ethereum",
      "is_evm_network": true,
      "max_withdrawal_amount": 200,
      "min_withdrawal_amount": 0.00002,
      "name": "Ethereum",
      "network_confirmations": 35,
      "processing_time_seconds": null,
      "status": "online"
    },
    {
      "contract_address": null,
      "crypto_address_link": "https://explorer.solana.com/address/{{address}}",
      "crypto_transaction_link": "https://explorer.solana.com/tx/{{txId}}",
      "destination_tag_regex": null,
      "id": "solana",
      "is_evm_network": false,
      "max_withdrawal_amount": 200,
      "min_withdrawal_amount": 0.00002,
      "name": "Solana",
      "network_confirmations": 31,
      "processing_time_seconds": null,
      "status": "online"
    }
  ]
}
```

### Get order book

- Capability: `markets/get_order_book`
- Description: Aggregated order book for one trading pair (`GET /products/{product_id}/book?level=1|2`). Level 1 is the best bid and ask only; level 2 is the full aggregated book (thousands of price levels), truncated client-side to `depth` levels per side, best first. Level 3 (every individual order, ~6 MB) is not exposed.
- Instructions: Liquidity and spread at a point in time; use `depth` to bound the payload.
- Cost: 5 credits per call
- Capability file: [Get order book](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/get_order_book)

Accepted options:
- `depth` (number): Maximum price levels per side to return for level 2 (level 1 always has one). Example: `50`
- `level` (number): 1 = best bid/ask only (default); 2 = aggregated book truncated to `depth`. Example: `1`
- `product_id` (string, required): Trading pair id `BASE-QUOTE` as listed by `list_products`, e.g. `BTC-USD`, `USELESS-USD`. Case-insensitive; the canonical upper-case id is returned. Pattern: ^[A-Za-z0-9]{1,20}-[A-Za-z0-9]{1,20}$. Example: `BASE-QUOTE`

Response schema example:
```json
{
  "ask_levels_total": 18058,
  "asks": [
    {
      "num_orders": 1,
      "price": "84509.59",
      "size": "0.11833712"
    },
    {
      "num_orders": 1,
      "price": "84511.76",
      "size": "0.09466139"
    },
    {
      "num_orders": 1,
      "price": "84512.37",
      "size": "0.11833712"
    }
  ],
  "auction": null,
  "auction_mode": false,
  "bid_levels_total": 22830,
  "bids": [
    {
      "num_orders": 1,
      "price": "84507.92",
      "size": "0.0992"
    },
    {
      "num_orders": 1,
      "price": "84506.92",
      "size": "0.03859996"
    },
    {
      "num_orders": 2,
      "price": "84505.9",
      "size": "0.10976422"
    }
  ],
  "depth": 3,
  "level": 2,
  "observed_at_ms": 1790268816893,
  "product_id": "BTC-USD",
  "sequence": 136712854999,
  "source_url": "https://api.exchange.coinbase.com/products/BTC-USD/book?level=2",
  "time": "2026-09-24T16:53:34.584522415Z",
  "truncated": true
}
```

### Get product

- Capability: `markets/get_product`
- Description: One trading pair's definition (`GET /products/{product_id}`): base and quote currency, price and size increments, minimum order funds, status and trading flags. Unknown ids are `not_found`.
- Instructions: Validate a product id or read its tick sizes before interpreting prices and sizes.
- Cost: 5 credits per call
- Capability file: [Get product](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/get_product)

Accepted options:
- `product_id` (string, required): Trading pair id `BASE-QUOTE` as listed by `list_products`, e.g. `BTC-USD`, `USELESS-USD`. Case-insensitive; the canonical upper-case id is returned. Pattern: ^[A-Za-z0-9]{1,20}-[A-Za-z0-9]{1,20}$. Example: `BASE-QUOTE`

Response schema example:
```json
{
  "auction_mode": false,
  "base_currency": "BTC",
  "base_increment": "0.00000001",
  "cancel_only": false,
  "display_name": "BTC-USD",
  "fx_stablecoin": false,
  "high_bid_limit_percentage": null,
  "id": "BTC-USD",
  "limit_only": false,
  "margin_enabled": false,
  "max_slippage_percentage": "0.02000000",
  "min_market_funds": "1",
  "observed_at_ms": 1790268775997,
  "post_only": false,
  "quote_currency": "USD",
  "quote_increment": "0.01",
  "source_url": "https://api.exchange.coinbase.com/products/BTC-USD",
  "status": "online",
  "status_message": null,
  "trading_disabled": false,
  "url": "https://api.exchange.coinbase.com/products/BTC-USD"
}
```

### Get ticker

- Capability: `markets/get_ticker`
- Description: Market snapshot for one trading pair: last trade price, size, id and time, best bid and ask and 24h volume (`GET /products/{product_id}/ticker`) together with the 24h/30d statistics (`GET /products/{product_id}/stats`: open, high, low, last, volume). Prices and sizes are decimal strings in the pair's quote and base currency.
- Instructions: Current price and 24h range of a pair; poll it instead of the order book when you only need best bid/ask.
- Cost: 5 credits per call
- Capability file: [Get ticker](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/get_ticker)

Accepted options:
- `product_id` (string, required): Trading pair id `BASE-QUOTE` as listed by `list_products`, e.g. `BTC-USD`, `USELESS-USD`. Case-insensitive; the canonical upper-case id is returned. Pattern: ^[A-Za-z0-9]{1,20}-[A-Za-z0-9]{1,20}$. Example: `BASE-QUOTE`

Response schema example:
```json
{
  "ask": "84528.11",
  "bid": "84525.99",
  "observed_at_ms": 1790268797121,
  "price": "84525.99",
  "product_id": "BTC-USD",
  "rfq_volume": "44.427295",
  "size": "0.00000054",
  "source_url": "https://api.exchange.coinbase.com/products/BTC-USD/ticker",
  "stats": {
    "high": "84929.78",
    "last": "84510.6",
    "low": "82708.96",
    "open": "84030.1",
    "rfq_volume_24hour": "44.406101",
    "rfq_volume_30day": "3072.450663",
    "volume": "7401.34907045",
    "volume_30day": "192387.3321936"
  },
  "stats_url": "https://api.exchange.coinbase.com/products/BTC-USD/stats",
  "time": "2026-09-24T16:53:16.482700292Z",
  "trade_id": 1097948756,
  "volume": "7384.66321691"
}
```

### Get wrapped asset

- Capability: `markets/get_wrapped_asset`
- Description: Supply, staking yield and conversion rate of a Coinbase wrapped asset such as cbETH (`GET /wrapped-assets/{id}` and `GET /wrapped-assets/{id}/conversion-rate`). Only the assets the exchange wraps exist (currently CBETH); anything else is `not_found`.
- Instructions: The cbETH:ETH conversion rate, APY and circulating supply.
- Cost: 5 credits per call
- Capability file: [Get wrapped asset](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/get_wrapped_asset)

Accepted options:
- `wrapped_asset_id` (string, required): Wrapped asset id, e.g. `CBETH`. Case-insensitive. Pattern: ^[A-Za-z0-9]{1,20}$. Example: `<wrapped_asset_id>`

Response schema example:
```json
{
  "apy": "0.0235",
  "circulating_supply": "167296.476800791553903118",
  "conversion_rate": "1.140196904717719",
  "conversion_rate_now": "1.140196904717719046",
  "conversion_rate_url": "https://api.exchange.coinbase.com/wrapped-assets/CBETH/conversion-rate",
  "id": "CBETH",
  "observed_at_ms": 1790268900091,
  "redeem_time_estimate_days": "10.54",
  "source_url": "https://api.exchange.coinbase.com/wrapped-assets/CBETH",
  "total_supply": "373334.0782232124394134"
}
```

### List currencies

- Capability: `markets/list_currencies`
- Description: Currencies known to Coinbase Exchange (`GET /currencies`, ~500 crypto and fiat) with client-side filters on type, status and a free-text match on id or name, sorted by id and paged. Rows carry status, precision, default network and network count; `get_currency` has the networks.
- Instructions: Find a currency id, or list every online crypto or fiat currency.
- Cost: 5 credits per call
- Capability file: [List currencies](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/list_currencies)

Accepted options:
- `limit` (number): Rows per page (client-side paging; the exchange returns the whole list). Example: `100`
- `offset` (number): Rows to skip; use `next_offset` from the previous page. Example: `0`
- `query` (string): Case-insensitive substring match on the id, name or display name. Example: `<query>`
- `status` (string): status Example: `all`
- `type` (string): type Example: `crypto`

Response schema example:
```json
{
  "count": 3,
  "currencies": [
    {
      "convertible_to": [],
      "default_network": "bitcoincash",
      "display_name": "BCH",
      "id": "BCH",
      "max_precision": "0.00000001",
      "min_size": "0.00000001",
      "name": "Bitcoin Cash",
      "network_count": 1,
      "status": "online",
      "type": "crypto",
      "url": "https://api.exchange.coinbase.com/currencies/BCH"
    },
    {
      "convertible_to": [],
      "default_network": "bitcoin",
      "display_name": "BTC",
      "id": "BTC",
      "max_precision": "0.00000001",
      "min_size": "0.00000001",
      "name": "Bitcoin",
      "network_count": 5,
      "status": "online",
      "type": "crypto",
      "url": "https://api.exchange.coinbase.com/currencies/BTC"
    },
    {
      "convertible_to": [],
      "default_network": "ethereum",
      "display_name": "WBTC",
      "id": "WBTC",
      "max_precision": "0.00000001",
      "min_size": "0.0001",
      "name": "Wrapped Bitcoin",
      "network_count": 3,
      "status": "delisted",
      "type": "crypto",
      "url": "https://api.exchange.coinbase.com/currencies/WBTC"
    }
  ],
  "next_offset": null,
  "observed_at_ms": 1790268870358,
  "query": {
    "limit": 100,
    "offset": 0,
    "query": "bitcoin",
    "status": "all",
    "type": null
  },
  "source_url": "https://api.exchange.coinbase.com/currencies",
  "total_count": 3
}
```

### List products

- Capability: `markets/list_products`
- Description: List Coinbase Exchange trading pairs (`GET /products`) with client-side filters on base/quote currency, status and a free-text match, sorted by id and paged with limit/offset. Each product carries its increments, minimum funds, status and trading flags. This is the discovery step for every `product_id`.
- Instructions: Find the `product_id` (e.g. `BTC-USD`) for tickers, order books, trades and candles, or list every market quoted in a currency.
- Cost: 5 credits per call
- Capability file: [List products](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/list_products)

Accepted options:
- `base_currency` (string): Currency code, e.g. `USD`, `BTC`. Case-insensitive. Pattern: ^[A-Za-z0-9]{1,20}$. Example: `<base_currency>`
- `limit` (number): Rows per page (client-side paging; the exchange returns the whole list). Example: `100`
- `offset` (number): Rows to skip; use `next_offset` from the previous page. Example: `0`
- `query` (string): Case-insensitive substring match on the id, display name, base or quote currency. Example: `<query>`
- `quote_currency` (string): Currency code, e.g. `USD`, `BTC`. Case-insensitive. Pattern: ^[A-Za-z0-9]{1,20}$. Example: `<quote_currency>`
- `status` (string): Filter on the exchange status; `all` includes delisted pairs. Example: `all`

Response schema example:
```json
{
  "count": 5,
  "next_offset": null,
  "observed_at_ms": 1790268766109,
  "products": [
    {
      "auction_mode": false,
      "base_currency": "BTC",
      "base_increment": "0.00000001",
      "cancel_only": false,
      "display_name": "BTC-EUR",
      "fx_stablecoin": false,
      "high_bid_limit_percentage": null,
      "id": "BTC-EUR",
      "limit_only": false,
      "margin_enabled": false,
      "max_slippage_percentage": "0.03000000",
      "min_market_funds": "0.84",
      "post_only": false,
      "quote_currency": "EUR",
      "quote_increment": "0.01",
      "status": "online",
      "status_message": null,
      "trading_disabled": false,
      "url": "https://api.exchange.coinbase.com/products/BTC-EUR"
    },
    {
      "auction_mode": false,
      "base_currency": "BTC",
      "base_increment": "0.00000001",
      "cancel_only": false,
      "display_name": "BTC-GBP",
      "fx_stablecoin": false,
      "high_bid_limit_percentage": null,
      "id": "BTC-GBP",
      "limit_only": false,
      "margin_enabled": false,
      "max_slippage_percentage": "0.03000000",
      "min_market_funds": "0.72",
      "post_only": false,
      "quote_currency": "GBP",
      "quote_increment": "0.01",
      "status": "online",
      "status_message": null,
      "trading_disabled": false,
      "url": "https://api.exchange.coinbase.com/products/BTC-GBP"
    },
    {
      "auction_mode": false,
      "base_currency": "BTC",
      "base_increment": "0.00000001",
      "cancel_only": false,
      "display_name": "BTC/INR",
      "fx_stablecoin": false,
      "high_bid_limit_percentage": null,
      "id": "BTC-INR",
      "limit_only": true,
      "margin_enabled": false,
      "max_slippage_percentage": "0.03000000",
      "min_market_funds": "1",
      "post_only": false,
      "quote_currency": "INR",
      "quote_increment": "1",
      "status": "online",
      "status_message": null,
      "trading_disabled": false,
      "url": "https://api.exchange.coinbase.com/products/BTC-INR"
    },
    {
      "auction_mode": false,
      "base_currency": "BTC",
      "base_increment": "0.00000001",
      "cancel_only": false,
      "display_name": "BTC-USD",
      "fx_stablecoin": false,
      "high_bid_limit_percentage": null,
      "id": "BTC-USD",
      "limit_only": false,
      "margin_enabled": false,
      "max_slippage_percentage": "0.02000000",
      "min_market_funds": "1",
      "post_only": false,
      "quote_currency": "USD",
      "quote_increment": "0.01",
      "status": "online",
      "status_message": null,
      "trading_disabled": false,
      "url": "https://api.exchange.coinbase.com/products/BTC-USD"
    },
    {
      "auction_mode": false,
      "base_currency": "BTC",
      "base_increment": "0.00000001",
      "cancel_only": false,
      "display_name": "BTC-USDT",
      "fx_stablecoin": false,
      "high_bid_limit_percentage": null,
      "id": "BTC-USDT",
      "limit_only": false,
      "margin_enabled": false,
      "max_slippage_percentage": "0.03000000",
      "min_market_funds": "1",
      "post_only": false,
      "quote_currency": "USDT",
      "quote_increment": "0.01",
      "status": "online",
      "status_message": null,
      "trading_disabled": false,
      "url": "https://api.exchange.coinbase.com/products/BTC-USDT"
    }
  ],
  "query": {
    "base_currency": "BTC",
    "limit": 100,
    "offset": 0,
    "query": null,
    "quote_currency": null,
    "status": "online"
  },
  "source_url": "https://api.exchange.coinbase.com/products",
  "total_count": 5
}
```

### List trades

- Capability: `markets/list_trades`
- Description: Recent trades for one trading pair (`GET /products/{product_id}/trades`), newest first, up to 1000 per page. Cursor pagination follows the exchange's `cb-after`/`cb-before` headers: pass `after` (a trade id) to get older trades, `before` to get newer ones. `next_after` is the cursor for the next older page.
- Instructions: Tick-level trade history; walk `next_after` backwards for a backfill, or poll with `before` set to the newest trade id you have.
- Cost: 5 credits per call
- Capability file: [List trades](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/list_trades)

Accepted options:
- `after` (number): Return trades with an id lower than this (older). Use `next_after` from the previous page. Mutually exclusive with `before`. Example: `10`
- `before` (number): Return trades with an id higher than this (newer). Mutually exclusive with `after`. Example: `10`
- `limit` (number): Trades per page. Example: `100`
- `product_id` (string, required): Trading pair id `BASE-QUOTE` as listed by `list_products`, e.g. `BTC-USD`, `USELESS-USD`. Case-insensitive; the canonical upper-case id is returned. Pattern: ^[A-Za-z0-9]{1,20}-[A-Za-z0-9]{1,20}$. Example: `BASE-QUOTE`

Response schema example:
```json
{
  "after": null,
  "before": null,
  "count": 5,
  "limit": 5,
  "newest_before": 1097948935,
  "next_after": 1097948931,
  "observed_at_ms": 1790268831436,
  "product_id": "BTC-USD",
  "source_url": "https://api.exchange.coinbase.com/products/BTC-USD/trades?limit=5",
  "trades": [
    {
      "price": "84497.16000000",
      "side": "buy",
      "size": "0.00000024",
      "time": "2026-09-24T16:53:46.462964Z",
      "trade_id": 1097948935
    },
    {
      "price": "84496.14000000",
      "side": "buy",
      "size": "0.00626960",
      "time": "2026-09-24T16:53:46.215642Z",
      "trade_id": 1097948934
    },
    {
      "price": "84496.14000000",
      "side": "buy",
      "size": "0.00000003",
      "time": "2026-09-24T16:53:46.210569Z",
      "trade_id": 1097948933
    },
    {
      "price": "84496.13000000",
      "side": "buy",
      "size": "0.00353505",
      "time": "2026-09-24T16:53:46.125396Z",
      "trade_id": 1097948932
    },
    {
      "price": "84496.12000000",
      "side": "buy",
      "size": "0.00000030",
      "time": "2026-09-24T16:53:45.843530Z",
      "trade_id": 1097948931
    }
  ]
}
```

### List volume summary

- Capability: `markets/list_volume_summary`
- Description: 24-hour and 30-day traded volume for every Coinbase Exchange market (`GET /products/volume-summary`, ~3100 rows including RFQ-only and conversion markets), with client-side filters on market type, base/quote currency and a free-text match, sorted by id and paged.
- Instructions: Rank or screen markets by volume, or check whether a pair trades on the spot book, RFQ or conversions.
- Cost: 5 credits per call
- Capability file: [List volume summary](https://firecrawl.dev/alexandria/agents/providers/api-exchange-coinbase-com/markets/list_volume_summary)

Accepted options:
- `base_currency` (string): Currency code, e.g. `USD`, `BTC`. Case-insensitive. Pattern: ^[A-Za-z0-9]{1,20}$. Example: `<base_currency>`
- `limit` (number): Rows per page (client-side paging; the exchange returns the whole list). Example: `100`
- `market_type` (string): Keep only markets whose `market_types` include this value. Example: `spot`
- `offset` (number): Rows to skip; use `next_offset` from the previous page. Example: `0`
- `query` (string): Case-insensitive substring match on the id, display name, base or quote currency. Example: `<query>`
- `quote_currency` (string): Currency code, e.g. `USD`, `BTC`. Case-insensitive. Pattern: ^[A-Za-z0-9]{1,20}$. Example: `<quote_currency>`

Response schema example:
```json
{
  "count": 5,
  "markets": [
    {
      "base_currency": "BTC",
      "conversion_volume_24hour": "0",
      "conversion_volume_30day": "0",
      "display_name": "BTC-EUR",
      "id": "BTC-EUR",
      "market_types": [
        "spot",
        "rfq"
      ],
      "quote_currency": "EUR",
      "rfq_volume_24hour": "6.386197",
      "rfq_volume_30day": "226.455482",
      "spot_volume_24hour": "206.26514919",
      "spot_volume_30day": "7280.79231347"
    },
    {
      "base_currency": "BTC",
      "conversion_volume_24hour": "0",
      "conversion_volume_30day": "0",
      "display_name": "BTC-GBP",
      "id": "BTC-GBP",
      "market_types": [
        "spot",
        "rfq"
      ],
      "quote_currency": "GBP",
      "rfq_volume_24hour": "5.671649",
      "rfq_volume_30day": "89.757898",
      "spot_volume_24hour": "52.50157038",
      "spot_volume_30day": "2015.80503155"
    },
    {
      "base_currency": "BTC",
      "conversion_volume_24hour": "0",
      "conversion_volume_30day": "0",
      "display_name": "BTC-INR",
      "id": "BTC-INR",
      "market_types": [
        "spot"
      ],
      "quote_currency": "INR",
      "rfq_volume_24hour": "0",
      "rfq_volume_30day": "0",
      "spot_volume_24hour": "0.03865561",
      "spot_volume_30day": "2.78353321"
    },
    {
      "base_currency": "BTC",
      "conversion_volume_24hour": "0",
      "conversion_volume_30day": "0",
      "display_name": "BTC-USD",
      "id": "BTC-USD",
      "market_types": [
        "spot",
        "rfq"
      ],
      "quote_currency": "USD",
      "rfq_volume_24hour": "44.278549",
      "rfq_volume_30day": "3072.228042",
      "spot_volume_24hour": "7405.67705132",
      "spot_volume_30day": "192391.66017447"
    },
    {
      "base_currency": "BTC",
      "conversion_volume_24hour": "0",
      "conversion_volume_30day": "0",
      "display_name": "BTC-USDT",
      "id": "BTC-USDT",
      "market_types": [
        "spot",
        "rfq"
      ],
      "quote_currency": "USDT",
      "rfq_volume_24hour": "0.001192",
      "rfq_volume_30day": "6.593834",
      "spot_volume_24hour": "47.28179969",
      "spot_volume_30day": "1221.7206885"
    }
  ],
  "next_offset": null,
  "observed_at_ms": 1790268854011,
  "query": {
    "base_currency": "BTC",
    "limit": 10,
    "market_type": "spot",
    "offset": 0,
    "query": null,
    "quote_currency": null
  },
  "source_url": "https://api.exchange.coinbase.com/products/volume-summary",
  "total_count": 5
}
```
