The Advanced Trade Products endpoints expose market data for all tradeable currency pairs on Coinbase. Authenticated endpoints allow you to filter by product type, contract expiry, and tradability status. Public equivalents (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/tiagosiebler/coinbase-api/llms.txt
Use this file to discover all available pages before exploring further.
getPublic*) require no API key and are suitable for unauthenticated market-data consumers. The getTransactionSummary() endpoint — which returns your personal fee tier data — is also documented here as it depends on product-level parameters.
getProducts
Retrieve all available currency pairs for trading. Supports filtering by product type, contract expiry, and more.| Auth | Required |
| HTTP | GET /api/v3/brokerage/products |
Filter by product type:
"SPOT", "FUTURE", or "UNKNOWN_PRODUCT_TYPE".Filter to a specific list of product IDs, e.g.
["BTC-USD", "ETH-USD"].Filter futures by expiry type:
"PERPETUAL", "EXPIRING", or "UNKNOWN_CONTRACT_EXPIRY_TYPE".Filter expiring contracts:
"STATUS_UNEXPIRED", "STATUS_EXPIRED", "STATUS_ALL", or "UNKNOWN_EXPIRING_CONTRACT_STATUS".When
true, include tradability metadata in the response.When
true, return all products regardless of trading status.Maximum number of products to return.
Number of products to skip (for pagination).
Promise<{ products: AdvTradeProduct[]; num_products: number }> — each AdvTradeProduct includes pricing, 24-hour volume, size increments, status flags, and optionally future_product_details for futures products.
getProduct
Retrieve detailed information about a single product by its ID.| Auth | Required |
| HTTP | GET /api/v3/brokerage/products/{product_id} |
The trading pair identifier, e.g.
"BTC-USD".When
true, include tradability metadata in the response.Promise<AdvTradeProduct> — the full product record including current price, 24h statistics, increment sizes, status flags, and future_product_details when applicable.
getProductCandles
Retrieve OHLCV (candlestick) data for a product, grouped into time buckets of the specified granularity. Returns at most 350 candles per request.| Auth | Required |
| HTTP | GET /api/v3/brokerage/products/{product_id}/candles |
The trading pair to fetch candles for, e.g.
"BTC-USD".Start of the time range as a Unix timestamp string (seconds), e.g.
"1704067200".End of the time range as a Unix timestamp string (seconds).
Candle interval. One of:
"UNKNOWN_GRANULARITY", "ONE_MINUTE", "FIVE_MINUTE", "FIFTEEN_MINUTE", "THIRTY_MINUTE", "ONE_HOUR", "TWO_HOUR", "SIX_HOUR", "ONE_DAY".Maximum number of candles to return. Defaults to 350.
Promise<{ candles: AdvTradeCandle[] }> — each candle has start (Unix timestamp), open, high, low, close, and volume.
getMarketTrades
Fetch a snapshot of the most recent trades for a product along with the current best bid and ask.| Auth | Required |
| HTTP | GET /api/v3/brokerage/products/{product_id}/ticker |
The trading pair, e.g.
"ETH-USD".Number of recent trades to return.
RFC3339 timestamp. Return trades at or after this time.
RFC3339 timestamp. Return trades at or before this time.
Promise<AdvTradeMarketTrades> — contains trades (array with trade_id, price, size, side, time), best_bid, and best_ask.
getBestBidAsk
Get the best bid and ask prices across all products, or for a specified subset of products.| Auth | Required |
| HTTP | GET /api/v3/brokerage/best_bid_ask |
Optional list of product IDs to restrict the response. Returns all products when omitted.
Promise<{ pricebooks: AdvTradePricebook[] }> — each AdvTradePricebook contains product_id, bids array, asks array (each with price and size), and time.
getProductBook
Retrieve the full order book (bids and asks) for a single product. Use thelimit parameter to control depth and aggregation_price_increment to bucket price levels.
| Auth | Required |
| HTTP | GET /api/v3/brokerage/product_book |
The trading pair, e.g.
"BTC-USD".Number of bid/ask price levels to return.
Aggregate price levels into buckets of this size, e.g.
"10.00" for $10 buckets.Promise<{ pricebook: AdvTradePricebook }> — one pricebook with product_id, bids, asks, and time.
getTransactionSummary
Retrieve your personal transaction summary, including fee tiers, total volume, and fees paid over the rolling 30-day window.| Auth | Required |
| HTTP | GET /api/v3/brokerage/transaction_summary |
Filter summary by product type:
"UNKNOWN_PRODUCT_TYPE", "SPOT", or "FUTURE".Filter by contract expiry type:
"UNKNOWN_CONTRACT_EXPIRY_TYPE", "SPOT", or "FUTURE".Filter by trading venue:
"UNKNOWN_VENUE_TYPE", "CBE", "FCM", or "INTX".Promise<AdvTradeTransactionSummary> — contains total_volume, total_fees, fee_tier (with maker_fee_rate, taker_fee_rate, tier bounds), advanced_trade_only_volume, advanced_trade_only_fees, and tax-related fields.
Public Endpoints
The following endpoints do not require authentication and are safe to call from unauthenticated clients or browser environments.getPublicProducts
List all publicly available trading products.| Auth | None |
| HTTP | GET /api/v3/brokerage/market/products |
Filter by product type:
"UNKNOWN_PRODUCT_TYPE", "SPOT", or "FUTURE".Filter to a specific list of product IDs.
Filter futures by expiry type:
"UNKNOWN_CONTRACT_EXPIRY_TYPE", "SPOT", or "FUTURE".Filter expiring contracts:
"UNKNOWN_EXPIRING_CONTRACT_STATUS", "STATUS_UNEXPIRED", "STATUS_EXPIRED", or "STATUS_ALL".When
true, return all products regardless of trading status.Maximum number of products to return.
Number of products to skip (for pagination).
Promise<{ products: AdvTradePublicProduct[]; num_products: number }>.
getPublicProduct
Retrieve public data for a single product.| Auth | None |
| HTTP | GET /api/v3/brokerage/market/products/{product_id} |
The trading pair, e.g.
"BTC-USD".Promise<AdvTradePublicProduct>.
getPublicProductBook
Fetch the public order book for a single product without authentication.| Auth | None |
| HTTP | GET /api/v3/brokerage/market/product_book |
The trading pair, e.g.
"BTC-USD".Number of price levels to return.
Bucket size for price level aggregation.
Promise<{ pricebook: AdvTradePricebook }>.
getPublicProductCandles
Fetch historical OHLCV candle data without authentication.| Auth | None |
| HTTP | GET /api/v3/brokerage/market/products/{product_id}/candles |
The trading pair, e.g.
"BTC-USD".Start of the time range as a Unix timestamp string (seconds).
End of the time range as a Unix timestamp string (seconds).
Candle interval. One of:
"UNKNOWN_GRANULARITY", "ONE_MINUTE", "FIVE_MINUTE", "FIFTEEN_MINUTE", "THIRTY_MINUTE", "ONE_HOUR", "TWO_HOUR", "SIX_HOUR", "ONE_DAY".Maximum number of candles to return.
Promise<{ candles: AdvTradeCandle[] }>.
getPublicMarketTrades
Retrieve the most recent public trades for a product without authentication.| Auth | None |
| HTTP | GET /api/v3/brokerage/market/products/{product_id}/ticker |
The trading pair, e.g.
"ETH-USD".Number of trades to return.
RFC3339 start time filter.
RFC3339 end time filter.
Promise<AdvTradeMarketTrades> — same structure as getMarketTrades().