Skip to main content
GET
/
v2
/
data
/
ticks
Download Tick Data
curl --request GET \
  --url https://api.predexon.com/v2/data/ticks \
  --header 'x-api-key: <api-key>'
{
  "venue": "<string>",
  "status": "final",
  "format": "parquet",
  "compression": "zstd",
  "schema": [
    {
      "name": "<string>",
      "type": "<string>"
    }
  ],
  "sort_order": [
    "<string>"
  ],
  "parts": [
    {
      "url": "<string>",
      "rows": 123,
      "bytes": 123,
      "expires_at": "<string>",
      "id_min": "<string>",
      "id_max": "<string>",
      "ts_min": 123,
      "ts_max": 123
    }
  ],
  "total_rows": 123,
  "total_bytes": 123,
  "date": "<string>",
  "start_date": "<string>",
  "end_date": "<string>",
  "start_time": 123,
  "end_time": 123,
  "market_id": "<string>"
}
Download the raw orderbook-delta firehose behind Kalshi — every price-level change at full resolution, as sorted, zstd-compressed Parquet. Call with venue=kalshi; feed the signed URLs into your own DuckDB, Polars, or Spark. Replay the deltas to reconstruct the book at any instant.
Releasing soon — not publicly reachable yet. Kalshi Ticks is in a gated private preview. The endpoint is live but access is restricted: a standard API key is rejected until the dataset is enabled on your account. This page documents the contract so you can build ahead of launch. Request early access →
Finalized data only (T-1). Ticks are compacted daily at 06:00 UTC; today/future days return 404 not_final. For ready-made snapshots use Kalshi Orderbook History.
ConstraintValue
Date rangeUp to 31 days per request
Signed URL TTL~1 hour (expires_at)
Day selectionexactly one of date, start_date+end_date, or start_time+end_time
Timestamps are epoch milliseconds, UTC; prices are in cents (1–99). Pass the Kalshi ticker as market_id to prune a day down to 1–2 files (Parquet is sorted by ticker).

Schema

Orderbook deltas (signed change in resting size at a price level), sorted by (ticker, timestamp, sequence).
ColumnTypeNotes
tickerstringKalshi market ticker
timestampint64Event time (epoch ms)
priceint32Price level, integer cents (1–99)
deltaint32Signed change in resting quantity
sidestringyes / no
sequenceint64Monotonic per-ticker sequence
Want JSON rows instead of files? GET /v2/data/ticks/query?venue=kalshi&market_id=TICKER&start_time=…&end_time=… runs a server-side DuckDB query (no storage URL exposed). Other venues: Polymarket Ticks, Opinion Ticks.

Authorizations

x-api-key
string
header
required

Query Parameters

venue
enum<string>
required

Dataset key: polymarket (CLOB price changes), kalshi, or opinion (orderbook deltas). Dataset key.

Available options:
polymarket,
kalshi,
opinion
date
string | null

Single UTC day, YYYY-MM-DD.

start_date
string | null

Range start, YYYY-MM-DD (pair with end_date).

end_date
string | null

Range end, YYYY-MM-DD (inclusive).

start_time
integer | null

Window start, epoch ms UTC. Selects/derives days and prunes parts by ts range.

end_time
integer | null

Window end, epoch ms UTC (inclusive).

market_id
string | null

Prune to the part(s) covering this market/ticker.

Response

Successful Response

Signed-URL download response for a venue/date (or date range).

venue
string
required
status
string
default:final
required
format
string
default:parquet
required
compression
string
default:zstd
required
schema
TickSchemaField · object[]
required

Column names and types in the Parquet files.

sort_order
string[]
required

Columns the files are globally sorted by.

parts
TickPart · object[]
required
total_rows
integer
required
total_bytes
integer
required
date
string | null
start_date
string | null
end_date
string | null
start_time
integer | null
end_time
integer | null
market_id
string | null