Odds API · Docs

Recipes.

Scanners, not CRUD examples. Every recipe is a single URL you send with your API key. Placeholders in braces — {event_id}, {player}, {today}, {book} — swap in your own.

Line shopping — best price per prop

Best Over price for exact prop
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_description=eq.{player}
  &outcome_name=eq.Over
  &point=eq.28.5
  &order=price_american.desc
  &limit=1
Best Under price for exact prop
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_description=eq.{player}
  &outcome_name=eq.Under
  &point=eq.28.5
  &order=price_american.desc
  &limit=1
Best prices at customer's available books only
https://odds.wagerwise.win/current_odds
  ?bookmaker_key=in.(draftkings,fanduel,betmgm,caesars)
  &market_type=eq.player_prop
  &outcome_name=eq.Over
  &order=event_id.asc,market_key.asc,outcome_description.asc,point.asc,price_american.desc
All direct links for one exact bet
https://odds.wagerwise.win/current_odds
  ?select=bookmaker_key,bookmaker_title,price_american,price_decimal,link
  &event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_description=eq.{player}
  &outcome_name=eq.Over
  &point=eq.28.5
  &order=price_american.desc
Best line per prop across the whole slate
https://odds.wagerwise.win/current_odds
  ?distinct=sport_key,event_id,market_key,outcome_description,outcome_name,point
  &market_type=eq.player_prop
  &order=sport_key.asc,event_id.asc,market_key.asc,outcome_description.asc,outcome_name.asc,point.asc,price_american.desc
Worst line per prop (shows cost of wrong book)
https://odds.wagerwise.win/current_odds
  ?distinct=sport_key,event_id,market_key,outcome_description,outcome_name,point
  &market_type=eq.player_prop
  &order=sport_key.asc,event_id.asc,market_key.asc,outcome_description.asc,outcome_name.asc,point.asc,price_american.asc
Best clickable props only
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &link=is.not_null
  &order=price_american.desc

Juice filters — abs_* for sign-agnostic price bands

Near pick'em prices — |price| ≤ 110
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &price_american=abs_lte.110
  &order=event_id.asc,market_key.asc,outcome_description.asc,point.asc
Reduced-juice props — |price| ≤ 105
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &price_american=abs_lte.105
  &order=price_american.desc
Big favorite moneylines — |price| ≥ 250
https://odds.wagerwise.win/current_odds
  ?market_key=eq.h2h
  &price_american=abs_gte.250
  &order=price_american.asc
Heavy-juice alt lines to avoid — |price| ≥ 400
https://odds.wagerwise.win/current_odds
  ?market_key=ilike.*alternate*
  &price_american=abs_gte.400
Big spread lines only — |spread| ≥ 7
https://odds.wagerwise.win/current_odds
  ?market_key=eq.spreads
  &point=abs_gte.7
  &order=event_id.asc,point.desc
Tight totals — line within 2 of 220
https://odds.wagerwise.win/current_odds
  ?market_key=eq.totals
  &point=between.(218,222)
  &order=point.asc,price_american.desc

Arb candidates

Over/Under candidate set for one prop
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_description=eq.{player}
  &outcome_name=in.(Over,Under)
  &order=outcome_name.asc,price_decimal.desc
Plus-money two-sided arb prefilter
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_name=in.(Over,Under)
  &price_american=gt.100
  &order=price_american.desc
Low-hold candidate screen (both sides |juice| ≤ 115)
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_name=in.(Over,Under)
  &price_american=abs_lte.115
  &order=outcome_description.asc,point.asc,price_decimal.desc
All Over/Under pairs for arb client scan
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_type=eq.player_prop
  &outcome_name=in.(Over,Under)
  &price_american=abs_lte.125
  &order=market_key.asc,outcome_description.asc,point.asc,outcome_name.asc,price_decimal.desc
