Skip to content

API ReferenceMatched Markets

Deprecated legacy alias of fetchMarketMatches (identical request/response shape). Router only.

Deprecated
GET
/api/{exchange}/fetchMatches
curl --request GET \
--url 'https://data.predictefy.com/api/router/fetchMatches?relation=identity&sort=similarity' \
--header 'Authorization: Bearer <token>'

FetchMatches is deprecated in favor of fetchMarketMatches; served here as an exact alias for drop-in compatibility with identical delegation. Same lookup/browse modes, same dark gate (READS_ENABLE_CLUSTERS). Prefer fetchMarketMatches in new code. See /api/{exchange}/fetchMarketMatches.

exchange
required
string
Allowed values: router

Must be router for this cross-venue operation. Market anchors must use the canonical venue:marketId form; event anchors must use the canonical venue:eventId form.

marketId
string

Canonical id "{venue}:{marketId}". Presence switches to lookup mode.

slug
string

Venue slug (cross-venue collisions answer 400 — use marketId).

query
string
category
string
minSimilarity
number
<= 1

Minimum similarity score. minConfidence is accepted as a backward-compatible alias.

minConfidence
number
<= 1

Backward-compatible alias for minSimilarity.

relation
string
Allowed values: identity subset superset
relations
string

Comma-separated relation filters: identity, subset, superset.

venue
string
venues
string

Comma-separated venues. Browse returns pairs where at least one leg is a listed venue. Lookup identity rows filter the related market. Lookup relation rows match when either the anchor or the related market is on a listed venue.

pairVenues
string

Browse-only comma-separated venues; repeated parameters are joined. Both legs must be listed. Every entry must be served and non-sandbox on this deployment. Non-served or sandbox entries return 400 VALIDATION_ERROR naming them and listing served venues, before the two-distinct-venues check. Requires at least two distinct venues, otherwise 400 VALIDATION_ERROR. Accepted lists are echoed in meta.pairVenues after trimming and de-duplication in request order. pairVenues VALIDATION_ERRORs take precedence over lookup NOT_SUPPORTED. With marketId or slug, a valid pairVenues list returns 400 NOT_SUPPORTED. Combines with venue/venues; both conditions apply. Identity totals count clusters with at least two servable listed legs. A served-price overlay gap can still drop a leg on price-pair routes. Relation totals count qualifying edges. sort=priceDifference still ranks by the whole cluster spread.

updatedSince
string format: date-time
includeRawMatches
boolean

Accepted for backward-compatible raw-pair mode; this surface already emits pairwise rows.

sort
string
default: similarity
Allowed values: similarity confidence priceDifference
limit
integer
>= 1 <= 100
offset
integer
<= 10000

Offsets above the maximum are rejected; use cursor pagination for deep walks.

page
integer
>= 1

A page of indicative cross-venue matches (fetchMarketMatches alias).

Media typeapplication/json
object
success
required
boolean
data
required
Array<object>
object
market
required
object
marketId
required
string
title
required
string
description
required
string
outcomes
required
Array<object>
object
outcomeId
required
string
label
required
string
image

Venue-stated art for this outcome (a team logo on a sports leg), https, stored as its parsed href; omitted when the venue states none.

string
side

Stable binary side when asserted by the venue; omitted otherwise.

string
Allowed values: yes no
price
required
number | null
<= 1
priceUnavailable
boolean
priceBasis

What the numeric price represents at the venue.

  • venue-composite: Venue-provided composite price whose inputs are not decomposed here.
  • mid: Midpoint of the best bid and best ask.
  • ask: Best ask or equivalent venue buy price.
  • bid: Best bid or equivalent venue sell price.
  • last-trade: Most recent executed trade price.
  • amm-spot: Current AMM spot probability.
  • pool-share: Outcome pool divided by the total parimutuel pool.
  • odds-implied: Probability implied by venue odds.
  • complement: Synthesized as one minus the paired outcome price.
string
Allowed values: venue-composite mid ask bid last-trade amm-spot pool-share odds-implied complement
marketId
string
priceChange1m

Absolute probability delta versus one minute ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange5m

Absolute probability delta versus five minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange15m

Absolute probability delta versus 15 minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange1h

Absolute probability delta versus one hour ago, from the newest stored close at or before the boundary within the 3h lookback. The lookup uses a 1m candle first, with a 1h fallback. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange6h

Absolute probability delta versus six hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange24h

Absolute probability delta versus 24 hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange7d

Absolute probability delta versus seven days ago, from the newest stored close at or before the boundary within the 12h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange30d

Absolute probability delta versus 30 days ago, from the newest stored close at or before the boundary within the 24h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
coverage

Per-outcome tape coverage metadata. Null when unknown (no market_coverage row for this outcome, or not yet computed). Present only alongside the priceChange fields above (the hot snapshot path for open, active, priced outcomes).

object
mechanism
required

How this outcome's book tape is captured.

string
Allowed values: ws-lossless ws-top20 rest-adaptive rest-top-of-book synthetic-spot
tapeSince
required

When continuous tape coverage began for this outcome; null if unknown.

string | null format: date-time
effectiveIntervalMs
required

Measured effective observation interval in milliseconds (REST-polled venues); null for WebSocket venues or when unmeasured.

integer | null
gaps24h
required

Count of detected tape gaps in the last 24 hours.

integer
lastGapAt
required

When the most recent tape gap was detected; null if none recorded.

string | null format: date-time
metadata
object
key
additional properties
any
volume24h
required

Null means the venue publishes no such figure; 0 is a real venue-published zero

number | null
volume24hSource

Metric-specific provenance for volume24h. venue is published by the venue; derived_cumulative is Predictefy-derived from cumulative snapshots; derived_tape is Predictefy-derived from captured fills. A derived value must carry this field.

