Skip to main content
GET
/
v1
/
portfolios
/
{portfolio_id}
/
products
List Portfolio Products
curl --request GET \
  --url https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/products
{
  "products": [
    {
      "id": "BTC-USD",
      "base_increment": "1",
      "quote_increment": "1",
      "base_min_size": "100",
      "quote_min_size": "100",
      "base_max_size": "1000",
      "quote_max_size": "1000",
      "permissions": "PRODUCT_PERMISSION_READ",
      "price_increment": "0.01",
      "rfq_product_details": {
        "tradable": true,
        "min_notional_size": "<string>",
        "max_notional_size": "<string>",
        "min_base_size": "<string>",
        "max_base_size": "<string>",
        "min_quote_size": "<string>",
        "max_quote_size": "<string>"
      },
      "product_type": "SPOT",
      "fcm_trading_session_details": {
        "session_open": true,
        "open_time": "2023-11-07T05:31:56Z",
        "close_time": "2023-11-07T05:31:56Z",
        "session_state": "FCM_TRADING_SESSION_STATE_UNDEFINED",
        "after_hours_order_entry_disabled": true,
        "closed_reason": "FCM_TRADING_SESSION_CLOSED_REASON_UNDEFINED",
        "maintenance": {
          "start_time": "2023-11-07T05:31:56Z",
          "end_time": "2023-11-07T05:31:56Z"
        },
        "settlement_timestamp": "2023-11-07T05:31:56Z",
        "settlement_price": "<string>"
      },
      "future_product_details": {
        "contract_code": "BTCH25",
        "contract_size": "1",
        "contract_expiry": "2023-11-07T05:31:56Z",
        "contract_root_unit": "BTC",
        "contract_expiry_type": "CONTRACT_EXPIRY_TYPE_UNSPECIFIED",
        "risk_managed_by": "RISK_MANAGEMENT_TYPE_UNSPECIFIED",
        "venue": "cde",
        "group_description": "Nano Bitcoin",
        "contract_expiry_timezone": "Europe/London",
        "group_short_description": "Nano BTC",
        "perpetual_details": {
          "open_interest": "1000000",
          "funding_rate": "0.0001",
          "funding_time": "2023-11-07T05:31:56Z",
          "max_leverage": "5",
          "underlying_type": "SPOT"
        }
      }
    }
  ],
  "pagination": {
    "next_cursor": "<string>",
    "sort_direction": "DESC",
    "has_next": true
  }
}
Use the Prime SDK or CLI to test this endpoint by following the quickstart guide and running with the following examples
ProductsService productsService = PrimeServiceFactory.createProductsService(client);

ListPortfolioProductsRequest request = new ListPortfolioProductsRequest.Builder()
    .portfolioId("PORTFOLIO_ID_HERE")
    .build();

ListPortfolioProductsResponse response = productsService.listPortfolioProducts(request);
For more information, please visit the Prime Java SDK.

Path Parameters

portfolio_id
string
required

The portfolio ID

Query Parameters

cursor
string

Cursor used for pagination (last consumed record)

limit
integer<int32>

Number of items to retrieve

sort_direction
enum<string>
default:DESC

Sorting order

Available options:
DESC,
ASC
product_type
enum<string>

Filter by product type (SPOT, FUTURE). If unset, returns all types available for your portfolio. Futures products require additional entitlements.

  • UNKNOWN_PRODUCT_TYPE: Unknown product type
  • SPOT: Spot product
  • FUTURE: Future product
Available options:
SPOT,
FUTURE
contract_expiry_type
enum<string>
default:CONTRACT_EXPIRY_TYPE_UNSPECIFIED

Filter by contract expiry type (EXPIRING or PERPETUAL). Only applicable when product_type = FUTURE. If unset, returns all futures kinds.

  • CONTRACT_EXPIRY_TYPE_UNSPECIFIED: Unspecified contract expiry type
  • CONTRACT_EXPIRY_TYPE_EXPIRING: Expiring futures contract
  • CONTRACT_EXPIRY_TYPE_PERPETUAL: Perpetual futures contract (no expiry)
Available options:
CONTRACT_EXPIRY_TYPE_UNSPECIFIED,
CONTRACT_EXPIRY_TYPE_EXPIRING,
CONTRACT_EXPIRY_TYPE_PERPETUAL
expiring_contract_status
enum<string>

Filter by expiry status for expiring futures. If unset, returns all expiring futures.

  • EXPIRING_CONTRACT_STATUS_UNKNOWN: Unknown/unset — returns all expiring contracts (backward compatible default)
  • EXPIRING_CONTRACT_STATUS_UNEXPIRED: Only unexpired contracts (contract_expiry is in the future)
  • EXPIRING_CONTRACT_STATUS_EXPIRED: Only expired contracts (contract_expiry is in the past)
  • EXPIRING_CONTRACT_STATUS_ALL: All contracts regardless of expiry status
Available options:
EXPIRING_CONTRACT_STATUS_UNEXPIRED,
EXPIRING_CONTRACT_STATUS_EXPIRED,
EXPIRING_CONTRACT_STATUS_ALL

Response

200 - application/json

A successful response.

products
object[]
pagination
object