Changes only
A new history row is written whenever a projection changes. Unchanged polls refresh last_seen_at, so the history stays compact and every row means something.
Fetch the full recorded history of any projection: each line, status and selection change with its timestamp, in order.
/api/v1/projections/{id}/history# Use an ID returned by /projections
PROJECTION_ID="pp_16258896"
curl "https://prizepicksapi.com/api/v1/projections/${PROJECTION_ID}/history?limit=100" \
-H "Authorization: Bearer $PRIZEPICKS_API_KEY"{
"data": [
{ "id": "18342", "line": 14.5, "status": "active", "observed_at": "2026-10-28T01:26:44Z" },
{ "id": "21907", "line": 13.5, "status": "active", "observed_at": "2026-10-28T02:41:12Z" }
],
"meta": { "recording_mode": "changes_only", "next_cursor": null }
}A new history row is written whenever a projection changes. Unchanged polls refresh last_seen_at, so the history stays compact and every row means something.
Rows come back in ascending sequence. Continue with meta.next_cursor to read long histories page by page.
Each row includes the line, both selections, status, observed_at and the upstream update time, so tier and availability changes are captured too.
Power a searchable prop board across every league without writing a parser per sport.
GET /api/v1/projectionsSync an application cache and drive alerts from line moves in near real time.
GET /api/v1/changesDrop live props straight into notebooks, spreadsheets and data pipelines.
GET /api/v1/export