Get Sports Edge Signals
Pro-tier. Ranked list of upcoming pre-game sports markets (moneyline + props) where graded (S/A/B) sharp money is piled on one side, each row carrying signal_created_at (the UTC time its immutable snapshot was computed), the piled side, its grade distribution, kickoff, piled-side Polymarket CLOB token id, and required shadow-only category_skill evidence. signal_created_at is not provider market creation time or request time. Eligibility and ranking remain the funded FLOW/HOLDER contract; category skill cannot change membership, order, rank, cursor, routing, or sizing. meta exposes explicit category source/model/status plus independently computed pre/post SHA-256 base-vector hashes that must match. Served from a shared server-side snapshot cache (healthy TTL ~180s, degraded ~30s) computed once per category at the maximum 48h horizon and filtered at request time; the cursor pins to that snapshot and a stale cursor is rejected. Polymarket only; source coverage is partial first-observed post-launch Goldsky primary taker BUY fills admitted by the canonical whale-alert thresholds, never reconstructed history. Deliberately not the editorial Pick of the Day ranker.
Read the signals
rankis 1-based within themin_grade-filtered result. The order isdirectional_rank_score, highest first, thenconviction_score,smart_score, andcondition_id.directional_rank_scoreisconviction_score * (1 + 0.25 * directional_confidence).conviction_scoreis(5*s + 4*a + 3*b) * sharp_pct.piled_sideis the provider display label for the piled outcome.piled_outcome_indexselects the provider column:0for YES,1for NO.token_idis the CLOB token for that outcome. Do not readpiled_sidealone as a team identity.sharp_pctis the piled-side dollar share in(0.5, 1].backed_sharp_usdis the raw piled-side USD.s_count,a_count,b_count,graded_holders, andtop_gradedescribe the piled-side holders.signal_created_atis the snapshot compute time. Every row from one snapshot shares it. It is not request time.game_start_timewas in the future at snapshot time. The snapshot is cached up to about 180 seconds, so a served kickoff can already be in the past.one_way_holder_count,hedged_holder_count,one_way_graded_usd, anddirectional_confidenceare null when the directional read was not computed.category_skillis shadow-only evidence. It never changes membership, order, rank, or cursor.meta.ranking_sourceisliveordb_only.meta.directional_sourceisliveordegraded. A degraded snapshot is cached about 30 seconds instead of about 180.
Filter the list
categoryaccepts a canonical sport bucket such asBasketball,Tennis, orSoccer. A raw provider value such asNBAresolves to its bucket. A non-sport category returns an empty list.horizon_hoursis 1 to 48 with a default of 12. The floor is now, so only games before kickoff appear.min_gradeacceptsS,A, orB(default).Arequires an S or A holder on the piled side.C,D, andFreturn400.limitis 1 to 100 with a default of 20.
Handle the expired cursor
- Read
error.reasonon a400.cursor_expiredwitherror.param="cursor"means the ranking snapshot behind the cursor refreshed. - Request the first page again and walk forward. Do not wait; there is no
Retry-After. - A
400withouterror.reasonis an invalid parameter. Readerror.param.
Cache the signals
The 200 response carries anETag. Send If-None-Match to get 304 Not Modified with an empty body when nothing changed.
Related
Get Sports Edge Observations measures the observation-only cohorts outside this funded list.Authorizations
API key authentication. Send your key in the Authorization header as Bearer oxi_sk_live_.... Live keys require an active Pro subscription and return live data.
Headers
Conditional GET validator from a previous ETag. Matching values return 304 Not Modified with an empty body.
Query Parameters
Optional canonical sport bucket filter (e.g. Basketball, Tennis, Soccer). A raw provider value (NBA) resolves to its canonical bucket. A non-sport category returns an empty list.
Page size.
1 <= x <= 100Opaque cursor from a previous response's next_cursor. Encodes the snapshot anchor plus the last row's directional_rank_score, conviction_score, smart_score and condition_id. A cursor from an expired snapshot returns 400.
Kickoff ceiling in hours from now; the floor is now (only games not yet started). Clamped to 1..48.
1 <= x <= 48Minimum trader grade required on the piled side. Only S, A, B are accepted (the piled-side grade distribution is S/A/B only; C, D, F return 400). Default B means at least one S/A/B holder is piled; S requires an S holder, A requires an S or A holder.
S, A, B