string
Allowed values: venue derived_cumulative derived_tape
volume24hUsd
required

The finite volume24h value when the venue registry unit is USD or USDC. USDC is counted at par (1 USDC = 1 USD), with no exchange-rate conversion. Null for contracts, COLLATERAL, CASH, unsupported or unknown units, or non-finite or missing values. Also null when the stored unit disagrees with the venue's declared unit.

number | null
volume24hUnit
required

Registry unit of the unchanged native volume24h. USD maps to usd, USDC to usdc, and CONTRACTS to contracts. All other or unknown units map to null. A stored unit that disagrees with the venue's declared unit also maps to null.

string | null
Allowed values: usd usdc contracts
volume24hAsOf
required

Venue-mode volume uses only snapshot_fetched_at, so the hot and SQL lanes report the same snapshot fetch time. Derived volume uses volume_24h_meta.asOf, falling back to windowEnd. Derived-venue volume and its timestamp can lag in the hot lane until the next full catalog resync. Null when unknown. Never the row write time, response time, or live price overlay time.

string | null format: date-time
priceChangeAsOf
required

This is the oldest evaluation instant among this market's enriched outcomes, including the 6h/24h windows. It records when the price changes were evaluated, not when the batch finished or the current quote was measured. Failed refreshes retain the previous evaluation instant. It is null when no outcome is enriched or in the SQL lane, where price changes are omitted.

string | null format: date-time
liquidity
required

Null means the venue publishes no such figure; 0 is a real venue-published zero

number | null
url
required
string
eventId
string
slug
string
resolutionDate
string | null format: date-time
volume
number
openInterest
number
image
required

Known-absent is null; this key is always emitted for market records.

string | null
eventImage
required

Known-absent is null; event/parent artwork is distinct from market artwork.

string | null
imageResolved
required

The picture to show. It is the venue's art when it has any, else a stored substitute (see imageSource). Known-absent is null; this key is always emitted; null until the image-resolve stage has written this market. Thumbnail rule imageResolved ?? image ?? eventImage.

string | null
imageSource
required

Why imageResolved is what it is (see ImageSource); null exactly when imageResolved is null.

string | null
Allowed values: venue series event league team sibling category
category
string
tags
Array<string>
canonicalCategory
required
string | null
canonicalTags
required
Array<string>
tickSize
number
status
string
contractAddress
string
sourceMetadata
object
key
additional properties
any
sourceExchange
string
yes
object
outcomeId
required
string
label
required
string
image

Venue-stated art for this outcome (a team logo on a sports leg), https, stored as its parsed href; omitted when the venue states none.

string
side

Stable binary side when asserted by the venue; omitted otherwise.

string
Allowed values: yes no
price
required
number | null
<= 1
priceUnavailable
boolean
priceBasis

What the numeric price represents at the venue.

  • venue-composite: Venue-provided composite price whose inputs are not decomposed here.
  • mid: Midpoint of the best bid and best ask.
  • ask: Best ask or equivalent venue buy price.
  • bid: Best bid or equivalent venue sell price.
  • last-trade: Most recent executed trade price.
  • amm-spot: Current AMM spot probability.
  • pool-share: Outcome pool divided by the total parimutuel pool.
  • odds-implied: Probability implied by venue odds.
  • complement: Synthesized as one minus the paired outcome price.
string
Allowed values: venue-composite mid ask bid last-trade amm-spot pool-share odds-implied complement
marketId
string
priceChange1m

Absolute probability delta versus one minute ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange5m

Absolute probability delta versus five minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange15m

Absolute probability delta versus 15 minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange1h

Absolute probability delta versus one hour ago, from the newest stored close at or before the boundary within the 3h lookback. The lookup uses a 1m candle first, with a 1h fallback. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange6h

Absolute probability delta versus six hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange24h

Absolute probability delta versus 24 hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange7d

Absolute probability delta versus seven days ago, from the newest stored close at or before the boundary within the 12h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange30d

Absolute probability delta versus 30 days ago, from the newest stored close at or before the boundary within the 24h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
coverage

Per-outcome tape coverage metadata. Null when unknown (no market_coverage row for this outcome, or not yet computed). Present only alongside the priceChange fields above (the hot snapshot path for open, active, priced outcomes).

object
mechanism
required

How this outcome's book tape is captured.

string
Allowed values: ws-lossless ws-top20 rest-adaptive rest-top-of-book synthetic-spot
tapeSince
required

When continuous tape coverage began for this outcome; null if unknown.

string | null format: date-time
effectiveIntervalMs
required

Measured effective observation interval in milliseconds (REST-polled venues); null for WebSocket venues or when unmeasured.

integer | null
gaps24h
required

Count of detected tape gaps in the last 24 hours.

integer
lastGapAt
required

When the most recent tape gap was detected; null if none recorded.

string | null format: date-time
metadata
object
key
additional properties
any
no
object
outcomeId
required
string
label
required
string
image

Venue-stated art for this outcome (a team logo on a sports leg), https, stored as its parsed href; omitted when the venue states none.

string
side

Stable binary side when asserted by the venue; omitted otherwise.

string
Allowed values: yes no
price
required
number | null
<= 1
priceUnavailable
boolean
priceBasis

What the numeric price represents at the venue.

  • venue-composite: Venue-provided composite price whose inputs are not decomposed here.
  • mid: Midpoint of the best bid and best ask.
  • ask: Best ask or equivalent venue buy price.
  • bid: Best bid or equivalent venue sell price.
  • last-trade: Most recent executed trade price.
  • amm-spot: Current AMM spot probability.
  • pool-share: Outcome pool divided by the total parimutuel pool.
  • odds-implied: Probability implied by venue odds.
  • complement: Synthesized as one minus the paired outcome price.