Arb basket for entire event, minimal payload
https://odds.wagerwise.win/current_odds
  ?select=event_id,bookmaker_key,market_key,outcome_name,outcome_description,point,price_american,price_decimal,link
  &event_id=eq.{event_id}
  &market_type=eq.player_prop
  &outcome_name=in.(Over,Under)
  &price_american=abs_lte.125
  &order=market_key.asc,outcome_description.asc,point.asc,price_decimal.desc

Middles

Points middle builder — low Over lines
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_name=eq.Over
  &point=lte.24.5
  &order=outcome_description.asc,point.asc,price_american.desc
Points middle builder — high Under lines
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_name=eq.Under
  &point=gte.26.5
  &order=outcome_description.asc,point.desc,price_american.desc
Middleable alt lines only
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_type=eq.player_prop
  &market_key=ilike.*alternate*
  &outcome_name=in.(Over,Under)
  &order=outcome_description.asc,market_key.asc,point.asc
Half-point lines only (2+ point middle windows)
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &point=not.mod.(1,0)
  &order=outcome_description.asc,market_key.asc,point.asc

Consensus & outliers

Off-consensus point screen
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_description=eq.{player}
  &point=isdistinct.28.5
  &order=point.asc,price_american.desc
Price spread per prop (max − min reveals dispersion)
https://odds.wagerwise.win/current_odds
  ?select=event_id,market_key,outcome_description,outcome_name,point,min:price_american.min(),max:price_american.max(),count()
  &market_type=eq.player_prop
  &having=count().gte.3
  &order=event_id.asc,market_key.asc,outcome_description.asc,point.asc
Point disagreement feed
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_type=eq.player_prop
  &order=market_key.asc,outcome_description.asc,outcome_name.asc,point.asc
Near pick'em prop prices
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &price_american=abs_lte.115
  &order=event_id.asc,market_key.asc,outcome_description.asc,point.asc,price_american.desc
Same player, same point, all books
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_type=eq.player_prop
  &outcome_description=eq.{player}
  &point=eq.{point}
  &outcome_name=in.(Over,Under)
  &order=market_key.asc,outcome_name.asc,price_decimal.desc

De-vig & no-vig

Both sides of one prop across all books (raw input to de-vig math)
https://odds.wagerwise.win/current_odds
  ?select=bookmaker_key,outcome_name,point,price_american,price_decimal
  &event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_description=eq.{player}
  &point=eq.28.5
  &outcome_name=in.(Over,Under)
  &order=bookmaker_key.asc,outcome_name.asc
Sharp books only as fair-value anchors
https://odds.wagerwise.win/current_odds
  ?bookmaker_key=in.(pinnacle,circa,betcris,bookmaker)
  &market_type=eq.player_prop
  &outcome_name=in.(Over,Under)
  &order=event_id.asc,market_key.asc,outcome_description.asc,point.asc,outcome_name.asc
Two-way markets only, minimal hold shape
https://odds.wagerwise.win/current_odds
  ?select=event_id,market_key,outcome_description,point,bookmaker_key,outcome_name,price_decimal
  &market_type=eq.player_prop
  &outcome_name=in.(Over,Under)
  &price_american=abs_lte.130
  &order=event_id.asc,market_key.asc,outcome_description.asc,point.asc,bookmaker_key.asc,outcome_name.asc
Market width per book (tight = low vig)
https://odds.wagerwise.win/current_odds
  ?select=bookmaker_key,market_key,min:price_decimal.min(),max:price_decimal.max(),avg:price_decimal.avg(),count()
  &market_type=eq.player_prop
  &outcome_name=in.(Over,Under)
  &having=count().gte.20
  &order=bookmaker_key.asc,market_key.asc

Alt-line ladders

Full alt-line ladder for one player
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &outcome_description=eq.{player}
  &market_key=eq.player_points
  &order=outcome_name.asc,point.asc,price_decimal.desc
Books offering alt lines for one player
https://odds.wagerwise.win/current_odds
  ?distinct=bookmaker_key
  &event_id=eq.{event_id}
  &outcome_description=eq.{player}
  &market_key=ilike.*alternate*
  &order=bookmaker_key.asc
