Predictefy Docs
Browse documentation

Venue coverage

The 17 supported venues and exactly what each one supports — real vs reconstructed order books, and public trades tapes.

Predictefy serves 17 venues, including PredictStreet and Novig, through one normalized API. Use any venue id below as the {exchange} path segment, or router for the all-venues union on the list verbs.

Not every venue exposes the same raw data, and we do not paper over the differences — the table below is mirrored from the capability flags the API itself returns (capabilities on markets, synthetic on order books).

Market volume24h and liquidity are always present but nullable. For 24-hour volume, null no longer means only "the venue does not publish it": it means Predictefy has no accepted value for that market now. A derived mechanism may still be warming or may have stale, gapped, unavailable, or restated evidence. 0 is reserved for a real venue-published zero or a complete derived window that honestly computes to zero.

24-hour volume

GET /api/{exchange}/has exposes the venue-level mechanism at volume24h. venue uses a venue-published 24-hour value. derived_cumulative differences typed cumulative snapshots without silently converting their units. derived_tape sums accepted canonical fills only after the whole trailing window passes its coverage gate. false means no honest mechanism is registered.

Venue idhas.volume24hUnitCumulative input
polymarketvenueUSD
kalshivenueCONTRACTS
smarketsderived_cumulativeGBPvolume
opinionvenueUSD
hyperliquidvenueUSDC
limitlessderived_cumulativeUSDCvolumeFormatted ?? volume / 1e6
polymarket_usfalse
sxbetderived_tapeUSD
myriadvenueUSD
geminivenueCONTRACTS
rainderived_cumulativeCOLLATERALtotalVolume
predictfunvenueUSD
pascalvenueUSD
xofalse
predderived_cumulativeUSDvolume
predictstreetvenueUSD
novigderived_cumulativeCASHvolume

When present, market volume24hSource is venue, derived_cumulative, or derived_tape and describes only that metric; the separate market provenance.source still says which implementation served the object. A null market can carry venue when that row's venue field is unavailable, or a derived source while no value is accepted. The current public market DTO does not expose the internal warm-up/degradation status. Opinion child rows are also null because the parent volume is never copied or apportioned to children. Polymarket US and XO have volume24hSource absent because their registry mechanism is false.

Event and canonical-category sums expose volume24hSource: { sources: [...], partial: boolean }. sources is the distinct set from non-null contributing markets; partial is true when any member volume is null. Cluster members carry the current market's value and source. A /has mechanism is capability truth, not proof that an individual market is warmed or currently available. In the current shipped runtime, SX Bet's rollup and fail-closed calculator exist but its result is not yet applied to the Core catalog, so its market values remain null.

Venue idOrder bookReal depth (depth)Public trades tape
polymarketReal CLOByesyes
kalshiReal CLOByesyes
smarketsReal CLOB (delayed quotes)yesyes — 5 fills
opinionReal CLOByesno
hyperliquidReal CLOByesyes
limitlessReal CLOB (CLOB markets only)per-marketyes
polymarket_usReal CLOB (~30s CDN cache)yesno
sxbetReal CLOByes — degradedyes
myriadEmulated (AMM top-of-book)noyes
geminiReal CLOB (keyless sized depth)yesyes
rainEmulated (on-chain price, 1 level)nono
predictfunReal CTF/CLOByesyes
pascalReal CLOB (Solana)yesyes
xoReal CLOB (own rollup)yesno — see below
predReal CLOB (Base)yesno
predictstreetReal CLOB (ADI Chain)yesyes
novigReal CLOB (bids-only complement)yesno

Reading the flags

  • capabilities.depth (market-level): a real, executable-quality price-level order book exists for this venue.
  • synthetic (per order-book response): true means the returned book was reconstructed — a single top-of-book level synthesized from a spot price, AMM pool, parimutuel odds, or P2P offer odds. false means a real CLOB depth snapshot.
  • An empty real book is a valid "no liquidity right now" state — check the levels, not just the flags.
  • capabilities.trade is false on every venue by design. It describes the legacy unified trade verb on the data API, which Predictefy does not expose. Live execution is served separately for supported venues; see Trading & execution.

Trades tape

fetchTrades is a recent public tape read (a snapshot of recent trades), not a time-ranged history query. The eleven venues marked "yes" above expose a verified public tape; every other venue answers an honest 501 NOT_SUPPORTED rather than synthesizing trades. pascal's tape carries no time parameters at the venue, so start/end are applied after the fetch — an older window simply returns fewer rows, never invented ones. smarkets is the same shape with a harder ceiling: the venue accepts no tape parameters at all and returns at most five fills per outcome, so limit is applied locally and a window older than those five reachable fills returns fewer rows rather than a fabricated one.

SX Bet's fetchOrderBook degradation is documented above. Tape/OHLCV, Trader Intelligence, and public account capabilities are independent of that book issue, while hosted execution and official history remain unsupported. Runtime availability is not inferred from capability alone.

Freshness notes

  • Every response carries asOf (when the data was snapshotted) and provenance.source.
  • polymarket_us reads are served through a ~30-second public CDN cache: asOf is the fetch time, so treat its book data with a ≥30s freshness tolerance (the venue's own transaction time is preserved in the raw metadata).
  • smarkets public quotes are delayed by the venue.

Sandbox

A kalshi-demo sandbox venue (Kalshi's paper-trading environment) exists for integration testing. It serves paper data, not real market data — it is excluded from the public venue list, router results, and all cross-venue outputs.