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.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.
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
| Environment | Base URL |
|---|---|
| Production | https://api.exchange.bullish.com/aggregator-api/v1 |
| Security Sandbox | https://api.bugbounty.bullish.com/aggregator-api/v1 |
| API Sandbox | https://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 asymbolV2 string and each value is a Ticker object with the following fields:
Internal numeric market identifier.Example:
"10000"Base asset symbol for the market.Example:
"BTC"Quote asset symbol for the market.Example:
"USD"Price of the most recent trade.Example:
"11514.1859"Current best (lowest) ask price in the order book.Example:
"11514.6000"Current best (highest) bid price in the order book.Example:
"11491.5000"Total base asset volume traded over the last 24 hours.Example:
"0.00000000"Total quote asset volume traded over the last 24 hours.Example:
"0.0000"Percentage price change over the last 24 hours.Example:
"0.00"Highest trade price over the last 24 hours.Example:
"11514.1859"Lowest trade price over the last 24 hours.Example:
"11514.1859"Whether spot trading is currently enabled for this market.
Whether margin trading is currently enabled for this market.
Whether the market is currently enabled for any trading activity.
Example request
Example response
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 thepct-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
Market symbol in hyphen-separated format.Example:
BTC-USD, ETH-USDOptional 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, 10Response fields
Unix epoch timestamp in milliseconds at which the snapshot was taken.Example:
"1645002272035"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"]]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
Example request with pct-depth
Example response
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
Market symbol in hyphen-separated format.Example:
BTC-USD, ETH-USDResponse fields
The response is an array of Trade objects, each with the following fields:Unique identifier for the trade.Example:
"4"Execution price of the trade.Example:
"11514.1859"Quantity of the base asset traded.Example:
"1.00000000"Side of the aggressing order. One of
BUY or SELL.Example: "BUY"Time the trade was executed, as a Unix epoch timestamp in milliseconds.Example:
"1645002272042"Time the trade was executed, in ISO 8601 format with millisecond precision.Example:
"2022-02-16T09:04:32.042Z"