Plus-money alt Overs
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &market_key=ilike.*alternate*
  &outcome_name=eq.Over
  &price_american=gt.100
  &order=price_american.desc
Plus-money alt Unders
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &market_key=ilike.*alternate*
  &outcome_name=eq.Under
  &price_american=gt.100
  &order=price_american.desc
Alt ladder band for parlay shopping — +150 to +400 only
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &market_key=ilike.*alternate*
  &price_american=between.(150,400)
  &order=outcome_description.asc,price_american.asc

Player-centric

Every market for one player tonight
https://odds.wagerwise.win/current_odds
  ?outcome_description=ilike.*tatum*
  &market_type=eq.player_prop
  &order=event_id.asc,market_key.asc,point.asc,price_american.desc
Best price for every player prop
https://odds.wagerwise.win/current_odds
  ?distinct=event_id,market_key,outcome_name,point
  &outcome_description=ilike.*tatum*
  &market_type=eq.player_prop
  &order=event_id.asc,market_key.asc,outcome_name.asc,point.asc,price_american.desc
Player prop menu by sport
https://odds.wagerwise.win/current_odds
  ?distinct=outcome_description,market_key
  &market_type=eq.player_prop
  &sport_key=eq.basketball_nba
  &order=outcome_description.asc,market_key.asc
Player with last-name prefix (fast search autocomplete)
https://odds.wagerwise.win/current_odds
  ?outcome_description=istarts.jay
  &market_type=eq.player_prop
  &distinct=outcome_description
  &order=outcome_description.asc
Two-token search — first and last substring both present
https://odds.wagerwise.win/current_odds
  ?outcome_description=contains_all.(luka,doncic)
  &market_type=eq.player_prop
  &order=event_id.asc

Movement & CLV

Last 50 snapshots for one prop
https://odds.wagerwise.win/odds_snapshots
  ?event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_desc=eq.{player}
  &outcome_name=eq.Over
  &point=eq.28.5
  &order=fetched_at.desc
  &limit=50
Opening price for a prop
https://odds.wagerwise.win/odds_snapshots
  ?event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_desc=eq.{player}
  &outcome_name=eq.Over
  &point=eq.28.5
  &order=fetched_at.asc
  &limit=1
Movement window — last 30 min (relative time, no wall clock)
https://odds.wagerwise.win/odds_snapshots
  ?event_id=eq.{event_id}
  &market_type=eq.player_prop
  &fetched_at=within.30m
  &order=market_key.asc,outcome_desc.asc,point.asc,fetched_at.asc
Steam window — last 5 min, plus-money moves only
https://odds.wagerwise.win/odds_snapshots
  ?fetched_at=within.5m
  &price_american=gt.100
  &market_type=eq.player_prop
  &order=event_id.asc,market_key.asc,outcome_desc.asc,point.asc,fetched_at.asc
Pre-kickoff last hour only
https://odds.wagerwise.win/odds_snapshots
  ?fetched_at=within.1h
  &market_type=eq.game
  &order=event_id.asc,market_key.asc,bookmaker_key.asc,fetched_at.asc
Stale current_odds — reprice lag ≥ 5 min
https://odds.wagerwise.win/current_odds
  ?fetched_at=age_gte.5m
  &market_type=eq.player_prop
  &order=fetched_at.asc
Fresh-only snapshot pull — last 60 sec
https://odds.wagerwise.win/odds_snapshots
  ?fetched_at=within.60s
  &order=fetched_at.desc

Slate builders

Tonight's prop board with event context
https://odds.wagerwise.win/current_odds
  ?select=*,events!inner(home_team,away_team,commence_time,status)
  &events.commence_time=gte.{today}
  &events.commence_time=lt.{tomorrow}
  &market_type=eq.player_prop
  &order=events(commence_time).asc,market_key.asc,outcome_description.asc
Pregame only via inner embed
https://odds.wagerwise.win/current_odds
  ?select=*,events!inner(status,commence_time)
  &events.status=eq.pregame
  &market_type=eq.player_prop
  &order=events(commence_time).asc
