> ## Documentation Index
> Fetch the complete documentation index at: https://httpscashapplaunchbitcoinzann69yc4dfud2ascom.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Products and Market Pairs in Coinbase Advanced Trade

> Products are trading pairs like BTC-USD. Learn about product types, statuses, price precision, and how to find available markets on Coinbase.

A product defines a market — the specific pair of assets you can trade against one another on Coinbase Advanced Trade. Before you place any order, you need to know which product you want to trade, what constraints apply to order sizes and prices, and whether that market is currently active. This page explains how products are structured, what their fields mean, and how to use them effectively in your trading application.

## What Is a Product?

A product represents a **tradeable pair** made up of two assets:

* **Base asset** — the asset you are buying or selling (e.g., `BTC`)
* **Quote asset** — the asset used to price and settle the trade (e.g., `USD`)

Products are identified by a compound string in the format `BASE-QUOTE`. For example:

* `BTC-USD` — trade Bitcoin priced in US Dollars
* `ETH-USDC` — trade Ether priced in USD Coin
* `SOL-BTC` — trade Solana priced in Bitcoin

When you place a buy order on `BTC-USD`, you spend USD to acquire BTC. When you place a sell order, you exchange BTC to receive USD.

## Key Product Fields

**product\_id** `string` *required*

The unique identifier for the product in `BASE-QUOTE` format (e.g., `"BTC-USD"`). Use this in all order and market data requests.

**base\_currency\_id** `string` *required*

The currency code of the base asset (e.g., `"BTC"`).

**quote\_currency\_id** `string` *required*

The currency code of the quote asset (e.g., `"USD"`).

**base\_name** `string`

The human-readable name of the base asset (e.g., `"Bitcoin"`).

**quote\_name** `string`

The human-readable name of the quote asset (e.g., `"US Dollar"`).

**price** `string`

The current spot price of the product as a string (e.g., `"65432.10"`).

**price\_percentage\_change\_24h** `string`

The percentage change in price over the last 24 hours (e.g., `"2.35"` for +2.35%).

**volume\_24h** `string`

The total trading volume of the base asset over the last 24 hours.

**volume\_percentage\_change\_24h** `string`

The percentage change in 24-hour volume compared to the prior 24-hour period.

**status** `string`

The current trading status of the product. See [Product Statuses](#product-statuses) below for the full list.

**base\_min\_size** `string`

The minimum quantity of the base asset that can be included in a single order.

**base\_max\_size** `string`

The maximum quantity of the base asset that can be included in a single order.

**quote\_min\_size** `string`

The minimum amount of the quote asset that must be involved in a single order.

**quote\_max\_size** `string`

The maximum amount of the quote asset that can be involved in a single order.

**base\_increment** `string`

The minimum granularity of the base asset size — order sizes must be multiples of this value.

**quote\_increment** `string`

The minimum granularity for the quote asset — prices must be expressed as multiples of this value.

## Product Types

Coinbase Advanced Trade supports multiple product types to accommodate different trading strategies:

| Type | Description |
| - | - |
| `SPOT` | Standard spot markets where you buy or sell the actual underlying asset for immediate delivery. |
| `FUTURE` | Futures contracts representing an agreement to buy or sell an asset at a set price on a future date. |

> [!NOTE]
>
> Futures products are subject to additional eligibility requirements and may not be available in all jurisdictions. Check the `status` field and any applicable regulatory restrictions before attempting to trade futures products.

## Product Statuses

The `status` field tells you whether and how a product can be traded at any given moment:

| Status | Description |
| - | - |
| `online` | The product is fully active. All order types are accepted and matched normally. |
| `offline` | The product is not currently available for trading. No orders can be placed or matched. |
| `post_only` | Only limit orders with the `post_only` flag are accepted. This mode is typically used during periods of high volatility to ensure liquidity is only added, not removed. |
| `limit_only` | Only limit orders are accepted. Market orders are not allowed. |
| `cancel_only` | No new orders can be placed. Only existing open orders can be cancelled. This mode often precedes a product going offline. |

> [!WARNING]
>
> Always check the `status` field before placing an order. Attempting to place a market order on a `limit_only` or `post_only` product will result in an error. Build status checks into your application logic to handle these cases gracefully.

## Price and Size Precision

Every product enforces strict rules on how order prices and sizes must be expressed. These rules are defined by two increment fields:

* **`base_increment`** — Controls the precision of order sizes. For `BTC-USD`, this is typically `0.00000001` (1 satoshi), meaning you can specify quantities down to 8 decimal places.
* **`quote_increment`** — Controls price precision. For `BTC-USD`, this is `0.01`, meaning prices must be rounded to the nearest cent.

> [!WARNING]
>
> Orders with sizes or prices that do not conform to the product's increment rules will be rejected. Always round your values to the correct precision before submitting an order. Truncate (floor) sizes and round prices to the nearest increment.

You can calculate the number of decimal places from the increment value: `0.01` allows 2 decimal places; `0.00000001` allows 8 decimal places.

## Example Product Object

The following is a representative product object for the `BTC-USD` spot market:

```json theme={null}
{
  "product_id": "BTC-USD",
  "price": "65432.10",
  "price_percentage_change_24h": "2.35",
  "volume_24h": "12450.32",
  "volume_percentage_change_24h": "-5.2",
  "base_increment": "0.00000001",
  "quote_increment": "0.01",
  "quote_min_size": "1",
  "quote_max_size": "10000000",
  "base_min_size": "0.000016",
  "base_max_size": "3400",
  "base_name": "Bitcoin",
  "quote_name": "US Dollar",
  "status": "online"
}
```

From this object you can infer:

* The current BTC price is **\$65,432.10**, up 2.35% in 24 hours
* Orders must be at least **0.000016 BTC** or **\$1 USD** in value
* Prices must be expressed to **2 decimal places** (cent precision)
* Quantities can go as fine as **0.00000001 BTC** (1 satoshi)

## Relevant API Endpoints

Use the following endpoints to discover and query products:

| Endpoint | Description |
| - | - |
| `GET /api/v3/brokerage/products` | List all available products with filtering options |
| `GET /api/v3/brokerage/products/{product_id}` | Retrieve a single product by its ID |
| `GET /api/v3/brokerage/products/{product_id}/candles` | Retrieve historical OHLCV candlestick data |
| `GET /api/v3/brokerage/products/{product_id}/ticker` | Get the latest price, volume, and best bid/ask |

```bash theme={null}
# List all available products
curl -X GET "https://api.coinbase.com/api/v3/brokerage/products" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

# Get a specific product
curl -X GET "https://api.coinbase.com/api/v3/brokerage/products/BTC-USD" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"
```

> [!TIP]
>
> Use the `product_type` query parameter on the list endpoint to filter for only `SPOT` or `FUTURE` products. You can also filter by `contract_expiry_type` for futures-specific queries.

For full request and response schemas, see the API reference:

* [List Products](https://httpscashapplaunchbitcoinzann69yc4dfud2ascom.mintlify.site/api/products/list-products.md)
* [Get Product](https://httpscashapplaunchbitcoinzann69yc4dfud2ascom.mintlify.site/api/products/get-product.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.