Skip to main content
This page provides information about upcoming changes to Coinbase Prime Broker.

Get Unstaking Status Endpoint

This change will be available in late October to early November 2025 We are introducing a new endpoint to retrieve the status of ongoing unstaking operations for an Ethereum wallet. Prime Rest API:
  • Get Unstaking Status: GET /v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake/status - retrieve status of all active unstaking requests
This endpoint will allow you to view the current status of unstaking operations in progress, including estimated completion times and amounts for each validator. This feature will initially only support ETH. Request:
{
  "portfolio_id": "string",
  "wallet_id": "string"
}
Response:
{
  "portfolio_id": "string",
  "wallet_id": "string",
  "wallet_address": "string",
  "current_timestamp": "string",
  "validators": [
    {
      "validator_address": "string",
      "statuses": [
        {
          "amount": "string",
          "unstake_type": "UNSTAKE_TYPE_PARTIAL | UNSTAKE_TYPE_FULL",
          "finishing_at": "string",
          "remaining_hours": "string",
          "requested_at": "string"
        }
      ]
    }
  ]
}

Prime Multinetwork Support

We’re expanding network support to make capital movement faster, cheaper, and easier:
  • ETH on Base and USDC on Base, Solana, Arbitrum, Optimism, and Avalanche C-Chain can now be transferred efficiently and at no cost within your trading balance on the Prime UI.
  • API support will be available starting November 3rd.
Users will now be able to view and manage assets across multiple networks. We will be updating the use of “symbol” to represent assets on different blockchains. This will be available to users as “network_scoped_symbol” in the List Entity Assets endpoint for each individual network supported for an asset. Example:
  • If a user wants to represent USDC on the Base network, they will use the "network_scoped_symbol" BASEUSDC.
  • When a user calls the ListEntityAssets endpoint for USDC, the response will include a unique “network_scoped_symbol” for USDC on each supported network, such as BASEUSDC for Base, OPTUSDC for Optimism, and so on.
Users can use the “network_scoped_symbol” to get asset details specific to each network. Users can also add a new query parameter to see combined information for an asset across all supported networks denoted as:
  • “get_network_unified_transactions”
  • ”get_network_unified_wallets”
  • “get_network_unified_activites”
  • “unified_total_balances”
All Endpoint Changes:
  • List Entity Assets
    • Will return a new field, “network_scoped_symbol” for each asset supported by the entity
  • List Portfolio Transactions
    • Users can enter a “network_scoped_symbol” in the ‘symbols’ query parameter to get transactions for an asset on a specific network
    • Users can enter optional “get_network_unified_transactions” as a boolean query parameter to get transactions across all networks
  • List Wallet Transactions
    • Will return all transactions for the given wallet across all supported networks including “network_scoped_symbol” as the symbol field
  • List Portfolio Balances
    • Users can enter a “network_scoped_symbol” in the ‘symbols’ query parameter to see balances for an asset on a specific network,
    • Users can enter an optional query parameter with balance_type “UNIFIED_TOTAL_BALANCES” to get balances across all networks
  • List Entity Balances
    • Users can enter a “network_scoped_symbol” in the ‘symbols’ query parameter to view balances for an asset on a specific network
    • Users can enter an optional boolean query parameter with balance_type “UNIFIED_TOTAL_BALANCES” to get balances across all networks
  • List Portfolio Wallet
    • Users can enter a “network_scoped_symbol” in the ‘symbols’ query parameter to get wallets for an asset on a specific network
    • Users can enter “get_network_unified_wallets” as a boolean query parameter to get wallets across all networks
  • List Wallet Addresses
    • Network_id is now an optional field and will return all wallet deposit addresses for the given network. If no network_id provided, it will return all deposit addresses for that wallet across networks
  • List Entity Activities
    • Users can enter “network_scoped_symbol” in the ‘symbols’ query parameter to view activities for an asset on a specific network
    • Users can enter “get_network_unified_activities” as a boolean query parameter to get activities across all networks
  • List Portfolio Activities
    • Users can enter “network_scoped_symbol” in the ‘symbols’ query parameter to view portfolio activities for an asset on a specific network
    • Users can enter “get_network_unified_activities” as a boolean query parameter to get activities across all networks