Next 3 hours only — live-adjacent board
https://odds.wagerwise.win/events
  ?select=id,home_team,away_team,commence_time,current_odds(bookmaker_key,market_key,outcome_name,outcome_description,point,price_american,link)
  &status=eq.pregame
  &commence_time=within.3h
  &order=commence_time.asc
Single event odds board nested under event
https://odds.wagerwise.win/events
  ?select=id,home_team,away_team,commence_time,current_odds(bookmaker_key,market_key,outcome_name,outcome_description,point,price_american,link,order=market_key.asc)
  &id=eq.{event_id}
Top plus-money player props tonight
https://odds.wagerwise.win/current_odds
  ?select=*,events!inner(home_team,away_team,commence_time)
  &events.commence_time=gte.{today}
  &events.commence_time=lt.{tomorrow}
  &market_type=eq.player_prop
  &price_american=gt.100
  &order=price_american.desc
  &limit=100

Game lines

Game lines with event context
https://odds.wagerwise.win/current_odds
  ?select=*,events!inner(home_team,away_team,commence_time)
  &market_type=eq.game
  &events.commence_time=gte.{today}
  &events.commence_time=lt.{tomorrow}
  &order=events(commence_time).asc,market_key.asc,price_american.desc
Main lines only
https://odds.wagerwise.win/current_odds
  ?market_key=in.(h2h,spreads,totals)
  &order=sport_key.asc,event_id.asc,market_key.asc,bookmaker_key.asc
Plus-money moneylines
https://odds.wagerwise.win/current_odds
  ?market_key=eq.h2h
  &price_american=gt.100
  &order=price_american.desc
Big-favorite moneylines — |price| ≥ 200
https://odds.wagerwise.win/current_odds
  ?market_key=eq.h2h
  &price_american=abs_gte.200
  &price_american=lt.0
  &order=price_american.asc
Tight spread prices — |juice| ≤ 115
https://odds.wagerwise.win/current_odds
  ?market_key=eq.spreads
  &price_american=abs_lte.115
  &order=event_id.asc,point.asc,price_american.desc
Total lines by book for one event
https://odds.wagerwise.win/current_odds
  ?market_key=eq.totals
  &event_id=eq.{event_id}
  &order=point.asc,outcome_name.asc,price_american.desc
Key-number spreads — 3 or 7 exactly
https://odds.wagerwise.win/current_odds
  ?market_key=eq.spreads
  &point=in.(-3,3,-7,7)
  &order=event_id.asc,point.asc,price_american.desc

Coverage & discovery

Books carrying a market
https://odds.wagerwise.win/current_odds
  ?distinct=bookmaker_key
  &market_key=eq.player_points
  &sport_key=eq.basketball_nba
  &order=bookmaker_key.asc
Book coverage for one player's props
https://odds.wagerwise.win/current_odds
  ?distinct=bookmaker_key
  &outcome_description=eq.{player}
  &event_id=eq.{event_id}
  &order=bookmaker_key.asc
Markets a specific book supports
https://odds.wagerwise.win/market_catalog
  ?bookmaker_key=eq.caesars
  &sport_key=eq.basketball_nba
  &market_type=eq.player_prop
  &order=market_key.asc
Books that carry NBA props
https://odds.wagerwise.win/market_catalog
  ?distinct=bookmaker_key
  &sport_key=eq.basketball_nba
  &market_type=eq.player_prop
  &order=bookmaker_key.asc
Market discovery for customer UI
https://odds.wagerwise.win/market_catalog
  ?sport_key=eq.basketball_nba
  &market_type=eq.player_prop
  &distinct=market_key
  &order=market_key.asc
Books with props plus game lines
https://odds.wagerwise.win/market_catalog
  ?bookmaker_key=in.(draftkings,fanduel,betmgm,caesars)
  &market_type=in.(player_prop,game)
  &sport_key=eq.basketball_nba
  &order=bookmaker_key.asc,market_type.asc,market_key.asc