string
Allowed values: venue-composite mid ask bid last-trade amm-spot pool-share odds-implied complement
marketId
string
priceChange1m

Absolute probability delta versus one minute ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange5m

Absolute probability delta versus five minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange15m

Absolute probability delta versus 15 minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange1h

Absolute probability delta versus one hour ago, from the newest stored close at or before the boundary within the 3h lookback. The lookup uses a 1m candle first, with a 1h fallback. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange6h

Absolute probability delta versus six hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange24h

Absolute probability delta versus 24 hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange7d

Absolute probability delta versus seven days ago, from the newest stored close at or before the boundary within the 12h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange30d

Absolute probability delta versus 30 days ago, from the newest stored close at or before the boundary within the 24h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
coverage

Per-outcome tape coverage metadata. Null when unknown (no market_coverage row for this outcome, or not yet computed). Present only alongside the priceChange fields above (the hot snapshot path for open, active, priced outcomes).

object
mechanism
required

How this outcome's book tape is captured.

string
Allowed values: ws-lossless ws-top20 rest-adaptive rest-top-of-book synthetic-spot
tapeSince
required

When continuous tape coverage began for this outcome; null if unknown.

string | null format: date-time
effectiveIntervalMs
required

Measured effective observation interval in milliseconds (REST-polled venues); null for WebSocket venues or when unmeasured.

integer | null
gaps24h
required

Count of detected tape gaps in the last 24 hours.

integer
lastGapAt
required

When the most recent tape gap was detected; null if none recorded.

string | null format: date-time
metadata
object
key
additional properties
any
up
object
outcomeId
required
string
label
required
string
image

Venue-stated art for this outcome (a team logo on a sports leg), https, stored as its parsed href; omitted when the venue states none.

string
side

Stable binary side when asserted by the venue; omitted otherwise.

string
Allowed values: yes no
price
required
number | null
<= 1
priceUnavailable
boolean
priceBasis

What the numeric price represents at the venue.

  • venue-composite: Venue-provided composite price whose inputs are not decomposed here.
  • mid: Midpoint of the best bid and best ask.
  • ask: Best ask or equivalent venue buy price.
  • bid: Best bid or equivalent venue sell price.
  • last-trade: Most recent executed trade price.
  • amm-spot: Current AMM spot probability.
  • pool-share: Outcome pool divided by the total parimutuel pool.
  • odds-implied: Probability implied by venue odds.
  • complement: Synthesized as one minus the paired outcome price.
string
Allowed values: venue-composite mid ask bid last-trade amm-spot pool-share odds-implied complement
marketId
string
priceChange1m

Absolute probability delta versus one minute ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange5m

Absolute probability delta versus five minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange15m

Absolute probability delta versus 15 minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange1h

Absolute probability delta versus one hour ago, from the newest stored close at or before the boundary within the 3h lookback. The lookup uses a 1m candle first, with a 1h fallback. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange6h

Absolute probability delta versus six hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange24h

Absolute probability delta versus 24 hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange7d

Absolute probability delta versus seven days ago, from the newest stored close at or before the boundary within the 12h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange30d

Absolute probability delta versus 30 days ago, from the newest stored close at or before the boundary within the 24h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
coverage

Per-outcome tape coverage metadata. Null when unknown (no market_coverage row for this outcome, or not yet computed). Present only alongside the priceChange fields above (the hot snapshot path for open, active, priced outcomes).

object
mechanism
required

How this outcome's book tape is captured.

string
Allowed values: ws-lossless ws-top20 rest-adaptive rest-top-of-book synthetic-spot
tapeSince
required

When continuous tape coverage began for this outcome; null if unknown.

string | null format: date-time
effectiveIntervalMs
required

Measured effective observation interval in milliseconds (REST-polled venues); null for WebSocket venues or when unmeasured.

integer | null
gaps24h
required

Count of detected tape gaps in the last 24 hours.

integer
lastGapAt
required

When the most recent tape gap was detected; null if none recorded.

string | null format: date-time
metadata
object
key
additional properties
any
down
object
outcomeId
required
string
label
required
string
image

Venue-stated art for this outcome (a team logo on a sports leg), https, stored as its parsed href; omitted when the venue states none.

string
side

Stable binary side when asserted by the venue; omitted otherwise.

string
Allowed values: yes no
price
required
number | null
<= 1
priceUnavailable
boolean
priceBasis

What the numeric price represents at the venue.

  • venue-composite: Venue-provided composite price whose inputs are not decomposed here.
  • mid: Midpoint of the best bid and best ask.
  • ask: Best ask or equivalent venue buy price.
  • bid: Best bid or equivalent venue sell price.
  • last-trade: Most recent executed trade price.
  • amm-spot: Current AMM spot probability.
  • pool-share: Outcome pool divided by the total parimutuel pool.
  • odds-implied: Probability implied by venue odds.
  • complement: Synthesized as one minus the paired outcome price.
string
Allowed values: venue-composite mid ask bid last-trade amm-spot pool-share odds-implied complement
marketId
string
priceChange1m

Absolute probability delta versus one minute ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange5m

Absolute probability delta versus five minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange15m

Absolute probability delta versus 15 minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange1h

Absolute probability delta versus one hour ago, from the newest stored close at or before the boundary within the 3h lookback. The lookup uses a 1m candle first, with a 1h fallback. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange6h

Absolute probability delta versus six hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange24h

Absolute probability delta versus 24 hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange7d

Absolute probability delta versus seven days ago, from the newest stored close at or before the boundary within the 12h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange30d

Absolute probability delta versus 30 days ago, from the newest stored close at or before the boundary within the 24h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
coverage

Per-outcome tape coverage metadata. Null when unknown (no market_coverage row for this outcome, or not yet computed). Present only alongside the priceChange fields above (the hot snapshot path for open, active, priced outcomes).

