idb

IDB Get OTC Trades

Get the brokered OTC trade list initiated by the IDB based on specified filters.

  • requires bearer token in authorization header
  • supports filtering on status, tradingAccountId, sharedMatchKey, createdAtDatetime, createdAtTimestamp
  • supports pagination
get/v2/idb/otc-trades#list

Request

Query parameters

status'APPROVAL_PENDING' | 'COUNTERPARTY_PENDING' | 'COUNTERPARTY_PAIRED' | 'RISK_PENDING' | 'MATCHED' | 'CANCELLED' | 'REJECTED'

OTC trade status

Example:MATCHED
tradingAccountIdTradingAccountId[]

Allow filtering across multiple delegated trading accounts; if tradingAccountId is null or omitted, returns trades for all delegated accounts

[
  "111000000000001"
]
sharedMatchKeystring

Unique shared key that is agreed between the two customers to represent their OTC trade to be matched on Bullish's OTC Clearing Facility. Must be a 12 to 64 characters alphanumeric value

Example:cfBtcXrpMatch001
createdAtDatetime[ gte ]string date-time

ISO 8601 with millisecond as string

Example:2025-05-20T01:01:01.000Z

Start timestamp of window, ISO 8601 with millisecond as string

createdAtDatetime[ lte ]string date-time

ISO 8601 with millisecond as string

Example:2025-05-20T01:01:01.000Z

End timestamp of window, ISO 8601 with millisecond as string

Response

OK

otcTradeIdstring required

unique numeric (i64) identifier generated on Bullish side expressed as a string value

institutionNamestring required

legal name of the institution that owns the delegated trading account

tradingAccountIdstring required

unique trading account ID

tradingAccountNicknamestring required

nickname assigned for this account

sharedMatchKeystring required

Unique shared key that is agreed between the two customers to represent their OTC trade to be matched on Bullish's OTC Clearing Facility. Must be a 12 to 64 characters alphanumeric value

status'APPROVAL_PENDING' | 'COUNTERPARTY_PENDING' | 'COUNTERPARTY_PAIRED' | 'RISK_PENDING' | 'MATCHED' | 'CANCELLED' | 'REJECTED' required

OTC trade status

statusReasonstring required

status reason, why the trade is in a specific state, see details

statusReasonCodestring required

status reason code, see details

createdAtDatetimestring date-time required

ISO 8601 with millisecond as string

createdAtTimestampstring string required

unsigned 64 bit integer value which is the number of milliseconds since EPOCH expressed as string

expireDatetimestring date-time required

ISO 8601 with millisecond as string

expireTimestampstring string required

unsigned 64 bit integer value which is the number of milliseconds since EPOCH expressed as string

remarksstring

text field for client's internal reference to a trade, max length is 255 characters

idbRemarksstring

text field for IDB's internal reference to a trade, max length is 255 characters

brokeredBystring required

broker short code

Example response

[
  {
    "otcTradeId": "200000000000000098",
    "institutionName": "Alpha Traders",
    "tradingAccountId": "111000000000001",
    "tradingAccountNickname": "Alpha Traders Primary",
    "sharedMatchKey": "cfBtcXrpMatch001",
    "status": "MATCHED",
    "statusReason": "Ok",
    "statusReasonCode": "1002",
    "createdAtDatetime": "2025-05-20T01:01:01.000Z",
    "createdAtTimestamp": "1621490985000",
    "expireDatetime": "2025-05-20T01:01:01.000Z",
    "expireTimestamp": "1621490985000",
    "remarks": "first otc trade with xyz client",
    "idbRemarks": "otc trades between abc and xyz client",
    "trades": [
      {
        "tradeId": "100020000000000060",
        "symbol": "BTC-USDC-PERP",
        "price": "1.00000000",
        "quantity": "1.00000000",
        "quoteAmount": "1.00000000",
        "baseFee": "1.00000000",
        "quoteFee": "1.00000000",
        "side": "BUY",
        "isTaker": true,
        "createdAtDatetime": "2025-05-20T01:01:01.000Z",
        "createdAtTimestamp": "1621490985000"
      }
    ],
    "brokeredBy": "IDB_A"
  }
]

Changes

No recorded changes to this operation across all 1 revision of this API.