Most liquid markets
https://odds.wagerwise.win/current_odds
  ?select=market_key,count()
  &market_type=eq.player_prop
  &having=count().gte.50
Players with the most available props
https://odds.wagerwise.win/current_odds
  ?select=outcome_description,count()
  &market_type=eq.player_prop
  &having=count().gte.20
Events with deep prop menus
https://odds.wagerwise.win/current_odds
  ?select=event_id,count()
  &market_type=eq.player_prop
  &having=count().gte.100
Average juice per book (sharpness proxy)
https://odds.wagerwise.win/current_odds
  ?select=bookmaker_key,avg:price_decimal.avg(),count()
  &market_type=eq.player_prop
  &outcome_name=in.(Over,Under)
  &having=count().gte.100
  &order=bookmaker_key.asc

Bet-ticket builders (SGP / parlay inputs)

One player, full two-sided menu (for correlated-SGP picker)
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &outcome_description=eq.{player}
  &market_type=eq.player_prop
  &outcome_name=in.(Over,Under)
  &order=market_key.asc,point.asc,outcome_name.asc,price_american.desc
Multi-player basket — same book, same event
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &bookmaker_key=eq.{book}
  &outcome_description=in.({player_a},{player_b},{player_c})
  &market_type=eq.player_prop
  &outcome_name=eq.Over
  &order=outcome_description.asc,market_key.asc,point.asc
Same-game parlay legs shortlist — plus-money alt Overs at one book
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &bookmaker_key=eq.{book}
  &market_key=ilike.*alternate*
  &outcome_name=eq.Over
  &price_american=between.(120,500)
  &order=outcome_description.asc,price_american.asc
Cross-book parlay — best price on each leg
https://odds.wagerwise.win/current_odds
  ?distinct=event_id,market_key,outcome_description,outcome_name,point
  &event_id=in.({evt_a},{evt_b},{evt_c})
  &outcome_description=in.({player_a},{player_b},{player_c})
  &outcome_name=eq.Over
  &market_type=eq.player_prop
  &order=event_id.asc,market_key.asc,outcome_description.asc,point.asc,price_american.desc

Heuristic screens

Low-vig two-way markets — both sides |juice| ≤ 108
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &outcome_name=in.(Over,Under)
  &price_american=abs_lte.108
  &order=event_id.asc,market_key.asc,outcome_description.asc,point.asc
Plus-money props at sharp books (best fair-value candidates)
https://odds.wagerwise.win/current_odds
  ?bookmaker_key=in.(pinnacle,circa,betcris,bookmaker)
  &market_type=eq.player_prop
  &price_american=gt.100
  &order=price_american.desc
Plus-money props NOT at sharp books (likely stale soft lines)
https://odds.wagerwise.win/current_odds
  ?bookmaker_key=not.in.(pinnacle,circa,betcris,bookmaker)
  &market_type=eq.player_prop
  &price_american=gt.120
  &order=price_american.desc
Deep alt-line ladders only (6+ rungs = real liquidity)
https://odds.wagerwise.win/current_odds
  ?select=event_id,outcome_description,market_key,count()
  &market_key=ilike.*alternate*
  &having=count().gte.6
  &order=count.desc
Freshness + price combo — last 30 sec, near pick'em
https://odds.wagerwise.win/current_odds
  ?fetched_at=within.30s
  &price_american=abs_lte.115
  &market_type=eq.player_prop
  &order=fetched_at.desc

Futures (season-long markets)

All futures markets for a sport
https://odds.wagerwise.win/futures_markets
  ?sport_key=eq.basketball_nba
  &order=market_key.asc
Championship winner odds across books
https://odds.wagerwise.win/futures_outcomes
  ?select=*,futures_markets!inner(sport_key,season,market_key)
  &futures_markets.sport_key=eq.basketball_nba
  &futures_markets.market_key=eq.championship_winner
  &order=outcome_name.asc,price_american.desc