Network Scoped Symbols:
Asset - SymbolNetwork NameNetwork_Scoped_Symbol
USDCEthereumusdc
USDCAvalanche C-Chainavausdc
USDCOptimismoptusdc
USDCBasebaseusdc
USDCSolanasplusdc
USDCArbitrumarbusdc
ETHEthereumeth
ETHBasebaseeth

Financing API Enhancements

This change will be published in late October to early November 2025 We are implementing changes to an existing endpoint and adding two new endpoints to enhance the API experience for users of the Trade Finance and Bilateral Lending products.

List TF Obligations Endpoint

This new endpoint returns all open trade finance obligations.
{
  "obligations": [
    {
      "portfolio_id": "D7927E4F-DE95-4CF2-BD4C-00477BC25D70",
      "symbol":"USD",
      "amount":"20339.64",
      "notional_amount": "23928.87",
      "due_date": "2025-08-13T22:00:00Z"
    }
  ]
}

List Financing Eligible Assets Endpoint

This new endpoint returns all financing eligible assets and their associated trade finance credit utilization parameters.
{
  "assets": [
    {
      "asset": "XYO", 
      "asset_adjustment": "0.4", 
      "liability_adjustment": "3"
    },
    {
      "asset": "XRP", 
      "asset_adjustment": "0.7", 
      "liability_adjustment": "1.5"
    },
    ...
  ]
}

List Interest Accruals Endpoint

This endpoint will now additionally include interest accruals for Bilateral Lending (in addition to Trade Finance and Portfolio Margin, as currently implemented)

User generated IDs maximum length requirement

Update: This will be live mid-October 2025 A maximum length requirement of 128 characters will be enforced for client generated IDs. Invalid argument errors will be raised if the IDs are longer than this limit. The affected fields currently are:

FIX Market Data

Update: This will be live in Q3 We will be adding level 2 market data on FIX 5.0 for Prime Trading Spot instruments. This includes OHLCV (Open, High, Low, Close, Volume), bids and offers, and trade history data. This will require a dedicated API key with READ permissions. Logon messages must conform to FIXT 1.1, for example:
TagReqNameDescription
8YBeginStringMust be FIXT.1.1
9YBodyLengthLength of body
35YMsgTypeMust be A
34YMsgSeqNumMust be 1
49YSenderCompIDThe Service Account ID (on messages from the client)
52YSendingTimeMust be within 5 seconds of server time in UTC
56YTargetCompIDMust be COIN (on messages from the client)
95YRawDataLengthNumber of bytes in the RawData field
96YRawDataClient message signature (see Logon)
98YEncryptMethodMust be 0 (none)
108YHeartBtIntHeartbeat interval is capped at 300s, defaults to 30s
141YResetSeqNumFlagResets the sequence number. Can be Y/N
553YUsernameClient API Key (Replaces tag 9407)
554YPasswordClient API passphrase
1137YDefaultApplVerIDMust be 9 (FIX 5.0 SP2)
9406YDropCopyFlagMust be N
10YCheckSumChecksum
Prime FIX API:
  • Server will support a new message type sent by the client: MarketDataRequest <V>
  • Server will send a new message type: MarketDataRequestReject <Y>
  • Server will send a new message type: MarketDataSnapshotFullRefresh <W>
  • Server will send a new message type: MarketDataIncrementalRefresh <X>
  • Server will send a new message type: SecurityStatus <f>

MarketDataRequest (V)

Sent by the client when placing a market data request
TagReqNameDescription
262YMDReqIDClient unique identifier for market data request
263YSubscriptionRequestType0 = Snapshot only
1 = Snapshot+Updates (Subscribe)
2 = Disable previous Snapshot+Update (Unsubscribe)
264YMarketDepth0 = Full depth (L2)
1 = Top of book
N>1 = Report best N price tiers of data
265NMDUpdateTypeRequired if SubscriptionRequestType <263> = 1:
0 = Snapshot+Updates
1 = Updates only
267YNoMDEntryTypesNumber of MDEntryType <269> fields requested
↳269YMDEntryType0 = Bid
1 = Offer
2 = Trade
4 = Open
5 = Close
7 = High
8 = Low
B = Volume
146YNoRelatedSymNumber of Symbols <55> requested
↳55YSymbolRepeating group of symbols for which the client requests market data

