Skip to main content
GET /api/v1/trades Returns the public trade tape for a market outcome, using either the normalized or exchange-native selector.
If you do not know the IDs yet, start with /markets. This endpoint accepts either parsec_id or exchange + market_id.

Error Semantics

  • 403 means your API key is not authorized for the request.
  • 503 means the upstream exchange is temporarily unavailable.

Parameters

parsec_id
string
Canonical selector. Provide either parsec_id or both exchange + market_id.
exchange
string
Exchange selector used with market_id.
market_id
string
Exchange-native market ID used with exchange.
outcome
string
default:"yes"
Outcome selector, typically yes or no for binary markets.
limit
number
default:"200"
Max trades to return. Range: 1-500.
start_ts
number
Historical start timestamp in Unix seconds.
end_ts
number
Historical end timestamp in Unix seconds.
cursor
string
Pagination cursor from the previous response.

Response

(root)
object

Examples

curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parsecapi.com/api/v1/trades?parsec_id=kalshi:KXPRESPERSON-28-GNEWS&outcome=yes&limit=5"
{
  "parsec_id": "kalshi:KXPRESPERSON-28-GNEWS",
  "exchange": "kalshi",
  "outcome": "Yes",
  "token_id": null,
  "market_id": "KXPRESPERSON-28-GNEWS",
  "trades": [
    {
      "id": "02025da9-d3e3-58ea-a865-351e8b8ea012",
      "price": 0.21,
      "size": 112.0,
      "side": "buy",
      "aggressor_side": "buy",
      "timestamp": "2026-03-10T07:18:18.845367Z",
      "source_channel": "kalshi_rest_trade",
      "outcome": "Yes",
      "yes_price": 0.21,
      "no_price": null
    }
  ],
  "has_more": true,
  "next_cursor": "eyJ0cyI6MTczOTM1MDY5OH0"
}
For real-time streaming, use the WebSocket API.