Best MVP price per candidate
https://odds.wagerwise.win/futures_outcomes
  ?select=outcome_name,bookmaker_key,price_american,price_decimal,link,futures_markets!inner(sport_key,season,market_key)
  &futures_markets.sport_key=eq.basketball_nba
  &futures_markets.market_key=eq.mvp
  &distinct=outcome_name
  &order=outcome_name.asc,price_american.desc
Plus-money longshot futures across all markets
https://odds.wagerwise.win/futures_outcomes
  ?price_american=gt.1000
  &order=price_american.desc
  &limit=50
Futures price band — +300 to +800 only
https://odds.wagerwise.win/futures_outcomes
  ?price_american=between.(300,800)
  &order=outcome_name.asc,price_american.asc

Coverage by region

Which bookmakers serve a region
https://odds.wagerwise.win/bookmaker_regions
  ?region=eq.us
  &order=bookmaker_key.asc

Statistics — distribution & variance

Median + stddev of Over prices per prop
https://odds.wagerwise.win/current_odds
  ?select=event_id,market_key,outcome_description,point,med:price_decimal.median(),sd:price_decimal.stddev(),n:count()
  &market_type=eq.player_prop
  &outcome_name=eq.Over
  &having=count().gte.5
99th-percentile price per market (tail detector)
https://odds.wagerwise.win/current_odds
  ?select=market_key,p99:price_decimal.percentile(0.99),p50:price_decimal.percentile(0.5)
  &market_type=eq.player_prop
Price quartiles per prop
https://odds.wagerwise.win/current_odds
  ?select=event_id,market_key,outcome_description,point,outcome_name,p25:price_decimal.percentile(0.25),p50:price_decimal.percentile(0.5),p75:price_decimal.percentile(0.75)
  &market_type=eq.player_prop
Mode — most common line per prop
https://odds.wagerwise.win/current_odds
  ?select=event_id,market_key,outcome_description,outcome_name,line:point.mode()
  &market_type=eq.player_prop
Book coverage — unique bookmakers per prop
https://odds.wagerwise.win/current_odds
  ?select=event_id,market_key,outcome_description,point,books:bookmaker_key.count_distinct()
  &market_type=eq.player_prop
  &having=count_distinct(bookmaker_key).gte.5
  &order=count_distinct(bookmaker_key).desc
Liquid props — ≥ 50 quotes, low price variance
https://odds.wagerwise.win/current_odds
  ?select=event_id,market_key,outcome_description,point,n:count(),sd:price_decimal.stddev()
  &market_type=eq.player_prop
  &having=count().gte.50
  &order=stddev(price_decimal).asc
FILTER — avg plus-money Over price per prop
https://odds.wagerwise.win/current_odds
  ?select=event_id,market_key,outcome_description,point,plus_avg:price_decimal.avg(filter:outcome_name.eq.Over,price_american.gt.100),n:count()
  &market_type=eq.player_prop
Correlation — price vs bet_limit per market
https://odds.wagerwise.win/current_odds
  ?select=market_key,corr:corr(price_decimal,bet_limit),n:count()
  &bet_limit=is.not_null
  &having=count().gte.30
  &order=corr(price_decimal,bet_limit).asc
Regression slope — price vs minutes to start
https://odds.wagerwise.win/current_odds
  ?select=market_key,slope:regr_slope(price_decimal,mins_to_start),r2:regr_r2(price_decimal,mins_to_start),n:regr_count(price_decimal,mins_to_start)
  &having=regr_count(price_decimal,mins_to_start).gte.30

Window / partition filters

Best-3 prices per Over/Under per prop
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &partition_by=event_id,market_key,outcome_description,outcome_name,point
  &order=price_american.desc
  &rank_lte=3
Top-price-only per prop (best book per line)
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &partition_by=event_id,market_key,outcome_description,outcome_name,point
  &order=price_american.desc
  &rank_lte=1
