Synpath
Historical Market Data

List trades

Public executions on a market in the YES price, newest page first, each page oldest first.

GET/venues/{venue}/markets/{market_id}/tradesself-hosted · no auth

Self-hosted. Served by synpath serve on your own machine or host, which must be running. Nothing on this page runs on Synpath's servers.

side is what the taker did on the YES leg: buy took YES, sell took NO. A NO buy at 0.30 is reported as a sell at 0.70. Polymarket US publishes no public tape over REST and answers 501.

How far back: Kalshi returns the whole tape, including trades it has moved to its historical archive. Polymarket returns the newest 10,500 or so trades per market, the most its API pages to.

Paging ends with next_cursor: null when the tape runs out, when a page reaches back past since, or at Polymarket's deepest page.

Path parameters

NameTypeDescription
venuestringVenue id: kalshi, polymarket or polymarket_us.
market_idstringA Synpath id (kalshi:KXFOO-25, polymarket:2252244) or this venue's own id. Another venue's id is refused.

Query parameters

NameTypeDescription
sinceintegerMilliseconds since epoch, inclusive.
limitinteger
default 100
Rows per page, up to 100.
cursorstringOpaque cursor from a previous next_cursor. There is no offset: the set changes between calls.

Response

A page of trades.

import synpath

client = synpath.Client()
page = client.fetch_trades("polymarket:2252244", limit=100)
for trade in page:
    print(trade.datetime, trade.side, trade.price, trade.amount)
200
{
  "data": [
    {
      "id": "0722fcf3-4e49-8b90-bb6f-5f402b4c5d55",
      "market_id": "kalshi:KXELONMARS-99",
      "timestamp": 1789366723130,
      "datetime": "2026-09-14T06:18:43.130000Z",
      "price": 0.1,
      "amount": 30.3,
      "side": "sell",
      "info": {
        "...": "the venue's payload"
      }
    },
    {
      "id": "07221ec9-cdf9-82c4-9605-5c251b801ece",
      "market_id": "kalshi:KXELONMARS-99",
      "timestamp": 1789366723130,
      "datetime": "2026-09-14T06:18:43.130000Z",
      "price": 0.1,
      "amount": 17.7,
      "side": "sell",
      "info": {
        "...": "the venue's payload"
      }
    }
  ],
  "next_cursor": "100",
  "count": 2
}