Props

Market-wide props scan

All player props across today's games for a sport, flattened into rows: the "flow" feed. Row count is capped by your tier.

get/api/v1/props

Request

  • Base URL: https://api.flashodds.live
  • URL: https://api.flashodds.live/api/v1/props
  • Auth: HTTP bearer

Query parameters

sportstring
Example:mlb
statstring

Filter to a single stat.

Example:strikeouts
playerstring

Filter to one player.

Example:Aaron Judge
eventIdstring

Filter to one event.

Example:ud-204435
limitinteger

Max rows (capped by your tier).

Example:50
scopeKind'full_game' | 'map' | 'maps' | 'match' | 'season'

Keep only markets at this scope. mainLinesOnly is about the LINE (standard vs goblin/demon alternate) and is orthogonal to scope, so a first-half market has its own standard line and survives that filter. Use scopeKind=full_game for whole-game markets only, which is what most callers building a board actually want. Values mirror market.scopeKind on every row.

mainLinesOnly'true' | 'false'

Return only the standard two-way line per market, hiding goblin/demon/alternate variants. Use this for the pre-2026-07-27 row set.

cursorstring

Opaque cursor from a previous response’s pagination.nextCursor. Keyset-based, so paging stays correct when the board changes mid-walk. A cursor is bound to the filter set that produced it and returns 400 invalid_cursor if replayed against different filters.

Response

Flattened prop rows

sportstring required
statstring nullable required
countinteger required

Rows returned. Same meaning as before; unchanged for compatibility.

emptyboolean required

True when zero rows were returned.

emptyReason'offseason' | 'no_games_scheduled' | 'no_props_posted' | 'no_filter_matches' | 'source_unavailable' | 'source_stale' | 'outside_supported_window' | 'tier_limit' | 'unknown' | 'null' nullable required

Why the result is empty. Null when it is not. A healthy empty slate is distinguishable from a source failure.

messagestring nullable required

Human-readable explanation of an empty or degraded result.

Example response

{
  "rows": [
    {
      "player": "Aaron Judge",
      "stat": "points",
      "line": 24.5,
      "overOdds": -115,
      "underOdds": -105,
      "bookCount": 1,
      "flashPlayerId": "fp_player_dsyMpoQ89z_KrVa0XLfJve",
      "gameClock": "Q2 7:23",
      "market": {
        "statKey": "kills_on_game_1",
        "label": "Map 1 Kills",
        "family": "kills",
        "scopeKind": "map",
        "scope": "map1",
        "scopeLabel": "Map 1",
        "unit": "kills",
        "displayOrder": 1,
        "uiGroup": "kills"
      },
      "flashProjection": {
        "value": 25,
        "sampleN": 82,
        "method": "season Hardpoint kills/map",
        "marketKey": "map1_kills",
        "seasonId": "2026"
      }
    }
  ],
  "sources": [
    {
      "id": "underdog"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.