---
title: "Get OTC Trades"
method: GET
path: "/v2/otc-trades"
tags: ["otc"]
---

# Get OTC Trades

`GET /v2/otc-trades`

## Request

- Base URL: `https://api.exchange.bullish.com/trading-api`
- URL: `https://api.exchange.bullish.com/trading-api/v2/otc-trades`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/bullish/apis/bullish-trading-api/docs/v2/otc-trades/get.ts> (a function with typed inputs; its response is checked against the schema)

Get the otc trade list based on specified filters.
- requires [bearer token](/rest/authentication#add-authenticated-request-header) in authorization header
- [supports pagination](/rest/general/pagination)
- supports filtering on `status`, `tradingAccountId`, `sharedMatchKey`, `clientOtcTradeId`, `createdAtDatetime`, `createdAtTimestamp`, `brokeredBy`

## Query parameters

- `status` 'APPROVAL_PENDING' | 'COUNTERPARTY_PENDING' | 'COUNTERPARTY_PAIRED' | 'RISK_PENDING' | 'MATCHED' | 'CANCELLED' | 'REJECTED': OTC trade status
- `tradingAccountId` string, required: unique trading account ID
- `sharedMatchKey` string: 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
- `clientOtcTradeId` string: unique numeric (i64) identifier generated on the client side expressed as a string value
- `brokeredBy` string: broker short code
- `createdAtDatetime[ gte ]` string, date-time: ISO 8601 with millisecond as string
- `createdAtDatetime[ lte ]` string, date-time: ISO 8601 with millisecond as string

## Response `200`

OK

- OtcTradeView[]
  - `otcTradeId` string, required: unique numeric (i64) identifier generated on Bullish side expressed as a string value
  - `clientOtcTradeId` string: unique numeric (i64) identifier generated on the client side expressed as a string value
  - `tradingAccountId` string: unique trading account ID
  - `tradingAccountNickname` string: nickname of the trading account (only for brokered trades)
  - `sharedMatchKey` string, 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
  - `statusReason` string, required: status reason, describes why the otc trade is in a specific state
  - `statusReasonCode` string, required: status reason code, see [details](/rest/general/error-rejection-codes)
  - `createdAtDatetime` string, date-time, required: ISO 8601 with millisecond as string
  - `createdAtTimestamp` string, string, required: unsigned 64 bit integer value which is the number of milliseconds since EPOCH expressed as string
  - `expireDatetime` string, date-time, required: ISO 8601 with millisecond as string
  - `expireTimestamp` string, string, required: unsigned 64 bit integer value which is the number of milliseconds since EPOCH expressed as string
  - `remarks` string: text field for client's internal reference to a trade, max length is 255 characters
  - `brokeredBy` string: broker short code
  - `trades` OtcTradeLegView[], required: all trades for the OTC trade
    - `tradeId` string
    - `symbol` string, required: market symbol. E.g. `BTC-USDC-PERP` for PERPETUAL market `BTC-USDC-20250613` for DATEDFUTURE market and `BTC-USDC-20250613-100000-C` for OPTION market
    - `price` string, required: see [asset value](/rest/general/price-quantity-precision) format
    - `quantity` string, required: see [asset value](/rest/general/price-quantity-precision) format
    - `quoteAmount` string: see [asset value](/rest/general/price-quantity-precision) format
    - `baseFee` string: see [asset value](/rest/general/price-quantity-precision) format
    - `quoteFee` string: see [asset value](/rest/general/price-quantity-precision) format
    - `tradeRebateAssetSymbol` string: market symbol. E.g. `BTC-USDC-PERP` for PERPETUAL market `BTC-USDC-20250613` for DATEDFUTURE market and `BTC-USDC-20250613-100000-C` for OPTION market
    - `tradeRebateAmount` string: see [asset value](/rest/general/price-quantity-precision) format
    - `side` string, required: trade side can have the following string values `BUY`, `SELL`
    - `isTaker` boolean, required
    - `createdAtDatetime` string, date-time: ISO 8601 with millisecond as string
    - `createdAtTimestamp` string, string: unsigned 64 bit integer value which is the number of milliseconds since EPOCH expressed as string

## Other responses

- `400`: For example, sending a request with an invalid trading account
- `401`: Not Authenticated
- `403`: Access Forbidden
- `500`: Internal Server Error

---

[API](https://skmtc.dev/bullish/apis/bullish-trading-api.md) - [All operations](https://skmtc.dev/bullish/apis/bullish-trading-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bullish/apis/bullish-trading-api/revisions/df5d69ccedcf?raw)