object
mechanism
required

How this outcome's book tape is captured.

string
Allowed values: ws-lossless ws-top20 rest-adaptive rest-top-of-book synthetic-spot
tapeSince
required

When continuous tape coverage began for this outcome; null if unknown.

string | null format: date-time
effectiveIntervalMs
required

Measured effective observation interval in milliseconds (REST-polled venues); null for WebSocket venues or when unmeasured.

integer | null
gaps24h
required

Count of detected tape gaps in the last 24 hours.

integer
lastGapAt
required

When the most recent tape gap was detected; null if none recorded.

string | null format: date-time
metadata
object
key
additional properties
any
asOf
required
string | null format: date-time
provenance
required
object
source
required

Venue-rest — per-request REST via the venue adapter (the default stamp for every venue). predictefy-live — served from the live WebSocket hub or live order book; SX Bet overlay-bridge rows use this explicit source. fixture — offline sample data, never production venues. overlay — a serve-time catalog price overlay replaced the stored snapshot price for a fresh price-refresher entry.

string
Allowed values: venue-rest predictefy-live fixture overlay
capabilities
required

Market capability flags. history is true only when Predictefy's history coverage for the venue is proven under docs/history-coverage.md; it is independent of venue-native history endpoints and the hosted fetchOHLCV route's availability.

object
read
required
boolean
trade
required
boolean
depth
required

True when the venue exposes real order-book depth rather than an emulated or synthetic top-of-book (such as a single level synthesized from spot price, AMM pool, parimutuel odds, or P2P offer odds). Does not imply tradeable.

boolean
history
required
boolean
sourceMarket

Present in browse mode only (the other side of the pair); absent in lookup mode for backward compatibility.

object
marketId
required
string
title
required
string
description
required
string
outcomes
required
Array<object>
object
outcomeId
required
string
label
required
string
image

Venue-stated art for this outcome (a team logo on a sports leg), https, stored as its parsed href; omitted when the venue states none.

string
side

Stable binary side when asserted by the venue; omitted otherwise.

string
Allowed values: yes no
price
required
number | null
<= 1
priceUnavailable
boolean
priceBasis

What the numeric price represents at the venue.

  • venue-composite: Venue-provided composite price whose inputs are not decomposed here.
  • mid: Midpoint of the best bid and best ask.
  • ask: Best ask or equivalent venue buy price.
  • bid: Best bid or equivalent venue sell price.
  • last-trade: Most recent executed trade price.
  • amm-spot: Current AMM spot probability.
  • pool-share: Outcome pool divided by the total parimutuel pool.
  • odds-implied: Probability implied by venue odds.
  • complement: Synthesized as one minus the paired outcome price.
string
Allowed values: venue-composite mid ask bid last-trade amm-spot pool-share odds-implied complement
marketId
string
priceChange1m

Absolute probability delta versus one minute ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange5m

Absolute probability delta versus five minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange15m

Absolute probability delta versus 15 minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange1h

Absolute probability delta versus one hour ago, from the newest stored close at or before the boundary within the 3h lookback. The lookup uses a 1m candle first, with a 1h fallback. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange6h

Absolute probability delta versus six hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange24h

Absolute probability delta versus 24 hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange7d

Absolute probability delta versus seven days ago, from the newest stored close at or before the boundary within the 12h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange30d

Absolute probability delta versus 30 days ago, from the newest stored close at or before the boundary within the 24h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
coverage

Per-outcome tape coverage metadata. Null when unknown (no market_coverage row for this outcome, or not yet computed). Present only alongside the priceChange fields above (the hot snapshot path for open, active, priced outcomes).

object
mechanism
required

How this outcome's book tape is captured.

string
Allowed values: ws-lossless ws-top20 rest-adaptive rest-top-of-book synthetic-spot
tapeSince
required

When continuous tape coverage began for this outcome; null if unknown.

string | null format: date-time
effectiveIntervalMs
required

Measured effective observation interval in milliseconds (REST-polled venues); null for WebSocket venues or when unmeasured.

integer | null
gaps24h
required

Count of detected tape gaps in the last 24 hours.

integer
lastGapAt
required

When the most recent tape gap was detected; null if none recorded.

string | null format: date-time
metadata
object
key
additional properties
any
volume24h
required

Null means the venue publishes no such figure; 0 is a real venue-published zero

number | null
volume24hSource

Metric-specific provenance for volume24h. venue is published by the venue; derived_cumulative is Predictefy-derived from cumulative snapshots; derived_tape is Predictefy-derived from captured fills. A derived value must carry this field.

string
Allowed values: venue derived_cumulative derived_tape
volume24hUsd
required

The finite volume24h value when the venue registry unit is USD or USDC. USDC is counted at par (1 USDC = 1 USD), with no exchange-rate conversion. Null for contracts, COLLATERAL, CASH, unsupported or unknown units, or non-finite or missing values. Also null when the stored unit disagrees with the venue's declared unit.

number | null
volume24hUnit
required

Registry unit of the unchanged native volume24h. USD maps to usd, USDC to usdc, and CONTRACTS to contracts. All other or unknown units map to null. A stored unit that disagrees with the venue's declared unit also maps to null.

string | null
Allowed values: usd usdc contracts
volume24hAsOf
required

Venue-mode volume uses only snapshot_fetched_at, so the hot and SQL lanes report the same snapshot fetch time. Derived volume uses volume_24h_meta.asOf, falling back to windowEnd. Derived-venue volume and its timestamp can lag in the hot lane until the next full catalog resync. Null when unknown. Never the row write time, response time, or live price overlay time.

string | null format: date-time
priceChangeAsOf
required