MarketDataRequestReject (Y)

Sent by the server in case the MarketDataRequest (V) fails
TagReqNameDescription
262YMDReqIDClient unique identifier for market data request
281YMDReqRejReasonSee MDReqRejReason table
58NTextUser friendly error message

MDReqRejReason

Possible values for MDReqRejReason (see MarketDataRequestReject (Y))
ValueDescription
0Unknown symbol
1Duplicate MDReqID
2Insufficient bandwidth
3Insufficient permission
4Invalid SubscriptionRequestType <263>
5Invalid MarketDepth <264>
6Unsupported MDUpdateType <267>
7Other
8Unsupported MDEntryType <269>

MarketDataSnapshotFullRefresh (W)

Sent by the server to view a new stream of market data information
TagReqNameDescription
262YMDReqIDClient unique identifier for market data request
55YSymbolThe trading pair from MarketDataRequest
268YNoMDEntriesNumber of market data updates in snapshot
911YTotNumReportsTotal number of reports being sent in response to a single request
963YReportIDUnique identifier of the report itself
↳269YMDEntryType0 = Bid
1 = Offer
2 = Trade
4 = Open
5 = Close
7 = High
8 = Low
B = Volume
↳278YMDEntryIDUnique identifier for this market data entry
↳83YRptSeqPublic sequence number for each entry in the snapshot by symbol
↳270NMDEntryPxPrice of the market data entry (Not present if MDEntryType = B)
↳271NMDEntrySizeVolume represented by the market data entry (Not present if MDEntryType = 4, 5, 7, or 8)
↳272YMDEntryDateDate of the market data entry
↳2446NAggressorSideIf MDEntryType = 2 (Trade), the side of the order:
1 = Buy
2 = Sell
↳273YMDEntryTimeTime of the market data entry
↳453NNoPartyIDsOnly present if MdEntryType = 2 (Trade). Will always be 1
↳↳448NPartyIDMarket Identifier Code (MIC) for Venue
↳↳447NPartyIDSourceWill always be G, Market Identifier Code (MIC)
↳↳452NPartyRoleWill always be 73, Execution Venue

MarketDataIncrementalRefresh (X)

Sent by the server to view updates to an existing stream
TagReqNameDescription
262YMDReqIDClient unique identifier for market data request
55YSymbolThe trading pair from MarketDataRequest
268YNoMDEntriesNumber of market data updates in snapshot
↳279YMDUpdateActionType of entry update:
0 = NEW
1 = CHANGE
2 = DELETE
↳269YMDEntryType0 = Bid
1 = Offer
2 = Trade
4 = Open
5 = Close
7 = High
8 = Low
B = Volume
↳278YMDEntryIDUnique identifier for this market data entry
↳83YRptSeqPublic sequence number for each entry in the snapshot by symbol
↳270NMDEntryPxPrice of the market data entry (Not present if MDEntryType = B)
↳271NMDEntrySizeVolume represented by the market data entry (Not present if MDEntryType = 4, 5, 7, or 8)
↳272YMDEntryDateDate of the market data entry
↳2446NAggressorSideIf MDEntryType = 2 (Trade), the side of the order:
1=Buy
2=Sell
↳273YMDEntryTimeTime of the market data entry
↳453NNoPartyIDsOnly present if MdEntryType = 2 (Trade). Will always be 1
↳↳448NPartyIDMarket Identifier Code (MIC) for Venue
↳↳447NPartyIDSourceWill always be G, Market Identifier Code (MIC)
↳↳452NPartyRoleWill always be 73, Execution Venue

SecurityStatus (f)

Sent by the server once when an existing stream fails, and once when it reconnects
TagReqNameDescription
55YSymbolSymbol
326YSecurityTradingStatus3=Resume
999=Market data feed temporarily unavailable
58YTextMarket data feed temporarily unavailable for MDReqID MDReqID for stream type:
bid/offer
trade
OHLCV

Settlement Currency

Updating: This will be live in September 2025 We are introducing support for specifying a settlement currency for orders. With this update, clients can access USD trading pairs using USDC positions, enabling them to buy with USDC balances and settle trades directly into USDC positions.
  • Updated Create Order with new optional parameter settl_currency.
I