Skip to main content

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.

The Markets API provides public, non-authenticated access to market structure, real-time order books, tick data, OHLCV candles, anonymous trade history, index prices, and funding rates. These endpoints are rate limited; see the Rate Limits section for details.

GET /trading-api/v1/markets

Retrieves a list of all active markets on the exchange. Clients can ignore test markets. Note: Leverage = Collateral ÷ (Collateral - Debt).
Authentication: Not required. This is a public endpoint.

Query Parameters

marketType
string
Filter markets by type. Enum: SPOT, PERPETUAL, DATED_FUTURE, OPTION.
optionType
string
Filter by option type. If present, only option markets are returned. Enum: CALL, PUT.

Response Fields

marketId
string
Unique market ID.
symbol
string
Market symbol, e.g. BTCUSD, BTC-USDC-PERP, BTC-USDC-20250901-90000-C.
baseSymbol
string
Base asset symbol (spot markets). E.g. BTC.
quoteSymbol
string
Quote asset symbol (spot markets). E.g. USD.
basePrecision
integer
Number of decimal digits after the dot for base asset quantities. E.g. 8.
quotePrecision
integer
Number of decimal digits after the dot for quote asset amounts. E.g. 4.
pricePrecision
integer
Number of decimal digits after the dot for price. E.g. 8.
quantityPrecision
integer
Number of decimal digits after the dot for quantity. E.g. 8.
tickSize
string
Minimum price increment for the market.
minQuantityLimit
string
Minimum order quantity allowed.
maxQuantityLimit
string
Maximum order quantity allowed.
minPriceLimit
string
Minimum order price allowed.
maxPriceLimit
string
Maximum order price allowed.
spotTradingEnabled
boolean
Whether spot trading is enabled for this market.
marginTradingEnabled
boolean
Whether margin trading is enabled for this market.
marketEnabled
boolean
Whether the market is currently active.
createOrderEnabled
boolean
Whether new orders can be submitted.
cancelOrderEnabled
boolean
Whether orders can be cancelled.
marketType
string
Market type. One of SPOT, PERPETUAL, DATED_FUTURE, OPTION.
expiryDatetime
string
ISO 8601 datetime of market expiry (applicable to DATED_FUTURE and OPTION markets). E.g. 2024-10-04T08:00:00.000Z.
optionStrikePrice
string
Strike price of the option (applicable to OPTION markets). E.g. "70000.0000".
optionType
string
CALL or PUT (applicable to OPTION markets).
openInterestUSD
string
Cumulative notional value of all open interest for this derivative contract.
feeTiers
array
All available fee tiers for this market.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/markets" \
  -H "Content-Type: application/json"

Example Response

[
  {
    "marketId": "1",
    "symbol": "BTCUSD",
    "baseSymbol": "BTC",
    "quoteSymbol": "USD",
    "basePrecision": 8,
    "quotePrecision": 4,
    "pricePrecision": 4,
    "quantityPrecision": 8,
    "costPrecision": 8,
    "tickSize": "0.0001",
    "minQuantityLimit": "0.00010000",
    "maxQuantityLimit": "100.00000000",
    "minPriceLimit": "1.0000",
    "maxPriceLimit": "9999999.0000",
    "spotTradingEnabled": true,
    "marginTradingEnabled": true,
    "marketEnabled": true,
    "createOrderEnabled": true,
    "cancelOrderEnabled": true,
    "marketType": "SPOT",
    "expiryDatetime": null,
    "openInterestUSD": null
  }
]

GET /trading-api/v1/markets/

Retrieves a single market by its symbol. Returns the same schema as the list endpoint.
Authentication: Not required.

Path Parameters

symbol
string
required
Market symbol, e.g. BTCUSD, BTC-USDC-PERP.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/markets/BTCUSD"

GET /trading-api/v1/markets//orderbook/hybrid

Returns the current hybrid order book for the specified market, combining AMM liquidity with resting limit orders.
Authentication: Not required. Rate limited: No.

Path Parameters

symbol
string
required
Market symbol to retrieve the order book for.

Response Fields

bids
array
List of bid price-quantity tuples, sorted best (highest) first.
asks
array
List of ask price-quantity tuples, sorted best (lowest) first.
datetime
string
ISO 8601 datetime of the order book snapshot.
timestamp
string
Millisecond EPOCH timestamp of the order book snapshot.
sequenceNumber
integer
Incrementing unique identifier for this order book snapshot. E.g. 999.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/markets/BTCUSD/orderbook/hybrid"

Example Response

{
  "bids": [
    ["50000.0000", "0.50000000"],
    ["49999.0000", "1.20000000"]
  ],
  "asks": [
    ["50001.0000", "0.30000000"],
    ["50002.0000", "0.80000000"]
  ],
  "datetime": "2024-10-04T08:00:00.000Z",
  "timestamp": "1728028800000",
  "sequenceNumber": 1042
}