This is the oldest evaluation instant among this market's enriched outcomes, including the 6h/24h windows. It records when the price changes were evaluated, not when the batch finished or the current quote was measured. Failed refreshes retain the previous evaluation instant. It is null when no outcome is enriched or in the SQL lane, where price changes are omitted.

string | null format: date-time
liquidity
required

Null means the venue publishes no such figure; 0 is a real venue-published zero

number | null
url
required
string
eventId
string
slug
string
resolutionDate
string | null format: date-time
volume
number
openInterest
number
image
required

Known-absent is null; this key is always emitted for market records.

string | null
eventImage
required

Known-absent is null; event/parent artwork is distinct from market artwork.

string | null
imageResolved
required

The picture to show. It is the venue's art when it has any, else a stored substitute (see imageSource). Known-absent is null; this key is always emitted; null until the image-resolve stage has written this market. Thumbnail rule imageResolved ?? image ?? eventImage.

string | null
imageSource
required

Why imageResolved is what it is (see ImageSource); null exactly when imageResolved is null.

string | null
Allowed values: venue series event league team sibling category
category
string
tags
Array<string>
canonicalCategory
required
string | null
canonicalTags
required
Array<string>
tickSize
number
status
string
contractAddress
string
sourceMetadata
object
key
additional properties
any
sourceExchange
string
yes
object
outcomeId
required
string
label
required
string
image

Venue-stated art for this outcome (a team logo on a sports leg), https, stored as its parsed href; omitted when the venue states none.

string
side

Stable binary side when asserted by the venue; omitted otherwise.

string
Allowed values: yes no
price
required
number | null
<= 1
priceUnavailable
boolean
priceBasis

What the numeric price represents at the venue.

  • venue-composite: Venue-provided composite price whose inputs are not decomposed here.
  • mid: Midpoint of the best bid and best ask.
  • ask: Best ask or equivalent venue buy price.
  • bid: Best bid or equivalent venue sell price.
  • last-trade: Most recent executed trade price.
  • amm-spot: Current AMM spot probability.
  • pool-share: Outcome pool divided by the total parimutuel pool.
  • odds-implied: Probability implied by venue odds.
  • complement: Synthesized as one minus the paired outcome price.
string
Allowed values: venue-composite mid ask bid last-trade amm-spot pool-share odds-implied complement
marketId
string
priceChange1m

Absolute probability delta versus one minute ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange5m

Absolute probability delta versus five minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange15m

Absolute probability delta versus 15 minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange1h

Absolute probability delta versus one hour ago, from the newest stored close at or before the boundary within the 3h lookback. The lookup uses a 1m candle first, with a 1h fallback. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange6h

Absolute probability delta versus six hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange24h

Absolute probability delta versus 24 hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange7d

Absolute probability delta versus seven days ago, from the newest stored close at or before the boundary within the 12h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange30d

Absolute probability delta versus 30 days ago, from the newest stored close at or before the boundary within the 24h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
coverage

Per-outcome tape coverage metadata. Null when unknown (no market_coverage row for this outcome, or not yet computed). Present only alongside the priceChange fields above (the hot snapshot path for open, active, priced outcomes).

object
mechanism
required

How this outcome's book tape is captured.

string
Allowed values: ws-lossless ws-top20 rest-adaptive rest-top-of-book synthetic-spot
tapeSince
required

When continuous tape coverage began for this outcome; null if unknown.

string | null format: date-time
effectiveIntervalMs
required

Measured effective observation interval in milliseconds (REST-polled venues); null for WebSocket venues or when unmeasured.

integer | null
gaps24h
required

Count of detected tape gaps in the last 24 hours.

integer
lastGapAt
required

When the most recent tape gap was detected; null if none recorded.

string | null format: date-time
metadata
object
key
additional properties
any
no
object
outcomeId
required
string
label
required
string
image

Venue-stated art for this outcome (a team logo on a sports leg), https, stored as its parsed href; omitted when the venue states none.

string
side

Stable binary side when asserted by the venue; omitted otherwise.

string
Allowed values: yes no
price
required
number | null
<= 1
priceUnavailable
boolean
priceBasis

What the numeric price represents at the venue.

  • venue-composite: Venue-provided composite price whose inputs are not decomposed here.
  • mid: Midpoint of the best bid and best ask.
  • ask: Best ask or equivalent venue buy price.
  • bid: Best bid or equivalent venue sell price.
  • last-trade: Most recent executed trade price.
  • amm-spot: Current AMM spot probability.
  • pool-share: Outcome pool divided by the total parimutuel pool.
  • odds-implied: Probability implied by venue odds.
  • complement: Synthesized as one minus the paired outcome price.
string
Allowed values: venue-composite mid ask bid last-trade amm-spot pool-share odds-implied complement
marketId
string
priceChange1m

Absolute probability delta versus one minute ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange5m

Absolute probability delta versus five minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange15m

Absolute probability delta versus 15 minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange1h

Absolute probability delta versus one hour ago, from the newest stored close at or before the boundary within the 3h lookback. The lookup uses a 1m candle first, with a 1h fallback. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange6h

Absolute probability delta versus six hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange24h

Absolute probability delta versus 24 hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange7d

Absolute probability delta versus seven days ago, from the newest stored close at or before the boundary within the 12h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange30d

Absolute probability delta versus 30 days ago, from the newest stored close at or before the boundary within the 24h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
coverage

Per-outcome tape coverage metadata. Null when unknown (no market_coverage row for this outcome, or not yet computed). Present only alongside the priceChange fields above (the hot snapshot path for open, active, priced outcomes).

object
mechanism
required

How this outcome's book tape is captured.

string
Allowed values: ws-lossless ws-top20 rest-adaptive rest-top-of-book synthetic-spot
tapeSince
required

