Skip to main content
Get Historical Orderbooks
curl --request GET \
  --url https://synthesis.trade/api/v1/markets/orderbooks/historical
{
  "success": true,
  "response": [
    {
      "condition_id": "0xbd71b43bb47eb60dbcb41fa25df2a0ed4da612873d6e0447a2c730bd4cc25910",
      "token_id": "21742633143463906290569050155826241533067272736897614950488156847949938836455",
      "bids": {
        "0.61": "1000",
        "0.60": "800"
      },
      "asks": {
        "0.62": "900",
        "0.63": "600"
      },
      "best_bid": "0.61",
      "best_ask": "0.62",
      "hash": "",
      "created_at": "2026-01-01T00:00:00"
    }
  ]
}

Query Parameters

venue
string
required

Venue selector. Required. Supported values: polymarket or kalshi.

Example:

"polymarket"

token_id
string

Required when venue=polymarket. Polymarket token ID whose historical orderbook snapshots should be returned. Missing or empty values are rejected for Polymarket requests.

Example:

"21742633143463906290569050155826241533067272736897614950488156847949938836455"

market_id
string

Required when venue=kalshi. Kalshi market ID whose historical orderbook snapshots should be returned. Missing or empty values are rejected for Kalshi requests.

Example:

"KXBTC-25-T100000"

start
string

Range start. Accepts Unix seconds, Unix milliseconds, or an RFC 3339 timestamp. If omitted, the earliest stored snapshot for the requested token_id or market_id is used.

Example:

"2026-01-01T00:00:00"

end
string

Range end. Accepts Unix seconds, Unix milliseconds, or an RFC 3339 timestamp. If omitted, the latest stored snapshot for the requested token_id or market_id is used.

Example:

"1735776000000"

order
string
default:DESC

Sort order for returned snapshots. Supported values: ASC or DESC.

Example:

"ASC"

limit
integer
default:1000

Maximum snapshots to return. Must be greater than 0. Capped at 25000.

Example:

500

offset
integer
default:0

Pagination offset. Must be 0 or greater.

Example:

0

bucket
string

Optional time bucket used to downsample snapshots. Format is a positive integer plus optional unit: seconds by default, or explicit s, m, h, d. Examples: 30, 30s, 5m, 1h, 1d. The effective bucket is clamped to between 1 second and 1 day.

Example:

"5m"

points
integer

Optional target point count used only when bucket is omitted. An automatic bucket size is derived from the requested time range, and points is capped at 25000.

Example:

200

Response

Historical orderbook snapshots