Skip to content

OverviewVenues

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

Dark venue. Smarkets is implemented but not served on this deployment: every /api/smarkets/… request returns 404 EXCHANGE_NOT_AVAILABLE, router fan-outs exclude it, and it is not counted among the served venues. It returns when a commercial API agreement is in place.

Dark venue. PredictIt is implemented as a data-only read path but is not served on this deployment: every /api/predictit/… request returns 404 EXCHANGE_NOT_AVAILABLE, router fan-outs exclude it, and it is not counted among the served venues. No production lane walks it. It returns when a commercial data licence is in place.

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, sourceMetadata.synthetic on order books). The /has buildOrder and submitOrder flags report implemented lanes, not deployment arming; use GET /v1/exec/venues for the armed hosted lanes.

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.

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—
smarkets (dark)derived_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. As verified live on 2026-09-02, SX Bet markets now carry volume24h with volume24hSource: derived_tape.

Venue idOrder bookReal depth (depth)Public trades tape
polymarketReal CLOByesyes
kalshiReal CLOByesyes
smarkets (dark)Real 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
myriadDual (native CLOB / synthetic AMM)per-marketyes
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

For Myriad, Order Book markets return native CLOB depth; AMM markets return a synthetic top-of-book.

GET /v1/venues/metrics returns the latest stored reporting date for each available venue and metric pair — venue-level size and liquidity figures, distinct from the per-market volume24h above.

Terminal window
curl -s "$PREDICTEFY_API_URL/v1/venues/metrics?venue=polymarket" \
-H "Authorization: Bearer pk_live_YOUR_KEY"

venue is optional; omit it for every tracked venue. Nothing is estimated. A missing venue or a missing metric means the configured source does not track it, and an untracked venue returns an empty object rather than a zero.

The route is gated by READS_ENABLE_VENUE_METRICS and answers 404 where it is not enabled. It costs one credit; see Credits & billing.

  • capabilities.depth (market-level): a real, executable-quality price-level order book exists for this venue.
  • sourceMetadata.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.

fetchTrades is a recent public tape read (a snapshot of recent trades), not a time-ranged history query. The ten served venues marked “yes” above expose a verified public tape; the Smarkets row records an implemented dark capability, and every other served 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 (dark — not served) 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.

Market outcomes served from the hot catalog snapshot expose eight price-change windows alongside per-outcome tape coverage metadata:

  • priceChange1m, priceChange5m, priceChange15m — computed from top-of-book order-book ticks (tob_ticks.last) with zero freshness tolerance.
  • priceChange1h, priceChange6h, priceChange24h — computed from 1m stored candle history (1h fallback).
  • priceChange7d, priceChange30d — computed from official venue candles where available (1h then 1d fallback, then 1m).

Every window key is always present on snapshot-enriched market outcomes (a numeric probability delta or null when reference history is insufficient; null never means zero).

Each outcome includes a coverage object (or null when uncomputed) detailing tape mechanism (ws-lossless, ws-top20, rest-adaptive, rest-top-of-book, synthetic-spot), tapeSince, effectiveIntervalMs, gaps24h, and lastGapAt.

  • 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 (dark — not served) public quotes are delayed by the venue.

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.