Four event types
offer.new, offer.changed, offer.unavailable and offer.restored tell you exactly what happened to each offer, with previous_line and line on every event.
Consume an ordered stream of new, moved, pulled and restored offers. Filter by league and resume from the last event you processed.
/api/v1/changescurl "https://prizepicksapi.com/api/v1/changes?league=NBA&after=0&limit=100" \
-H "Authorization: Bearer $PRIZEPICKS_API_KEY"{
"data": [{
"id": "25647", "cursor": "25647",
"type": "offer.changed",
"projection_id": "pp_16258896",
"league": "NBA", "player_name": "Scoot Henderson", "stat": "Points",
"previous_line": 14.5, "line": 13.5,
"observed_at": "2026-10-28T04:20:03.868Z"
}],
"meta": { "count": 100, "next_cursor": "25746" }
}offer.new, offer.changed, offer.unavailable and offer.restored tell you exactly what happened to each offer, with previous_line and line on every event.
Pass the last cursor you applied as cursor or after. The next page starts right after it, so a restart never skips or repeats work.
Filter by league and pull up to 200 events per request. One call replaces rereading thousands of projections.
Trigger workflows the moment a line moves, without polling from every service.
POST to your endpoint · ProductionBuild line charts, replay a slate, or audit exactly when an alert should have fired.
GET /api/v1/projections/{id}/historyPower a searchable prop board across every league without writing a parser per sport.
GET /api/v1/projections