Props with ≥ 5 books quoting AND price in top decile
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &partition_by=event_id,market_key,outcome_description,point
  &order=price_american.desc
  &group_count_gte=5
  &percentile_gte=0.9
Price outliers — ≥ 2σ from partition mean
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &partition_by=event_id,market_key,outcome_description,outcome_name,point
  &outlier=2
  &outlier_col=price_decimal
Only props where ≥ 3 books quote
https://odds.wagerwise.win/current_odds
  ?market_type=eq.player_prop
  &partition_by=event_id,market_key,outcome_description,outcome_name,point
  &group_count_gte=3
Line movement — price diff from previous snapshot
https://odds.wagerwise.win/odds_snapshots
  ?select=fetched_at,bookmaker_key,price_decimal,delta:price_decimal.diff(1)
  &event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_description=eq.{player}
  &outcome_name=eq.Over
  &partition_by=bookmaker_key,point
  &order=fetched_at.asc
Percent change per snapshot
https://odds.wagerwise.win/odds_snapshots
  ?select=fetched_at,bookmaker_key,price_decimal,pct:price_decimal.pct_change()
  &event_id=eq.{event_id}
  &market_key=eq.player_points
  &partition_by=bookmaker_key,outcome_description,outcome_name,point
  &order=fetched_at.asc
Rolling 5-snapshot price average (smoothed movement)
https://odds.wagerwise.win/odds_snapshots
  ?select=fetched_at,bookmaker_key,price_decimal,sma:price_decimal.rolling_mean(5)
  &event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_name=eq.Over
  &partition_by=bookmaker_key,outcome_description,point
  &order=fetched_at.asc
Price z-score per prop (outlier hunt)
https://odds.wagerwise.win/current_odds
  ?select=event_id,bookmaker_key,market_key,outcome_description,point,outcome_name,price_decimal,z:price_decimal.zscore()
  &market_type=eq.player_prop
  &partition_by=event_id,market_key,outcome_description,point,outcome_name
row_number — order quotes by time per book
https://odds.wagerwise.win/odds_snapshots
  ?select=fetched_at,bookmaker_key,price_decimal,n:price_decimal.row_number()
  &event_id=eq.{event_id}
  &market_key=eq.player_points
  &partition_by=bookmaker_key,outcome_description,point,outcome_name
  &order=fetched_at.asc

Grouping sets — multi-level aggregates in one pass

Rollup — book × market with subtotals
https://odds.wagerwise.win/current_odds
  ?select=bookmaker_key,market_key,n:count(),avg:price_decimal.avg()
  &market_type=eq.player_prop
  &grouping=rollup
Cube — all combinations of sport × market × book
https://odds.wagerwise.win/current_odds
  ?select=sport_key,market_key,bookmaker_key,n:count()
  &grouping=cube
Explicit grouping sets — book totals + market totals + grand total
https://odds.wagerwise.win/current_odds
  ?select=bookmaker_key,market_key,n:count(),avg:price_decimal.avg()
  &market_type=eq.player_prop
  &grouping=sets:(bookmaker_key,market_key),(bookmaker_key),(market_key),()

Export & output

CSV export — tonight's prop slate
https://odds.wagerwise.win/current_odds
  ?select=event_id,bookmaker_key,market_key,outcome_name,outcome_description,point,price_american,link,events!inner(home_team,away_team,commence_time)
  &events.commence_time=gte.{today}
  &events.commence_time=lt.{tomorrow}
  &market_type=eq.player_prop
  &order=events(commence_time).asc,outcome_description.asc

Accept: text/csv
Single best bet row as object
https://odds.wagerwise.win/current_odds
  ?event_id=eq.{event_id}
  &market_key=eq.player_points
  &outcome_description=eq.{player}
  &outcome_name=eq.Over
  &point=eq.28.5
  &order=price_american.desc
  &limit=1

Accept: application/vnd.pgrst.object+json
Paginated bulk pull
https://odds.wagerwise.win/current_odds?sport_key=eq.basketball_nba

Range: 0-999
Prefer: count=exact