PRIZEPICKSAPI.

Observed history

PrizePicks historical data, with an honest start date.

Use retained projection history and change events from this service’s observations. The available window below is calculated from stored history, not inferred from a season schedule.

The retained window, measured now

Source health: partialRecorded history
Earliest retained history entryOct 27, 2026, 10:55:20 PM UTC
Latest retained history entryOct 28, 2026, 01:53:03 AM UTC
Retained history entries14,501
Distinct projections with history14,426

These dates come from retained history rows. They do not establish continuous collection, multi-season coverage, original opening times, or the observation window of every individual projection.

Latest collection observation: Oct 28, 2026, 01:53:03 AM UTC. History entries are stored when normalized offers change; the latest collection can be newer than the latest history entry.

What the retained history represents

Each history entry is an observation retained by this service. The first entry establishes the earliest stored state for that projection, not necessarily its opening line on the source platform. A service that began observing an offer today cannot reconstruct earlier changes merely because the event or player existed yesterday. The timestamps shown above describe the database that is available now.

The history endpoint records the initial normalized state and later changed states. It does not add an identical row for every repeated collection. As a result, history counts are not collection counts. A projection with one entry may have been observed several times without changing, or it may have been seen only once. Use collection-health context rather than drawing an uninterrupted feed from a sparse history array.

Fetch the history for one projection

curl "https://prizepicksapi.com/api/v1/projections/PROJECTION_ID/history?limit=100" \
  -H "Authorization: Bearer $PRIZEPICKS_API_KEY"

Replace PROJECTION_ID with an ID from the projections endpoint. The response includes history-entry IDs, the projection ID, line, selections, status, observed_at, and source_updated_at when supplied. Continue with meta.next_cursor until it is null. The same player name can appear across markets or periods, so do not combine unrelated projection histories by name alone.

Replay recorded changes across the board

curl "https://prizepicksapi.com/api/v1/changes?league=NBA&limit=100" \
  -H "Authorization: Bearer $PRIZEPICKS_API_KEY"

# On a later request, use the last committed event cursor:
curl "https://prizepicksapi.com/api/v1/changes?league=NBA&after=LAST_EVENT_CURSOR" \
  -H "Authorization: Bearer $PRIZEPICKS_API_KEY"

The change feed distinguishes new, changed, unavailable, and restored offers. A new event means this service first recorded an offer; it is not proof of when the original platform created it. A changed event may reflect a line, selection, status-related detail, player detail, or event detail. For numeric movement, explicitly compare previous_line with line instead of counting every changed event as a line move.

Persist your consumer’s event cursor only after its work commits. When the final page has no continuation token, save the last event’s own cursor before polling again. Retrying an event should not repeat side effects, so deduplicate by event ID. The cursor is a replay position, not a timestamp that can be converted into an exact upstream change time.

Use observation time for reproducible analysis

Observed time tells you when this service collected a state. A source update timestamp, when supplied, is separate and may be null. Keep both fields if your analysis needs them. Do not replace an unknown source time with the collection time without preserving that substitution explicitly; the two answer different questions.

For a backtest, define a cutoff and use only observations known by that cutoff. A later line must not leak into an earlier simulated decision. Record market names and periods, preserve null selection values, and distinguish base lines from promotional offers. This API does not supply official settlement or graded results, so evaluating prediction outcomes requires a separately validated results source.

What this page does not promise

  • No multi-season or pre-launch archive is implied by the word historical. The retained dates are shown explicitly.
  • No claim is made that every intermediate upstream update was captured. Collection gaps remain gaps.
  • A missing offer in a partial snapshot is not automatically a removal.
  • A first observation is not automatically an opening line, and the latest stored observation is not automatically a closing line.
  • There is no invented result, payout, or probability attached to a recorded projection.

Historical records and source freshness can coexist: an older entry remains a valid dated observation even after the current feed becomes stale. Label charts and exported datasets with their observation window. If your application requires a specific start date, confirm that the relevant projection histories cover it before building the analysis.

References

Current API documentation ↗Machine-readable OpenAPI contract ↗

PrizePicks API is an independent data service. It is not affiliated with or endorsed by PrizePicks. Observations, completeness, and freshness are separate claims; consult source status before relying on a stored line.