When continuous tape coverage began for this outcome; null if unknown.

string | null format: date-time
effectiveIntervalMs
required

Measured effective observation interval in milliseconds (REST-polled venues); null for WebSocket venues or when unmeasured.

integer | null
gaps24h
required

Count of detected tape gaps in the last 24 hours.

integer
lastGapAt
required

When the most recent tape gap was detected; null if none recorded.

string | null format: date-time
metadata
object
key
additional properties
any
up
object
outcomeId
required
string
label
required
string
image

Venue-stated art for this outcome (a team logo on a sports leg), https, stored as its parsed href; omitted when the venue states none.

string
side

Stable binary side when asserted by the venue; omitted otherwise.

string
Allowed values: yes no
price
required
number | null
<= 1
priceUnavailable
boolean
priceBasis

What the numeric price represents at the venue.

  • venue-composite: Venue-provided composite price whose inputs are not decomposed here.
  • mid: Midpoint of the best bid and best ask.
  • ask: Best ask or equivalent venue buy price.
  • bid: Best bid or equivalent venue sell price.
  • last-trade: Most recent executed trade price.
  • amm-spot: Current AMM spot probability.
  • pool-share: Outcome pool divided by the total parimutuel pool.
  • odds-implied: Probability implied by venue odds.
  • complement: Synthesized as one minus the paired outcome price.
string
Allowed values: venue-composite mid ask bid last-trade amm-spot pool-share odds-implied complement
marketId
string
priceChange1m

Absolute probability delta versus one minute ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange5m

Absolute probability delta versus five minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange15m

Absolute probability delta versus 15 minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange1h

Absolute probability delta versus one hour ago, from the newest stored close at or before the boundary within the 3h lookback. The lookup uses a 1m candle first, with a 1h fallback. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange6h

Absolute probability delta versus six hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange24h

Absolute probability delta versus 24 hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange7d

Absolute probability delta versus seven days ago, from the newest stored close at or before the boundary within the 12h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange30d

Absolute probability delta versus 30 days ago, from the newest stored close at or before the boundary within the 24h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
coverage

Per-outcome tape coverage metadata. Null when unknown (no market_coverage row for this outcome, or not yet computed). Present only alongside the priceChange fields above (the hot snapshot path for open, active, priced outcomes).

object
mechanism
required

How this outcome's book tape is captured.

string
Allowed values: ws-lossless ws-top20 rest-adaptive rest-top-of-book synthetic-spot
tapeSince
required

When continuous tape coverage began for this outcome; null if unknown.

string | null format: date-time
effectiveIntervalMs
required

Measured effective observation interval in milliseconds (REST-polled venues); null for WebSocket venues or when unmeasured.

integer | null
gaps24h
required

Count of detected tape gaps in the last 24 hours.

integer
lastGapAt
required

When the most recent tape gap was detected; null if none recorded.

string | null format: date-time
metadata
object
key
additional properties
any
down
object
outcomeId
required
string
label
required
string
image

Venue-stated art for this outcome (a team logo on a sports leg), https, stored as its parsed href; omitted when the venue states none.

string
side

Stable binary side when asserted by the venue; omitted otherwise.

string
Allowed values: yes no
price
required
number | null
<= 1
priceUnavailable
boolean
priceBasis

What the numeric price represents at the venue.

  • venue-composite: Venue-provided composite price whose inputs are not decomposed here.
  • mid: Midpoint of the best bid and best ask.
  • ask: Best ask or equivalent venue buy price.
  • bid: Best bid or equivalent venue sell price.
  • last-trade: Most recent executed trade price.
  • amm-spot: Current AMM spot probability.
  • pool-share: Outcome pool divided by the total parimutuel pool.
  • odds-implied: Probability implied by venue odds.
  • complement: Synthesized as one minus the paired outcome price.
string
Allowed values: venue-composite mid ask bid last-trade amm-spot pool-share odds-implied complement
marketId
string
priceChange1m

Absolute probability delta versus one minute ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange5m

Absolute probability delta versus five minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange15m

Absolute probability delta versus 15 minutes ago, from the newest top-of-book tape tick (tob_ticks.last) at or before the boundary. On a snapshot-enriched outcome this field is always present; null means no reference tick exists and never means zero. This window has no freshness tolerance.

number | null
priceChange1h

Absolute probability delta versus one hour ago, from the newest stored close at or before the boundary within the 3h lookback. The lookup uses a 1m candle first, with a 1h fallback. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange6h

Absolute probability delta versus six hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange24h

Absolute probability delta versus 24 hours ago, using a 1m candle first, with a 1h fallback, at or before the boundary within the 4h preferred lookback. Otherwise, use the newest close at or before the boundary within the 12h lookback, only when the same outcome's first write-forward 1m candle after the boundary up to now has the same close and lands within 12 hours after the older reference. On a snapshot-enriched outcome this field is always present; null means no eligible reference exists and never means zero.

number | null
priceChange7d

Absolute probability delta versus seven days ago, from the newest stored close at or before the boundary within the 12h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
priceChange30d

Absolute probability delta versus 30 days ago, from the newest stored close at or before the boundary within the 24h lookback. Candle resolution preference is 1h, then 1d, then 1m. On a snapshot-enriched outcome this field is always present; null means no fresh-enough reference exists and never means zero.

number | null
coverage

Per-outcome tape coverage metadata. Null when unknown (no market_coverage row for this outcome, or not yet computed). Present only alongside the priceChange fields above (the hot snapshot path for open, active, priced outcomes).

object
mechanism
required

How this outcome's book tape is captured.

string
Allowed values: ws-lossless ws-top20 rest-adaptive rest-top-of-book synthetic-spot
tapeSince
required

When continuous tape coverage began for this outcome; null if unknown.

