The Orders API provides full order lifecycle management: submitting new orders, querying open and historical orders by ID or filter, and cancelling or amending existing orders via the command entry interface. All write operations (create, cancel, amend) require a valid bearer JWT along with a signed request envelope.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/bullish-exchange/api-docs/llms.txt
Use this file to discover all available pages before exploring further.
Authentication Headers
All authenticated order endpoints require the following HTTP request headers:| Header | Description |
|---|---|
Authorization | Bearer <JWT> obtained from the login endpoint. |
BX-NONCE | Client-side incremented unsigned 64-bit integer, expressed as a string. |
BX-SIGNATURE | Signature generated using the signing format. |
BX-TIMESTAMP | Number of milliseconds since EPOCH. |
BX-RATELIMIT-TOKEN (from your trading account) to access higher rate limit tiers.
GET /trading-api/v2/orders
Retrieves a list of orders placed by a trading account. Only the last 24 hours of data is available for querying. Supports pagination and filtering.Authentication: Required. Rate limited: Yes.
Query Parameters
ID of the trading account to query orders for.
Filter by market symbol, e.g.
BTCUSD.Filter by unique numeric client-side order identifier (expressed as a string).
Filter by order side:
BUY or SELL.Filter by order status:
OPEN, CLOSED, CANCELLED, REJECTED.Page size. One of:
5, 25, 50, 100. Defaults to 25.Response Fields (array of Order objects)
Unique exchange-assigned order ID.
Unique client-side numeric identifier provided at order creation.
Market symbol. E.g.
BTCUSD.Order type:
LMT, MKT, STOP_LIMIT, POST_ONLY, LIMIT, MARKET.Order side:
BUY or SELL.Limit price. E.g.
"50000.0000".Stop trigger price (for stop-limit orders).
Average fill price if partially or fully filled.
Order quantity. E.g.
"1.00000000".Quantity that has been filled so far.
Quote quantity deducted from the asset account.
Base asset fee charged upon trade execution. E.g.
"0.00100000".Quote asset fee charged upon trade execution. E.g.
"0.0010".Time-in-force policy:
GTC (Good Till Cancel), FOK (Fill Or Kill), IOC (Immediate Or Cancel).Order status:
OPEN, CLOSED, CANCELLED, REJECTED.Human-readable description of the current status. E.g.
"User cancelled".Numeric status reason code. See Error & Rejection Codes.
Indicates if the order was allowed to borrow (does not confirm borrowing occurred).
Whether this order was executed as a liquidation order.
ISO 8601 datetime when the order was acknowledged by the exchange.
Millisecond EPOCH timestamp when the order was acknowledged.
Example Request
Example Response
POST /trading-api/v2/orders
Creates a new order. A200 response confirms the command was acknowledged by the exchange — use GET /trading-api/v2/orders/ to confirm the final order status.
Authentication: Required. Rate limited: Yes. Provide
BX-RATELIMIT-TOKEN header for higher tiers.Request Headers
Bearer <JWT>Request signature.
Milliseconds since EPOCH.
Client-side incremented unsigned 64-bit integer as a string.
"true" or "false". Enables out-of-order processing of order requests. Defaults to "false".Request Body Fields
Must be
"V3CreateOrder".ID of the trading account placing the order.
Market symbol, e.g.
"BTCUSD".Order type:
"LIMIT", "MARKET", "STOP_LIMIT", "POST_ONLY".Order side:
"BUY" or "SELL".Order quantity. E.g.
"1.00000000". Strict precision not required.Time-in-force:
"GTC", "FOK", or "IOC".Limit price. Required for
LIMIT, STOP_LIMIT, and POST_ONLY orders. E.g. "50000.0000".Stop trigger price. Required for
STOP_LIMIT orders.Client-side unique numeric identifier (expressed as a string). Formerly called
handle.Allow the order to borrow assets. Defaults to
false.Subject the order to Market Maker Protection. Only applicable to option markets.
Response Fields
Acknowledgement message, e.g.
"Command acknowledged - CreateOrder".Unique request ID assigned by the exchange.
Unique exchange-assigned order ID to use for subsequent status queries.
Client-side order ID echoed from the request.
Example — Create a Limit Buy Order
Example Request Body — Spot Limit Order
Example Request Body — Market Order
Example Request Body — Stop-Limit Order
Example Response
GET /trading-api/v2/orders/
Retrieves a specific order by its exchange-assigned order ID.Authentication: Required. Rate limited: Yes.
Path Parameters
Exchange-assigned order ID.
Query Parameters
ID of the trading account that owns the order.
Example Request
GET /trading-api/v2/history/orders
Retrieves paginated historical order records. Only the last 90 days of data are available. Supports pagination and filtering including datetime ranges.Authentication: Required. Rate limited: Yes.
Query Parameters
ID of the trading account.
Filter by market symbol.
Filter by specific order ID.
Filter by client-side order identifier.
Filter by order side:
BUY or SELL.Filter by order status:
OPEN, CLOSED, CANCELLED, REJECTED.Start of datetime range (ISO 8601 with millisecond).
End of datetime range (ISO 8601 with millisecond).
Page size. One of:
5, 25, 50, 100. Defaults to 25.Example Request
POST /trading-api/v2/command
Submits a command to the trading engine. Supports order cancellation, mass cancellation, delayed cancellation, and order amendment. A200 response confirms command acknowledgement — it does not guarantee execution.
Authentication: Required. Rate limited: Yes. Provide
BX-RATELIMIT-TOKEN for higher tiers.commandType values:
V3CancelOrder— Cancel a specific orderV1CancelAllOrders— Cancel all open orders across all marketsV1CancelAllOrdersByMarket— Cancel all open orders in a specific marketV1DelayedCancelAllOrders— Schedule a delayed cancel-all (kill switch)V1UnsetDelayedCancelAllOrders— Unset a pending delayed cancel-allV1AmendOrder— Amend the price, quantity, or type of an open orderV3TerminateAMMInstruction— Terminate an active AMM instructionV2TransferAsset— Transfer assets between trading accounts
Request Headers
Bearer <JWT>Request signature.
Milliseconds since EPOCH.
Client-side incremented unsigned 64-bit integer as a string.
"true" or "false". Enables out-of-order request processing.Cancel a Specific Order
Amend an Open Order
Amendments can changeprice, quantity, and type (e.g. between taker-only and maker-only). Only applicable to open orders where quantityFilled = 0 and status = OPEN.
Cancel All Orders in a Market
Cancel Order Response
Amend Order Response
Example Curl — Cancel Order
POST /trading-api/v2/mmp-configuration
Sets up or resets Market Maker Protection (MMP) configuration for a trading account. MMP is only applicable to options orders created with theisMMP flag set to true. Contact your relationship manager to enable MMP for your accounts.
Authentication: Required.
Request Headers
Bearer <JWT>Request signature.
Milliseconds since EPOCH.
Client-side incremented unsigned 64-bit integer as a string.
Supported Command Types
V1SetMMP— Configure MMP parameters for an underlying asset symbol.V1ResetMMP— Reset MMP configuration for an underlying asset symbol.
Example Request
GET /trading-api/v2/mmp-configuration
Returns the MMP configuration for a trading account, optionally filtered by underlying asset symbol.Authentication: Required.
Query Parameters
ID of the trading account.
Underlying asset symbol to filter the configuration by. E.g.
BTC.