Peg Order
This change will be available in Q4 2025 We are introducing PEG (Pegged) orders, which dynamically adjust their price based on market conditions while maintaining execution discretion. PEG orders “peg” their price to a market reference (best bid/offer) with a configurable offset.REST API Changes
Create Order Endpoint
Path:POST /v1/portfolios/{portfolio_id}/order
New request parameters for PEG orders:
type: required - must be"PEG"time_in_force: required - must be"GOOD_UNTIL_CANCELLED"or"GOOD_UNTIL_DATE_TIME"limit_price: required - acts as ceiling (BUY) or floor (SELL)peg_offset_type: required -"PEG_OFFSET_TYPE_PRICE","PEG_OFFSET_TYPE_BASIS_POINTS", or"PEG_OFFSET_TYPE_CUMULATIVE_DEPTH_IN_BASE_UNITS"offset: required - offset value (0 means peg to best bid/offer)wig_level: optional - “Would if Good” level for aggressive fillsexpiry_time: optional - required iftime_in_forceis"GOOD_UNTIL_DATE_TIME"
FIX API Changes
The following fields will be added to New Order Single (D)| Tag | Req | Name | Notes |
|---|---|---|---|
| 836 | Y | PegOffsetType | 0 = Price 1 = Basis Points 4 = Cumulative depth in base units |
| 211 | Y | PegOffsetValue | The units in price, basis points, or cumulative depth that offset the peg price. |
| 8007 | N | WigLevel | The target price to actively fill the remaining balance of your order |
| Value | Description |
|---|---|
| P | Adaptive Peg order |
| Value | Description | OrdType | TimeInForce |
|---|---|---|---|
| P | Adaptive Peg order | Must be P (PEGGED) | Must be 1 (GTC) or 6 (GTD) |
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
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.
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.
“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”
-
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
- Users can enter a
-
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
- Users can enter
-
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
- Users can enter
| Asset - Symbol | Network Name | Network_Scoped_Symbol |
|---|---|---|
| USDC | Ethereum | usdc |
| USDC | Avalanche C-Chain | avausdc |
| USDC | Optimism | optusdc |
| USDC | Base | baseusdc |
| USDC | Solana | splusdc |
| USDC | Arbitrum | arbusdc |
| ETH | Ethereum | eth |
| ETH | Base | baseeth |
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.List Financing Eligible Assets Endpoint
This new endpoint returns all financing eligible assets and their associated trade finance credit utilization parameters.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:- Create Portfolio Allocations: allocation_id, allocation_leg_id
- Create Portfolio Net Allocations: allocation_leg_id, netting_id
- Accept Quote: client_order_id
- Create Order: client_order_id
- Create Quote Request: client_quote_id
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:| Tag | Req | Name | Description |
|---|---|---|---|
| 8 | Y | BeginString | Must be FIXT.1.1 |
| 9 | Y | BodyLength | Length of body |
| 35 | Y | MsgType | Must be A |
| 34 | Y | MsgSeqNum | Must be 1 |
| 49 | Y | SenderCompID | The Service Account ID (on messages from the client) |
| 52 | Y | SendingTime | Must be within 5 seconds of server time in UTC |
| 56 | Y | TargetCompID | Must be COIN (on messages from the client) |
| 95 | Y | RawDataLength | Number of bytes in the RawData field |
| 96 | Y | RawData | Client message signature (see Logon) |
| 98 | Y | EncryptMethod | Must be 0 (none) |
| 108 | Y | HeartBtInt | Heartbeat interval is capped at 300s, defaults to 30s |
| 141 | Y | ResetSeqNumFlag | Resets the sequence number. Can be Y/N |
| 553 | Y | Username | Client API Key (Replaces tag 9407) |
| 554 | Y | Password | Client API passphrase |
| 1137 | Y | DefaultApplVerID | Must be 9 (FIX 5.0 SP2) |
| 9406 | Y | DropCopyFlag | Must be N |
| 10 | Y | CheckSum | Checksum |
- 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| Tag | Req | Name | Description |
|---|---|---|---|
| 262 | Y | MDReqID | Client unique identifier for market data request |
| 263 | Y | SubscriptionRequestType | 0 = Snapshot only1 = Snapshot+Updates (Subscribe)2 = Disable previous Snapshot+Update (Unsubscribe) |
| 264 | Y | MarketDepth | 0 = Full depth (L2)1 = Top of bookN>1 = Report best N price tiers of data |
| 265 | N | MDUpdateType | Required if SubscriptionRequestType <263> = 1:0 = Snapshot+Updates1 = Updates only |
| 267 | Y | NoMDEntryTypes | Number of MDEntryType <269> fields requested |
| ↳269 | Y | MDEntryType | 0 = Bid1 = Offer2 = Trade4 = Open5 = Close7 = High8 = LowB = Volume |
| 146 | Y | NoRelatedSym | Number of Symbols <55> requested |
| ↳55 | Y | Symbol | Repeating group of symbols for which the client requests market data |
MarketDataRequestReject (Y)
Sent by the server in case the MarketDataRequest (V) fails| Tag | Req | Name | Description |
|---|---|---|---|
| 262 | Y | MDReqID | Client unique identifier for market data request |
| 281 | Y | MDReqRejReason | See MDReqRejReason table |
| 58 | N | Text | User friendly error message |
MDReqRejReason
Possible values for MDReqRejReason (see MarketDataRequestReject (Y))| Value | Description |
|---|---|
| 0 | Unknown symbol |
| 1 | Duplicate MDReqID |
| 2 | Insufficient bandwidth |
| 3 | Insufficient permission |
| 4 | Invalid SubscriptionRequestType <263> |
| 5 | Invalid MarketDepth <264> |
| 6 | Unsupported MDUpdateType <267> |
| 7 | Other |
| 8 | Unsupported MDEntryType <269> |
MarketDataSnapshotFullRefresh (W)
Sent by the server to view a new stream of market data information| Tag | Req | Name | Description |
|---|---|---|---|
| 262 | Y | MDReqID | Client unique identifier for market data request |
| 55 | Y | Symbol | The trading pair from MarketDataRequest |
| 268 | Y | NoMDEntries | Number of market data updates in snapshot |
| 911 | Y | TotNumReports | Total number of reports being sent in response to a single request |
| 963 | Y | ReportID | Unique identifier of the report itself |
| ↳269 | Y | MDEntryType | 0 = Bid1 = Offer2 = Trade4 = Open5 = Close7 = High8 = LowB = Volume |
| ↳278 | Y | MDEntryID | Unique identifier for this market data entry |
| ↳83 | Y | RptSeq | Public sequence number for each entry in the snapshot by symbol |
| ↳270 | N | MDEntryPx | Price of the market data entry (Not present if MDEntryType = B) |
| ↳271 | N | MDEntrySize | Volume represented by the market data entry (Not present if MDEntryType = 4, 5, 7, or 8) |
| ↳272 | Y | MDEntryDate | Date of the market data entry |
| ↳2446 | N | AggressorSide | If MDEntryType = 2 (Trade), the side of the order:1 = Buy2 = Sell |
| ↳273 | Y | MDEntryTime | Time of the market data entry |
| ↳453 | N | NoPartyIDs | Only present if MdEntryType = 2 (Trade). Will always be 1 |
| ↳↳448 | N | PartyID | Market Identifier Code (MIC) for Venue |
| ↳↳447 | N | PartyIDSource | Will always be G, Market Identifier Code (MIC) |
| ↳↳452 | N | PartyRole | Will always be 73, Execution Venue |
MarketDataIncrementalRefresh (X)
Sent by the server to view updates to an existing stream| Tag | Req | Name | Description |
|---|---|---|---|
| 262 | Y | MDReqID | Client unique identifier for market data request |
| 55 | Y | Symbol | The trading pair from MarketDataRequest |
| 268 | Y | NoMDEntries | Number of market data updates in snapshot |
| ↳279 | Y | MDUpdateAction | Type of entry update:0 = NEW1 = CHANGE2 = DELETE |
| ↳269 | Y | MDEntryType | 0 = Bid1 = Offer2 = Trade4 = Open5 = Close7 = High8 = LowB = Volume |
| ↳278 | Y | MDEntryID | Unique identifier for this market data entry |
| ↳83 | Y | RptSeq | Public sequence number for each entry in the snapshot by symbol |
| ↳270 | N | MDEntryPx | Price of the market data entry (Not present if MDEntryType = B) |
| ↳271 | N | MDEntrySize | Volume represented by the market data entry (Not present if MDEntryType = 4, 5, 7, or 8) |
| ↳272 | Y | MDEntryDate | Date of the market data entry |
| ↳2446 | N | AggressorSide | If MDEntryType = 2 (Trade), the side of the order:1=Buy2=Sell |
| ↳273 | Y | MDEntryTime | Time of the market data entry |
| ↳453 | N | NoPartyIDs | Only present if MdEntryType = 2 (Trade). Will always be 1 |
| ↳↳448 | N | PartyID | Market Identifier Code (MIC) for Venue |
| ↳↳447 | N | PartyIDSource | Will always be G, Market Identifier Code (MIC) |
| ↳↳452 | N | PartyRole | Will always be 73, Execution Venue |
SecurityStatus (f)
Sent by the server once when an existing stream fails, and once when it reconnects| Tag | Req | Name | Description |
|---|---|---|---|
| 55 | Y | Symbol | Symbol |
| 326 | Y | SecurityTradingStatus | 3=Resume999=Market data feed temporarily unavailable |
| 58 | Y | Text | Market data feed temporarily unavailable for MDReqID MDReqID for stream type:bid/offertradeOHLCV |
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.