GET /trading-api/v1/markets//trades

Returns the 100 most recent trades for a given market. Data is sourced from a local cache.
Authentication: Not required. Rate limited: No.

Path Parameters

symbol
string
required
Market symbol.

Response Fields (array of trades)

tradeId
string
Unique trade ID.
symbol
string
Market symbol.
price
string
Execution price.
quantity
string
Execution quantity.
side
string
BUY or SELL.
isTaker
boolean
Whether this is a taker trade.
createdAtDatetime
string
ISO 8601 datetime of trade execution.
createdAtTimestamp
string
Millisecond EPOCH timestamp of trade execution.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/markets/BTCUSD/trades"

Example Response

[
  {
    "tradeId": "390755652232282113",
    "symbol": "BTCUSD",
    "price": "50000.0000",
    "quantity": "0.10000000",
    "side": "BUY",
    "isTaker": true,
    "createdAtDatetime": "2024-10-04T08:00:00.000Z",
    "createdAtTimestamp": "1728028800000"
  }
]

GET /trading-api/v1/markets//tick

Returns the current tick (24-hour rolling statistics) for a market.
Authentication: Not required. Rate limited: No.

Path Parameters

symbol
string
required
Market symbol. Only perpetual markets are supported.

Response Fields

high
string
Highest price in the 24-hour window.
low
string
Lowest price in the 24-hour window.
bestBid
string
Current best bid price.
bidVolume
string
Quantity at the best bid.
bestAsk
string
Current best ask price.
askVolume
string
Quantity at the best ask.
vwap
string
Volume-weighted average price.
open
string
Opening price for the period.
close
string
Price of the last trade (closing price for the current period).
last
string
Last traded price.
change
string
Absolute price change over the period.
percentage
string
Percentage price change over the period.
baseVolume
string
24-hour volume in base asset.
quoteVolume
string
24-hour volume in quote asset.
createdAtDatetime
string
ISO 8601 datetime of tick snapshot.
createdAtTimestamp
string
Millisecond EPOCH timestamp of tick snapshot.
lastTradeDatetime
string
ISO 8601 datetime of the last trade.
lastTradeTimestamp
string
Millisecond EPOCH timestamp of the last trade.
lastTradeQuantity
string
Quantity of the last trade.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/markets/BTC-USDC-PERP/tick"

GET /trading-api/v1/markets//candle

Returns historical OHLCV (Open-High-Low-Close-Volume) candle data for a market over a specified time window and bucket size. Supports pagination.
Authentication: Not required. Rate limited: No.

Path Parameters

symbol
string
required
Market symbol.

Query Parameters

createdAtDatetime[gte]
string
required
Start of the time window. ISO 8601 with millisecond, e.g. 2024-10-01T00:00:00.000Z.
createdAtDatetime[lte]
string
required
End of the time window. ISO 8601 with millisecond.
timeBucket
string
required
Size of each candle. One of: 1m, 5m, 30m, 1h, 6h, 12h, 1d.

Response Fields (array of candles)

open
string
Opening price for the candle period.
high
string
Highest price during the candle period.
low
string
Lowest price during the candle period.
close
string
Closing price for the candle period.
volume
string
Trading volume during the candle period.
createdAtDatetime
string
ISO 8601 datetime for the start of the candle.
createdAtTimestamp
string
Millisecond EPOCH timestamp for the start of the candle.
publishedAtTimestamp
string
Millisecond EPOCH timestamp when the candle was published.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/markets/BTCUSD/candle?createdAtDatetime%5Bgte%5D=2024-10-01T00%3A00%3A00.000Z&createdAtDatetime%5Blte%5D=2024-10-02T00%3A00%3A00.000Z&timeBucket=1h"

Example Response

[
  {
    "open": "49800.0000",
    "high": "50200.0000",
    "low": "49500.0000",
    "close": "50100.0000",
    "volume": "123.45000000",
    "createdAtDatetime": "2024-10-01T00:00:00.000Z",
    "createdAtTimestamp": "1727740800000",
    "publishedAtTimestamp": "1727744400000"
  }
]

GET /trading-api/v1/history/markets/

Returns historical market metadata for a specified market symbol. This endpoint returns data even for expired markets and is only applicable to DATED_FUTURE and OPTION markets.
Authentication: Not required.

Path Parameters

symbol
string
required
Market symbol for a dated future or option market, e.g. BTC-USDC-20250901.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/history/markets/BTC-USDC-20250901"

GET /trading-api/v1/history/markets//trades

Returns paginated historical trade data for a market. Supports querying up to 7 days of data at a time. Only the last 90 days of data are available.
Authentication: Not required. Rate limited: No.

Path Parameters

symbol
string
required
Market symbol.

Query Parameters

