Skip to content

API ReferenceMatched Markets

Full cross-venue matched-event clusters. Router only.

GET
/api/{exchange}/fetchMatchedEventClusters
curl --request GET \
--url 'https://data.predictefy.com/api/router/fetchMatchedEventClusters?relation=identity&includeRawMatches=false&sort=similarity&limit=20&offset=0' \
--header 'Authorization: Bearer <token>'

Projection of event_clusters + event_cluster_members, with each member hydrated to a UnifiedEvent from its catalog markets. Event grain has no price, spread, discrepancy, or aggregate-volume columns, so those cluster fields are omitted; volume24h is not fabricated. Generic-client market-only parameters such as hasDiscrepancy and sort=spread are accepted and ignored, following the contract's unknown-parameter convention. category, minSimilarity, venue filters, minVenues, updatedSince, identity/subset/superset relations, pagination, and eventId/slug anchor lookup are backed. includeRawMatches adds at most 100 event identity or verified typed edge rows per cluster plus rawMatchesTruncated. overlap/disjoint return 400.

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.

eventId
string

Canonical "{venue}:{eventId}" anchor. Presence enables lookup mode.

slug
string

Venue event slug. Cross-venue collisions return 400; use eventId.

query
string

Event title/question substring.

category
string
minSimilarity
number
<= 1
venues
string

CSV allow-list; the cluster must touch at least one.

excludeVenues
string

CSV deny-list; the cluster must touch none.

minVenues
integer
>= 1
relation
string
Allowed values: identity subset superset

Singular alias for relations.

relations
string

CSV of identity, subset, and/or superset. overlap/disjoint return 400.

includeRawMatches
boolean
updatedSince
string format: date-time

Event-cluster row content-write-time lower bound for identity; edge write-time for typed-only relation filters. Freshness-only matcher refreshes advance asOf (computed_at), not updated_at.

sort
string
default: similarity
Allowed values: similarity venues newest
limit
integer
default: 20 >= 1 <= 100
offset
integer
0 <= 10000

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

page
integer
>= 1

One-based alias for offset; explicit offset wins.

A cluster-grained page of full matched-event clusters.

Media typeapplication/json
object
success
required
boolean
data
required
Array<object>

A delist-stable event cluster. Event grain has no price/discrepancy columns, no per-cluster relations column, and no stored aggregate volume24h, so those fields are omitted rather than fabricated. Each events[] member carries its own catalog data.

object
clusterId
required

Delist-stable internal id; never a venue event id.

string
canonicalTitle
required
string | null
category
required
string | null
similarity
required

Stored matcher similarity, never confidence.

number | null
<= 1
venues
required
Array<string>
venueCount
required
integer | null
events
required
Array<object>
object
id
required
string
title
required
string
description
required
string
slug
required
string
markets
required
Array<object>
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
volume24h
required

Null means every member's venue publishes no such figure; otherwise this is the sum of known member values

number | null
volume24hSource
object
sources
required
Array<string>
unique items
Allowed values: venue derived_cumulative derived_tape
partial
required
boolean
volume24hUsd
required

Sum of member volume24hUsd values only when every member has a non-null value and the sum is finite; otherwise null. USDC is counted at par (1 USDC = 1 USD). The existing native volume24h sum is unchanged. A member's stored unit disagreeing with its venue's declared unit makes the aggregate null.

number | null
volume24hUnit
required

The members' common volume24hUnit, or null for mixed, unsupported or unknown units. A member's stored unit disagreeing with its venue's declared unit makes the aggregate null.

string | null
Allowed values: usd usdc contracts
volume24hAsOf
required

Oldest volume24hAsOf among members contributing finite native volume24h values. Null when there are no contributors or any contributing timestamp is unknown. Venue-mode members use snapshot fetch times, keeping the hot and SQL lanes aligned. Derived-venue members and their timestamps can lag in the hot lane until the next full catalog resync. Does not use event asOf, row write time, response time, or live price overlay time.

string | null format: date-time
priceChangeAsOf
required

Oldest non-null member priceChangeAsOf, preserving the instants when cached price changes were evaluated, not when their batches finished. Null when no member is enriched or in the SQL lane, where price changes are omitted.

string | null format: date-time
url
required
string
volume
number
image
string
category
string
tags
Array<string>
canonicalCategory
required
string | null
canonicalTags
required
Array<string>
sourceExchange
string
sourceMetadata
object
key
additional properties
any
asOf
string format: date-time
provenance
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
asOf
required

Event_clusters.computed_at; data-as-of, never live.

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.

string
Allowed values: venue-rest predictefy-live fixture
rawMatches
Array<object>
<= 100 items
object
eventAId
required

Canonical "{venue}:{eventId}" endpoint.

string
eventBId
required

Canonical "{venue}:{eventId}" endpoint.

string
marketAId

Present only on a typed market_relation_edges row.

string
marketBId

Present only on a typed market_relation_edges row.

string
relation
required
string
Allowed values: identity subset superset
similarity
required
number | null
<= 1
asOf
required
string | null format: date-time
rawMatchesTruncated

Present with rawMatches; true when more than 100 verified pairs exist.

boolean
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.

string
Allowed values: venue-rest predictefy-live fixture
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": [
{
"events": [
{
"markets": [
{
"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"
}
}
],
"volume24hSource": {
"sources": [
"venue"
]
},
"volume24hUnit": "usd",
"provenance": {
"source": "venue-rest"
}
}
],
"provenance": {
"source": "venue-rest"
},
"rawMatches": [
{
"relation": "identity"
}
]
}
],
"meta": {
"provenance": {
"source": "venue-rest"
}
}
}

VALIDATION_ERROR (incl. non-router, overlap/disjoint)

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"
}
}

EVENT_NOT_FOUND / route flag off

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"
}
}

CATALOG_UNAVAILABLE

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"
}
}