Developer··4 min read

PredictIt API: Market Data, Quotes & Usage Terms

Understand PredictIt API data fields, missing bid and ask prices, timestamps, and why a reachable endpoint does not establish permission for commercial use.

PredictIt API: Market Data, Quotes & Usage Terms
On this page

Before using PredictIt API data, check the permitted use. A publicly reachable response does not establish permission to automate collection or redistribute it commercially. PredictIt's current terms, inspected October 6, 2026, prohibit automated trading, scraping or extracting site data, and commercial use of site data or content. Confirm a permission basis for your intended project before connecting it.

This is an independent guide to data interpretation and the access question. We have not obtained permission for a commercial feed, tested authenticated trading or built a PredictIt execution integration.

What the public market-data response contains

A limited unauthenticated check of https://www.predictit.org/api/marketdata/all/ returned JSON on October 6. The response used a top-level markets array with nested contracts. That observation establishes response structure at that time, not a supported commercial API, guaranteed uptime or a published update cadence. We do not reproduce market records here.

FieldInterpretation to preserve
Market idIdentifier for the containing question
Contract idIdentifier for one outcome within that market
lastTradePriceLast transaction price, separate from a current opposing quote
bestBuyYesCost / bestSellYesCostSeparate Yes-side buy and sell quote fields
bestBuyNoCost / bestSellNoCostSeparate No-side buy and sell quote fields
timeStamp / dateEndRaw time values requiring explicit parsing rules

A market identifier and a contract identifier answer different questions. Keep both in a data model so a display cannot accidentally attach one outcome's price to another outcome or question.

A last trade is not a fill guarantee

Consider an invented record with a last trade of $0.40, a Yes buy quote of $0.43 and a Yes sell quote of $0.39. The displayed buy/sell difference is $0.04. Using the last trade to estimate entry would understate the quoted unit cost by $0.03.

These are fictional values for arithmetic, not live PredictIt prices. The inspected contract records did not provide available quantity or order-book depth. Multiplying a top quote by an arbitrary number of units therefore cannot establish a realizable total cost. Execution requires eligible opposing size and current venue confirmation.

For generic depth arithmetic using your own hypothetical price levels, our slippage calculator shows how successive levels change average cost. It does not fetch PredictIt data or place trades.

Missing prices must stay missing

Some quote fields were null in the inspected response. An unavailable ask is not a free contract; an unavailable bid is not evidence that a position has no value. A parser should preserve null, mark the corresponding side unavailable and avoid arithmetic that silently substitutes zero.

Also distinguish a legitimate numerical zero from a missing field. A test fixture should include both, plus an invalid string, so validation does not rely on a truthiness check. Show users the specific unavailable field instead of turning a partial response into a confident trading signal.

Dates need explicit assumptions

The inspected dateEnd field could contain NA. Preserve this as an unknown deadline, not an epoch date or a guessed event end. Observed timestamps lacked an explicit timezone offset; the response alone does not justify labeling them UTC.

An authorized integration should retain the raw source time, the independently recorded retrieval time and any documented timezone interpretation separately. “Received now” and “quoted now” are not interchangeable. A successful request can still deliver data whose age is unknown.

Questions to resolve before a real integration

  • Is automated access authorized for this purpose?
  • Are storage, redistribution and commercial display covered?
  • What update cadence, limits and support commitments are documented?
  • How should null prices, unknown deadlines and ambiguous timestamps appear?
  • Can the application distinguish response failure from an empty successful result?

These are implementation requirements, not claims that permissions or service commitments already exist. Read the official terms and establish the applicable authorization before adding a live feed. We provide no trading bot or credential workaround.

For separate provider contracts, see our Kalshi API guide and Polymarket API guide. For product context, read PredictIt vs Alphascope. Permission and authentication models do not transfer between venues simply because each publishes prediction-market prices.

Frequently Asked Questions

Does a public PredictIt endpoint permit commercial use?▾

Reachability alone does not establish permission. The terms inspected October 6, 2026 prohibit automated trading, site-data extraction and commercial use of site data or content. Establish the applicable permission basis before connecting a project.

Is lastTradePrice an executable price?▾

It is a last-transaction field, distinct from buy and sell quote fields. Neither it nor a top quote establishes the quantity available for your intended order.

Should a missing PredictIt quote be treated as zero?▾

No. Preserve unavailable quote fields and distinguish them from a legitimate numerical zero. Avoid implying free entry or a worthless position from missing data.

Does this guide provide a PredictIt trading API or bot?▾

No. It explains data interpretation and usage restrictions. No authenticated trading, commercial-feed authorization or execution integration is claimed.