# Exchange & Trade Code Breakdown `GET` `https://api.unusualwhales.com/api/option-trades/exchange-breakdown/{date}` Aggregates the option tape for one or more tickers on a single trading date, grouped by the **options exchange** the prints executed on (e.g. `AMXO`, `ARCO`, `BATO`). For each ticker × exchange you get the trade count, total contracts, total premium (`sum(price × size × 100)`) and the call/put trade split. Set `by_trade_code=true` to additionally break each row down by the upstream trade condition code (`upstream_condition_detail`, e.g. `auto`, `mlat`, `slan`). Use `min_premium` to drop smaller prints before aggregating. **Whole-universe mode:** omit `ticker[]` to get the breakdown across the entire option universe. In that mode tickers are ranked by total contracts traded that day (descending) and the response is paged by ticker via `limit` (tickers per page) and `page` — so you receive the top names first. When `ticker[]` is supplied this paging is ignored and exactly those tickers are returned. NOTICE: Access to this endpoint is only included in the Advanced API subscription. Data is available for trading days after 2022-01-01. ## Authentication ``` Authorization: Bearer YOUR_API_KEY ``` ## Path Parameters | Name | Type | Required | Description | |------|------|----------|-------------| | `date` | Market Date | Yes | A trading date in the format of YYYY-MM-DD. | ## Query Parameters | Name | Type | Required | Description | |------|------|----------|-------------| | `ticker[]` | array[string] | No | One or more underlying symbols to aggregate, e.g. `ticker[]=AAPL&ticker[]=NVDA`. Omit for whole-universe mode (top names by volume). | | `by_trade_code` | boolean | No | Whether to additionally group each row by the upstream trade condition code. | | `min_premium` | string | No | Only include individual prints whose premium (price × size × 100) is at least this value, before aggregating. Use to filter out smaller trades. | | `limit` | integer | No | Whole-universe mode only: tickers per page (ranked by volume). Default 100, max 500. | | `page` | integer | No | Whole-universe mode only: 1-based page of tickers. Default 1. | | `order` | string | No | Whole-universe mode only: how to rank tickers — `volume` (total contracts) or `premium` (total premium). Default `volume`. | ## Response (200) | Field | Type | Description | |-------|------|-------------| | `call_trades` | integer | The number of call prints in this group. | | `contracts` | integer | The total number of contracts traded in this group. | | `exchange` | Exchange | The exchange the option trade was executed on. | | `premium` | number | The total premium of this group, computed as sum(price × size × 100). | | `put_trades` | integer | The number of put prints in this group. | | `trade_code` | Upstream Condition Detail | The upstream condition detail/trade code of the option trade. | | `trade_count` | integer | The number of option prints in this group. | | `underlying_symbol` | Option Contract Underlying Symbol | The underlying symbol of the contract. | ## Example ### curl ```bash curl -X GET "https://api.unusualwhales.com/api/option-trades/exchange-breakdown/{date}" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json" ``` ### Python ```python import http.client conn = http.client.HTTPSConnection("api.unusualwhales.com") headers = {"Authorization": "Bearer YOUR_API_KEY", "Accept": "application/json"} conn.request("GET", "/api/option-trades/exchange-breakdown/{date}", headers=headers) response = conn.getresponse() print(response.read().decode("utf-8")) ``` ## Response Example ```json { "data": [ { "call_trades": 3370, "contracts": 38633, "exchange": "AMXO", "premium": 5454330, "put_trades": 3434, "trade_code": "slan", "trade_count": 6804, "underlying_symbol": "AAPL" } ] } ```