string | null format: date-time
effectiveIntervalMs
required

Measured effective observation interval in milliseconds (REST-polled venues); null for WebSocket venues or when unmeasured.

integer | null
gaps24h
required

Count of detected tape gaps in the last 24 hours.

integer
lastGapAt
required

When the most recent tape gap was detected; null if none recorded.

string | null format: date-time
metadata
object
key
additional properties
any
asOf
required
string | null format: date-time
provenance
required
object
source
required

Venue-rest — per-request REST via the venue adapter (the default stamp for every venue). predictefy-live — served from the live WebSocket hub or live order book; SX Bet overlay-bridge rows use this explicit source. fixture — offline sample data, never production venues. overlay — a serve-time catalog price overlay replaced the stored snapshot price for a fresh price-refresher entry.

string
Allowed values: venue-rest predictefy-live fixture overlay
capabilities
required

Market capability flags. history is true only when Predictefy's history coverage for the venue is proven under docs/history-coverage.md; it is independent of venue-native history endpoints and the hosted fetchOHLCV route's availability.

object
read
required
boolean
trade
required
boolean
depth
required

True when the venue exposes real order-book depth rather than an emulated or synthetic top-of-book (such as a single level synthesized from spot price, AMM pool, parimutuel odds, or P2P offer odds). Does not imply tradeable.

boolean
history
required
boolean
clusterId
required

Identity rows carry the delist-stable cluster id. Stored subset/superset edge rows carry null.

string | null
relation
required

Relation type. overlap/disjoint are not emitted until a verified classifier supports them.

string
Allowed values: identity subset superset
similarity
required

Uncalibrated similarity score — lookup mode: member-to-anchor; browse mode: cluster-level. NEVER "confidence".

number | null
<= 1
reasoning
required

Null for identity membership; stored subset/superset edges may carry producer reasoning.

string | null
bestBid
required

Compatibility key; ALWAYS null — no live books here.

null
bestAsk
required

Compatibility key; ALWAYS null — no live books here.

null
asOf
required

Stored data-as-of (cluster computed_at). Never live.

string | null format: date-time
meta
required
object
asOf
required
string | null format: date-time
coverage

Present on archive-backed trade pages; earliest/latest archived trade for this outcome.

object
from
required
string format: date-time
to
required
string format: date-time
snapshot
object
version
required
string
loadedAt
required
string format: date-time
asOf
required
string | null format: date-time
totalsAsOf

Present when page.total came from the exact background totals matrix.

string format: date-time
totalUnavailable

Present if and only if page.total is null, explaining why the total is missing. Distinguishes "nothing matched" (total 0) from "your page was served but its matches were not counted" (total null).

string
provenance
required
object
source
required

Venue-rest — per-request REST via the venue adapter (the default stamp for every venue). predictefy-live — served from the live WebSocket hub or live order book; SX Bet overlay-bridge rows use this explicit source. fixture — offline sample data, never production venues. overlay — a serve-time catalog price overlay replaced the stored snapshot price for a fresh price-refresher entry.

string
Allowed values: venue-rest predictefy-live fixture overlay
pairVenues

Applied pairVenues filter, trimmed and de-duplicated in request order. Every entry is served and non-sandbox on this deployment. Present only when pairVenues was supplied and accepted, including on empty pages.

Array<string>
>= 2 items unique items
page
required
object
limit
required
integer
offset
required
integer
total
required

Total matching rows, or null when the total was NOT computed — never a fabricated 0. The data page is the product and the count is metadata, so routes may warm an exact total off-request or abandon a count that exceeds its short budget while the page is still served. null is always accompanied by meta.totalUnavailable, which says why; use hasMore / nextCursor to walk the result set.

integer | null
hasMore
required

Whether another page exists. Determined by fetching one row beyond the requested limit, so it stays correct even when total is null.

boolean
nextCursor

Opaque cursor for the next page. Omitted on the final page.

string
Example
{
"data": [
{
"market": {
"outcomes": [
{
"side": "yes",
"priceBasis": "venue-composite",
"coverage": {
"mechanism": "ws-lossless"
}
}
],
"volume24hSource": "venue",
"volume24hUnit": "usd",
"imageSource": "venue",
"yes": {
"side": "yes",
"priceBasis": "venue-composite",
"coverage": {
"mechanism": "ws-lossless"
}
},
"no": {
"side": "yes",
"priceBasis": "venue-composite",
"coverage": {
"mechanism": "ws-lossless"
}
},
"up": {
"side": "yes",
"priceBasis": "venue-composite",
"coverage": {
"mechanism": "ws-lossless"
}
},
"down": {
"side": "yes",
"priceBasis": "venue-composite",
"coverage": {
"mechanism": "ws-lossless"
}
},
"provenance": {
"source": "venue-rest"
}
},
"sourceMarket": {
"outcomes": [
{
"side": "yes",
"priceBasis": "venue-composite",
"coverage": {
"mechanism": "ws-lossless"
}
}
],
"volume24hSource": "venue",
"volume24hUnit": "usd",
"imageSource": "venue",
"yes": {
"side": "yes",
"priceBasis": "venue-composite",
"coverage": {
"mechanism": "ws-lossless"
}
},
"no": {
"side": "yes",
"priceBasis": "venue-composite",
"coverage": {
"mechanism": "ws-lossless"
}
},
"up": {
"side": "yes",
"priceBasis": "venue-composite",
"coverage": {
"mechanism": "ws-lossless"
}
},
"down": {
"side": "yes",
"priceBasis": "venue-composite",
"coverage": {
"mechanism": "ws-lossless"
}
},
"provenance": {
"source": "venue-rest"
}
},
"relation": "identity"
}
],
"meta": {
"provenance": {
"source": "venue-rest"
}
}
}

