Skip to main content
Bulk tick downloads are priced by download size, not per request — one call can authorize gigabytes of Parquet. Charges come out of a prepaid data-credit balance on your organization, completely separate from your monthly API request quota.
Private preview. Tick datasets require your organization to be enabled per dataset, and credits are currently granted by the Predexon team. Request access → Self-serve top-ups are coming; until then, ask us to top up your balance.

Pricing

Priced per GiB of compressed Parquet (what you actually download — zstd compression makes this roughly 8–15× smaller than the raw data it represents).
DatasetPriceTypical full day
Polymarket ticks$2.00 / GiB~12.7 GiB → ~$25
Kalshi ticks$6.00 / GiB~1.1 GiB → ~$7
Opinion ticks$6.00 / GiB~3 MB → $0.50 minimum
Every download has a $0.50 minimum charge. Prices are preview pricing and rounded up to the cent; market_id-filtered downloads are priced on the pruned files only, so single-market pulls are usually at or near the minimum. Your balance, enabled datasets, and charge history live in the dashboard at predexon.com/data-credits.

Get a quote first

GET /v2/data/ticks/quote prices a download without charging anything. Same parameters as the download endpoint.
curl -s -H "x-api-key: $PREDEXON_API_KEY" \
  "https://api.predexon.com/v2/data/ticks/quote?venue=kalshi&date=2026-06-25"
{
  "dataset": "ticks",
  "venue": "kalshi",
  "date": "2026-06-25",
  "total_bytes": 1269674310,
  "total_rows": 191500047,
  "price_cents": 710,
  "currency": "usd",
  "balance_cents": 5000,
  "quote_id": "ba661ff9-9c05-45cd-bf9e-a45a6fa29f95",
  "expires_at": "2026-07-04T21:03:18.475Z"
}
Quotes are optional. Pass the quote_id to the download to lock the quoted price until expires_at (~30 minutes); or just call the download directly and pay the current price.

When you’re charged

You’re 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, free. If your download script dies or the ~1-hour 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:
HeaderMeaning
x-predexon-cf-data-price-centsPrice of this download
x-predexon-cf-data-charged-centsAmount actually debited (0 on a re-issue)
x-predexon-cf-data-reusedtrue when re-issued against a prior charge
x-predexon-cf-data-balance-centsBalance after this request
x-predexon-cf-data-authorization-idCharge reference (quote this in support requests)

Errors

StatusCodeMeaning
401missing_api_key / invalid_api_keyNo or bad x-api-key
403dataset_not_enabledYour organization isn’t enabled for this dataset — request access
402insufficient_data_creditsBalance below the price (price_cents and balance_cents included)
403spend_cap_exceededDaily spend cap on your account would be exceeded
409quote_expired / quote_mismatch / quote_consumedThe quote_id is stale, for different parameters, or already used — re-quote or omit it
404not_finalRequested day isn’t compacted yet (data is finalized T-1 at ~06:00 UTC)
Nothing is ever charged on an error: quotes never debit, and validation (including not_final) 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