---
title: "Get Trades"
method: GET
path: "/markets/trades"
tags: ["market"]
---

# Get Trades

`GET /markets/trades`

## Request

- Base URL: `https://external-api.kalshi.com/trade-api/v2`
- URL: `https://external-api.kalshi.com/trade-api/v2/markets/trades`
- Auth: none declared

Endpoint for getting all trades for all markets. A trade represents a completed transaction between two users on a specific market. Each trade includes the market ticker, price, quantity, and timestamp information. Block trades are included in the response by default and identified by the `is_block_trade` field; use the `is_block_trade` query parameter to filter by block / non-block. This endpoint returns a paginated response. Use the 'limit' parameter to control page size (1-1000, defaults to 100). The response includes a 'cursor' field - pass this value in the 'cursor' parameter of your next request to get the next page. An empty cursor indicates no more pages are available.

## Query parameters

- `limit` integer
- `cursor` string
- `ticker` string
- `min_ts` integer
- `max_ts` integer
- `is_block_trade` boolean

## Response `200`

Trades retrieved successfully

- GetTradesResponse
  - `trades` Trade[], required
    - `trade_id` string, required: Unique identifier for this trade
    - `ticker` string, required: Unique identifier for the market
    - `count_fp` string, required: Fixed-point contract count string (2 decimals, e.g., "10.00"; referred to as "fp" in field names). Requests accept 0-2 decimal places (e.g., "10", "10.0", "10.00"); responses always emit 2 decimals. Fractional contract values (e.g., "2.50") are supported; the minimum granularity is 0.01 contracts.
    - `yes_price_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
    - `no_price_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
    - `taker_side` 'yes' | 'no': Deprecated. Use `taker_outcome_side` (or `taker_book_side`) instead. See [Order direction](/getting_started/order_direction). This field will not be removed before May 14, 2026.
    - `taker_outcome_side` 'yes' | 'no', required: The outcome side the taker is positioned for. buy-yes and sell-no produce 'yes'; buy-no and sell-yes produce 'no'. `taker_outcome_side` describes directional exposure only; it does not change the trade's price. A trade at price `p` with `taker_outcome_side=no` is matched against the maker at the same price `p` with the opposite direction — both parties trade at the same price. `taker_outcome_side` and `taker_book_side` will become the canonical way to determine trade direction. The legacy `taker_side` field will be deprecated in a future release — please migrate to these new fields.
    - `taker_book_side` 'bid' | 'ask', required: Side of the book for an order or trade. For event markets, this refers to the YES leg only: `bid` means buy YES, `ask` means sell YES. (Selling YES is economically equivalent to buying NO at `1 - price`, but this endpoint quotes everything from the YES side.)
    - `created_time` string, date-time, required: Timestamp when this trade was executed
    - `is_block_trade` boolean, required: True if this trade was matched off-book as a block trade (e.g. via RFQ / negotiated block proposal); false for trades that filled on the standard order book.
  - `cursor` string, required

## Other responses

- `400`: Bad request
- `500`: Internal server error

## Changes

- **2026-07-13** `a671b3e77f35`: 1 breaking
  - the response property `trades/items/taker_side` became optional for the status `200`
- **2026-06-17** `5dacc8874900`: 2 info
  - added the new optional `query` request parameter `is_block_trade`
  - added the required property `trades/items/is_block_trade` to the response with the `200` status
- **2026-05-18** `7e31fc4590e0`: 3 info
  - response property `trades/items/taker_side` deprecated
  - added the required property `trades/items/taker_book_side` to the response with the `200` status
  - added the required property `trades/items/taker_outcome_side` to the response with the `200` status
- **2026-04-13** `218c1f661cbd`: 4 breaking, 2 info
  - removed the required property `trades/items/count` from the response with the `200` status
  - removed the required property `trades/items/no_price` from the response with the `200` status
  - removed the required property `trades/items/price` from the response with the `200` status
  - removed the required property `trades/items/yes_price` from the response with the `200` status
  - …2 more
- **2026-01-26** `ea5437268cb9`: 1 info
  - added the required property `trades/items/count_fp` to the response with the `200` status

[Operation history](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/changes/markets/trades/get.md)

---

[API](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints.md) - [All operations](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/revisions/e6691cdd1915?raw)