VALIDATION_ERROR for a non-router exchange; unsupported relation/relations (including overlap/disjoint); invalid sort, minSimilarity/minConfidence, updatedSince, or pagination (limit/offset/page); or invalid pairVenues. An ambiguous lookup slug also returns VALIDATION_ERROR. NOT_SUPPORTED for url, includePrices, or order-book filters (withOrderbook, withOrderBook, requireOrderbook, requireOrderBook). In lookup mode, pairVenues with marketId or slug returns NOT_SUPPORTED only after pairVenues validation succeeds. Non-served or sandbox pairVenues entries are named in VALIDATION_ERROR messages, which list only served, non-sandbox venues. Fewer than two distinct pairVenues also returns VALIDATION_ERROR.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

The API key is missing, unknown, or revoked. A venue-authenticated read also answers 401 when the venue itself rejects the credential. Not retryable.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

The account's credit balance cannot cover this endpoint's weight. Not retryable.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

The API key lacks the scope this route requires, or the account's plan does not include the feature. Not retryable.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

The route does not exist, or the requested venue, market, event, cluster, outcome, or snapshot was not found. error.code names which. Not retryable.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

Rate limit exceeded. The response carries Retry-After in whole seconds, always rounded up so a sub-second remainder never points back inside the live window.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

Unexpected internal error. Retryable; error.requestId identifies the failure.

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}

MATCHES_UNAVAILABLE (dark lane) / CATALOG_UNAVAILABLE (store outage)

Media typeapplication/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: VALIDATION_ERROR NOT_SUPPORTED ACCOUNTS_UNSUPPORTED VENUE_NOT_AVAILABLE EXCHANGE_NOT_AVAILABLE MARKET_NOT_FOUND EVENT_NOT_FOUND TRADERS_UNSUPPORTED TRADER_NOT_FOUND CLUSTER_NOT_FOUND OUTCOME_NOT_FOUND SNAPSHOT_NOT_FOUND CATALOG_UNAVAILABLE CATALOG_QUERY_TOO_BROAD HISTORY_UNAVAILABLE SPORTS_SCREEN_UNAVAILABLE SPORTS_FIXTURE_NOT_FOUND SPORTS_BLOCK_NOT_FOUND ROUTE_NOT_FOUND INTERNAL AUTHENTICATION_ERROR PERMISSION_DENIED RATE_LIMIT_EXCEEDED NETWORK_ERROR NOT_FOUND BAD_REQUEST BRIDGE_UNSUPPORTED BRIDGE_NO_ROUTE BRIDGE_UPSTREAM BRIDGE_PROVIDER_UNAVAILABLE BRIDGE_TRANSACTION_NOT_FOUND BRIDGE_SESSION_NOT_FOUND TRANSFER_PLAN_UNSUPPORTED UNAUTHORIZED SCOPE_MISSING PLAN_REQUIRED INSUFFICIENT_CREDITS RATE_LIMITED GEO_BLOCKED VENUE_REGION_BLOCKED IDEMPOTENCY_KEY_REQUIRED RESERVED_IDEMPOTENCY_KEY IDEMPOTENCY_CONFLICT ARTIFACT_VERSION_CONFLICT SPEND_CAP_EXCEEDED RESERVATION_REQUIRED RESERVATION_CONSUMED RESERVATION_MISMATCH RESERVATION_EXPIRED RESERVATION_RELEASED ARTIFACT_BOUNDS_VIOLATION ARTIFACT_INTEGRITY_MISMATCH CLAIM_GENERATION_UNDETERMINED VENUE_NOT_SUPPORTED EXECUTION_NOT_FOUND EXECUTION_TERMINAL CONDITIONAL_NOT_FOUND CONDITIONAL_NOT_ARMED CONDITIONAL_ATTEMPT_CONFLICT CONDITIONAL_ARMED CONDITIONAL_CLOSED_NOT_SUBMITTED OCO_GROUP_CLOSED HOSTED_FIRE_NOT_ELIGIBLE HOSTED_FIRE_UNAVAILABLE NOT_IMPLEMENTED VENUE_CREDENTIAL_REJECTED VENUE_CREDENTIAL_BREAKER_OPEN GEMINI_TIME_NONCE_REQUIRED GEMINI_HEARTBEAT_KEY_UNSUPPORTED VENUE_RELAY_FAILED EXEC_UNAVAILABLE RAIN_INVALID_OPTION RAIN_INVALID_SIDE RAIN_INVALID_PRICE RAIN_INVALID_AMOUNT RAIN_SLIPPAGE_REQUIRED RAIN_INVALID_DEADLINE RAIN_PHASE_NOT_OPEN RAIN_ORDER_LIMIT_REACHED RAIN_POOL_SAFETY_CHECK_FAILED PLATFORM_UNAVAILABLE PACK_NOT_FOUND BILLING_UNAVAILABLE BILLING_CUSTOMER_REQUIRED PLAN_NOT_FOUND SUBSCRIPTION_EXISTS WEBHOOK_NOT_FOUND INVALID_SIGNATURE PAPER_INSUFFICIENT_CASH PAPER_POSITION_TOO_SMALL PAPER_MARKET_CLOSED PAPER_WORKING_ORDER_CAP PAPER_NO_LIVE_BOOK PAPER_ORDER_NOT_FOUND PAPER_ORDER_NOT_OPEN SQL_QUERY_FAILED SQL_TIMEOUT FEED_NOT_FOUND FEEDS_UNAVAILABLE FEED_UPSTREAM MATCHES_UNAVAILABLE ARBITRAGE_UNAVAILABLE
retryable
required
boolean
requestId
required

Always present on errors; quote this id when reporting a failed request.

string
exchange

Present only when a venue error is attributed to a specific exchange.

string
Example
{
"success": false,
"error": {
"code": "VALIDATION_ERROR"
}
}