Changes to already-published dataset files
Cost: 0 credits. Every time a dataset file changed AFTER it was first published, newest first: which file, when, why, and how many rows were removed, changed and added.
A day's file is regenerated for three nights after the day, and a closed month's bundle on the first three nights of the next month. When a regeneration produces different bytes (the csv digest changes), the change is recorded here and in the file's own sidecar. The reason is orphan_merge when the archive folded a duplicate race record onto the race that was run, and regeneration for anything else — usually late results or late closing lines. A mirror that re-checks files by ETag sees the same changes; this list says why.
The current month's bundle grows every night as days are added and is not listed until the month has closed.
Request
- Base URL: https://api.puntersedge.online
- URL: https://api.puntersedge.online/v1/bulk/restatements
- Auth: API key in header X-API-Key
Query parameters
ISO date or date-time (UTC); only restatements published at or after it.
Restrict to one dataset name.
At most 200.
Headers
Response
Successful Response
Example response
{
"count": 1,
"notes": [
"Newest first. A restatement is recorded when a regenerated file's csv sha256 differs from the file it replaces."
],
"restatements": [
{
"at": "2026-10-13T15:31:07Z",
"dataset": "closing_lines",
"detail": {
"merges": 1,
"method": "keyed",
"previous_generated_at": "2026-10-12T15:30:44Z",
"rows_after": 31221,
"rows_before": 31230,
"store_rows_deleted": 9,
"store_rows_repointed": 0,
"within_settle_window": true
},
"id": 412,
"period": "2026-10-11",
"period_kind": "day",
"reason": "orphan_merge",
"rows_added": 0,
"rows_changed": 0,
"rows_removed": 9,
"sha256_after": "3f1c92…",
"sha256_before": "a07e5c…"
}
]
}Changes
No recorded changes to this operation across all 1 revision of this API.