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 Bullish Aggregator API provides read-only access to live market data with no authentication required. Use it to retrieve rolling 24-hour ticker statistics for all markets, fetch order book snapshots up to a depth of 200 price levels, or pull the most recent 100 trades for any active market. The API follows REST conventions and returns JSON responses.
No API key or JWT token is required for any Aggregator API endpoint. All three endpoints are fully public and can be called directly from any HTTP client.

Base URLs

EnvironmentBase URL
Productionhttps://api.exchange.bullish.com/aggregator-api/v1
Security Sandboxhttps://api.bugbounty.bullish.com/aggregator-api/v1
API Sandboxhttps://api.simnext.bullish-test.com/aggregator-api/v1
The Aggregator API uses the symbolV2 format which separates base and quote symbols with a hyphen, e.g. BTC-USD. This differs from the Trading API, which uses a concatenated format without a separator, e.g. BTCUSD. Make sure you use the correct format when constructing path parameters.

GET /tickers

Returns a map of all active markets to their current 24-hour rolling ticker statistics. The response is keyed by the symbolV2 market identifier (e.g. BTC-USD), with each value being a Ticker object containing price, volume, and market status fields.

Request parameters

This endpoint takes no parameters.

Response fields

The response is a JSON object where each key is a symbolV2 string and each value is a Ticker object with the following fields:
marketId
string
Internal numeric market identifier.Example: "10000"
baseSymbol
string
Base asset symbol for the market.Example: "BTC"
quoteSymbol
string
Quote asset symbol for the market.Example: "USD"
last
string
Price of the most recent trade.Example: "11514.1859"
bestAsk
string
Current best (lowest) ask price in the order book.Example: "11514.6000"
bestBid
string
Current best (highest) bid price in the order book.Example: "11491.5000"
baseVolume
string
Total base asset volume traded over the last 24 hours.Example: "0.00000000"
quoteVolume
string
Total quote asset volume traded over the last 24 hours.Example: "0.0000"
percentageChange
string
Percentage price change over the last 24 hours.Example: "0.00"
high
string
Highest trade price over the last 24 hours.Example: "11514.1859"
low
string
Lowest trade price over the last 24 hours.Example: "11514.1859"
spotTradingEnabled
boolean
Whether spot trading is currently enabled for this market.
marginTradingEnabled
boolean
Whether margin trading is currently enabled for this market.
marketEnabled
boolean
Whether the market is currently enabled for any trading activity.

Example request

curl -X GET "https://api.exchange.bullish.com/aggregator-api/v1/tickers"

Example response

{
  "BTC-USD": {
    "marketId": "10000",
    "baseSymbol": "BTC",
    "quoteSymbol": "USD",
    "last": "11514.1859",
    "bestAsk": "11514.6000",
    "bestBid": "11491.5000",
    "baseVolume": "0.00000000",
    "quoteVolume": "0.0000",
    "percentageChange": "0.00",
    "high": "11514.1859",
    "low": "11514.1859",
    "spotTradingEnabled": true,
    "marginTradingEnabled": true,
    "marketEnabled": true
  }
}

GET /orderbook/

Returns an order book snapshot for the specified market at a depth of up to 200 price levels. By default all available levels are returned. Use the pct-depth query parameter to limit the result to bids and asks within a percentage range of the mid-price, which is useful for focusing on liquid price levels.

Request parameters

symbolV2
string
required
Market symbol in hyphen-separated format.Example: BTC-USD, ETH-USD
pct-depth
integer
Optional percentage depth filter. When set, only bids and asks within this percentage of the mid-price are returned. Controls the liquidity range represented in the response.Allowed values: 2, 5, 10

Response fields

timestamp
string
Unix epoch timestamp in milliseconds at which the snapshot was taken.Example: "1645002272035"
bids
array
Array of bid price levels. Each element is a two-element array of strings: [price, quantity]. Sorted from highest to lowest price.Example: [["11491.5000", "0.09222078"]]
asks
array
Array of ask price levels. Each element is a two-element array of strings: [price, quantity]. Sorted from lowest to highest price.Example: [["11514.6000", "0.04731108"]]

Example request

curl -X GET "https://api.exchange.bullish.com/aggregator-api/v1/orderbook/BTC-USD"

Example request with pct-depth

curl -X GET "https://api.exchange.bullish.com/aggregator-api/v1/orderbook/BTC-USD?pct-depth=5"

Example response

{
  "timestamp": "1645002272035",
  "bids": [
    ["11491.5000", "0.09222078"]
  ],
  "asks": [
    ["11514.6000", "0.04731108"]
  ]
}

GET /trades/

Returns the last 100 trades executed for the specified market, ordered from most recent to oldest. Each trade includes the execution price, quantity, side (BUY or SELL), and timestamps in both Unix milliseconds and ISO 8601 formats.

Request parameters

symbolV2
string
required
Market symbol in hyphen-separated format.Example: BTC-USD, ETH-USD

Response fields

The response is an array of Trade objects, each with the following fields:
tradeId
string
Unique identifier for the trade.Example: "4"
price
string
Execution price of the trade.Example: "11514.1859"
quantity
string
Quantity of the base asset traded.Example: "1.00000000"
side
string
Side of the aggressing order. One of BUY or SELL.Example: "BUY"
createdAtTimestamp
string
Time the trade was executed, as a Unix epoch timestamp in milliseconds.Example: "1645002272042"
createdAtDatetime
string
Time the trade was executed, in ISO 8601 format with millisecond precision.Example: "2022-02-16T09:04:32.042Z"

Example request

curl -X GET "https://api.exchange.bullish.com/aggregator-api/v1/trades/BTC-USD"

Example response

[
  {
    "tradeId": "4",
    "price": "11514.1859",
    "quantity": "1.00000000",
    "side": "BUY",
    "createdAtTimestamp": "1645002272042",
    "createdAtDatetime": "2022-02-16T09:04:32.042Z"
  }
]

Build docs developers (and LLMs) love