Props

What changed since your last poll

An append-only feed of prop lifecycle transitions: created, line_changed, odds_changed, suspended, reactivated, removed, closed. Poll it with the cursor from your previous response to get exactly the rows you have not seen, instead of re-scanning the whole board and diffing it yourself. Ordered by a monotonic id, so a cursor is a precise watermark: no gaps, no repeats, and safe to replay.

get/api/v1/changes

Request

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

Query parameters

sport'nba' | 'basketball' | 'mlb' | 'nfl' | 'nhl' | 'ncaab' | 'ncaaf' | 'soccer' | 'tennis' | 'ufc' | 'cs2' | 'valorant' | 'dota2' | 'esports' | 'cod'
Example:mlb
sinceinteger nullable

Epoch ms. Returns changes observed after this instant. Prefer cursor for exact resumption.

cursorstring

Opaque watermark from a previous response. Resumes exactly where you stopped, with no gap or repeat.

limitinteger

Rows per page, capped by your plan (entitlements.changesPageLimit in GET /contract.json). Follow pagination.nextCursor for more.

Example:100
changeType'created' | 'line_changed' | 'odds_changed' | 'suspended' | 'reactivated' | 'removed' | 'closed'
eventIdstring
playerIdstring

Canonical fp_player_ id. Returns changes for every spelling of that player's name within its sport. Any other value, including the source playerId carried on board rows, is rejected with 400 invalid_player_id.

Response

Changes since the cursor

countinteger required

Example response

{
  "changes": [
    {
      "changeId": "fp_change_1042",
      "propId": "fp_prop_..."
    }
  ]
}

Changes

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