createdAtDatetime[gte]
string
Start of the datetime range (ISO 8601 with millisecond).
createdAtDatetime[lte]
string
End of the datetime range (ISO 8601 with millisecond).
tradeId
string
Filter for a specific trade ID.
_pageSize
integer
Page size. One of: 5, 25, 50, 100. Defaults to 25.
_nextPage
string
Cursor to the next page, provided in paginated responses.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/history/markets/BTCUSD/trades?createdAtDatetime%5Bgte%5D=2024-10-01T00%3A00%3A00.000Z&createdAtDatetime%5Blte%5D=2024-10-07T00%3A00%3A00.000Z"

GET /trading-api/v1/history/markets//funding-rate

Returns the historical hourly funding rate for a perpetual market. Only the last 90 days of data are available.
Authentication: Not required.

Path Parameters

symbol
string
required
Perpetual market symbol, e.g. BTC-USDC-PERP.

Query Parameters

updatedAtDatetime[gte]
string
Start of the datetime range (ISO 8601 with millisecond).
updatedAtDatetime[lte]
string
End of the datetime range (ISO 8601 with millisecond).

Response Fields (array)

fundingRate
string
The funding rate for this hour. E.g. "0.1".
updatedAtDatetime
string
Date and time of the last funding rate update for the hour. E.g. "2024-09-16T12:59:59.000Z".

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/history/markets/BTC-USDC-PERP/funding-rate?updatedAtDatetime%5Bgte%5D=2024-09-16T00%3A00%3A00.000Z&updatedAtDatetime%5Blte%5D=2024-09-17T00%3A00%3A00.000Z"

Example Response

[
  {
    "fundingRate": "0.0001",
    "updatedAtDatetime": "2024-09-16T12:59:59.000Z"
  }
]

GET /trading-api/v1/index-prices

Returns the index prices for all supported assets.
Authentication: Not required.

Response Fields (array)

assetSymbol
string
Asset symbol, e.g. BTC.
price
string
Asset index price in USD. E.g. "66100.0000".
updatedAtDatetime
string
ISO 8601 datetime when the index price was last updated.
updatedAtTimestamp
string
Millisecond EPOCH timestamp when the index price was last updated.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/index-prices"

Example Response

[
  {
    "assetSymbol": "BTC",
    "price": "66100.0000",
    "updatedAtDatetime": "2024-10-04T08:00:00.000Z",
    "updatedAtTimestamp": "1728028800000"
  }
]

GET /trading-api/v1/index-prices/

Returns the index price for a single asset.
Authentication: Not required.

Path Parameters

assetSymbol
string
required
Asset symbol, e.g. BTC.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/index-prices/BTC"

GET /trading-api/v1/time

Returns the current exchange time.
Authentication: Not required.

Response Fields

timestamp
string
Current exchange time as a millisecond EPOCH timestamp string.
datetime
string
Current exchange time as an ISO 8601 datetime string.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/time"

Example Response

{
  "timestamp": "1728028800000",
  "datetime": "2024-10-04T08:00:00.000Z"
}

GET /trading-api/v1/option-ladder

Returns available options contracts organised by strike price and expiration date, with pricing, implied volatilities, and Greeks.
Authentication: Not required.

Query Parameters

baseSymbol
string
required
Base asset symbol to retrieve the option ladder for. E.g. BTC.
expiry
string
Filter results by expiry date of option markets.
type
string
Filter by option type: CALL or PUT.
sort
string
Sort results by option type or expiry datetime.

Response Fields (array)

symbol
string
Option market symbol, e.g. BTC-USDC-20241004-70000-C.
baseSymbol
string
Base asset symbol, e.g. BTC.
settlementAssetSymbol
string
Asset used for mark-to-market settlement.
bid
string
Best bid price in the order book.
ask
string
Best ask price in the order book.
bidQuantity
string
Quantity at the best bid.
askQuantity
string
Quantity at the best ask.
bidIVPercentage
string
Implied volatility of the best bid price.
askIVPercentage
string
Implied volatility of the best ask price.
underlyingPrice
string
Index price of the base asset.
optionStrikePrice
string
Strike price of the option market.
markPrice
string
Mark price of the option market.
openInterest
string
Amount of outstanding contracts in the exchange.
openInterestUSD
string
USD value of outstanding contracts.
optionType
string
CALL or PUT.
expiryDatetime
string
ISO 8601 expiry datetime.
greeks
object
Option pricing Greeks.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/option-ladder?baseSymbol=BTC"

GET /trading-api/v1/option-ladder/

Returns the option ladder entry for a specific option market symbol.
Authentication: Not required.

Path Parameters

symbol
string
required
Option market symbol. Only option markets are supported. E.g. BTC-USDC-20241004-70000-C.

Example Request

curl -X GET "https://api.exchange.bullish.com/trading-api/v1/option-ladder/BTC-USDC-20241004-70000-C"

Build docs developers (and LLMs) love