Skip to main content
Bulk tick downloads are priced by download size, not per request. One call can authorize gigabytes of Parquet, so charges come out of a prepaid data-credit balance on your organization, kept completely separate from your monthly API request quota.
Get started in two minutes. Sign up, open Data Credits, and add a payment method to unlock $50 in free credits. That is enough to pull a handful of markets and inspect the data in your own tools. There is no approval step and no charge to add a card. Top up any amount from $5 to $10,000 when you are ready for more.

Coverage

Every tick dataset covers complete order-book history from launch through yesterday, finalized daily and growing one day at a time. Data is finalized T-1: each UTC day is compacted the following morning (around 06:00 UTC). Requests for today, or any day not yet compacted, return 404 not_final. A single request spans up to 31 days; pull a longer range across multiple requests.

Pricing

Priced per GiB of compressed Parquet (what you actually download). zstd compression makes this roughly 8 to 15 times smaller than the raw data it represents. Every download has a $5.00 minimum charge, and market_id-filtered downloads are priced on the pruned files only, so single-market pulls are usually at or near the minimum. That makes filtering the cheapest way to validate the data before a larger pull. Your balance, credits, and charge history live in the dashboard at dashboard.predexon.com/data-credits.

Credits and top-ups

  • $50 free to start, added when you put a payment method on file (one welcome credit per organization).
  • Top up any amount from $5 to $10,000. Spend $500 or more in a single top-up and get 10% extra credits.
  • Set a daily spend cap on the dashboard to bound how much a single day’s downloads can spend.

A quote is required for large charges

Downloads that would cost more than $100 must include a quote_id, so you always see the price before a large charge lands. Smaller downloads charge directly. To confirm a large download, call /quote first, then pass the returned quote_id to the download (see below).

Filter to a single market

By default a request returns the whole venue-day (all markets). Pass market_id to prune the download to just the file(s) covering one market. Because the Parquet is sorted by market, this drops the price from a full day to near the $5 minimum. market_id is venue-specific: The Polymarket example above is a short-duration “Bitcoin Up or Down” market that traded on 2026-03-05 (Polymarket runs these down to 5-minute windows, each a separate market):
Three things to know:
  • Match the date to when the market traded. A market_id only has data on the days that market was actually open. Pair it with the right date (the Bitcoin market above trades on 2026-03-05). If the venue/date/market combination has no data, you get 404 not_found and are not charged. Use GET /v2/polymarket/search?q=... to look up a market’s condition ID and its start_time / end_time.
  • Filtering is file-level. market_id returns the 1–2 Parquet files that contain your market, and those files still include neighboring markets. After downloading, filter to the exact market on the market_id column in DuckDB, Polars, or pandas.
  • One market per request. For several markets, request each one, or pull the covering file(s) for the day and filter client-side. Polymarket creates many short-lived markets (a new “Up or Down” market every few minutes), each with its own market_id, so a “series” is not a single id.

Get a quote first

GET /v2/data/ticks/quote prices a download without charging anything. It takes the same parameters as the download endpoint.
For downloads under $100, a quote is optional. Call the download directly and pay the current price, or pass a quote_id to lock the quoted price until expires_at (about 30 minutes). For downloads over $100, a quote_id is required (see above):

When you’re charged

You are charged when signed URLs are issued (the moment GET /v2/data/ticks returns), not when you fetch the files. Two properties make this safe to script against:
  • Retries never double-charge. Repeating the same request (same venue, dates, market filter) within 24 hours returns fresh signed URLs against the original charge, for free. If your download script dies or the signed URLs expire, just re-run the same request.
  • Failures are refunded automatically. If the data service fails after your balance was debited, the charge is refunded before you see the error.
Charge details ride on the download response headers:

Errors

Nothing is ever charged on an error: quotes never debit, and validation (including not_final and no_data) runs before any charge.

Datasets

Polymarket Ticks

Every top-of-book CLOB price change

Kalshi Ticks

Full orderbook-delta firehose

Opinion Ticks

Complete orderbook deltas