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.
X-API-Key
0 credits
curl 'https://api.puntersedge.online/v1/bulk/restatements' \
-H 'X-API-Key: YOUR_KEY'
| Name | In | Type | Required | Description |
|---|---|---|---|---|
since |
query | string | no | ISO date or date-time (UTC); only restatements published at or after it. |
dataset |
query | string | no | Restrict to one dataset name. |
limit |
query | integer | no | At most 200. |
Status codes: 200, 401, 402, 403, 422, 429, 500. Response bodies are JSON; the full schema is in /openapi.json.
200 application/json
— this call costs 0 credits.
Field names and types are as the API returns them; values are a real sample, trimmed to a few items.
{
"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…"
}
]
}
GET /v1/bulk/datasets — Bulk dataset catalogueGET /v1/bulk/{dataset}/{period} — Download one dataset fileThe free tier needs no credit card, and the sandbox endpoints need no key at all.
Get a free API key Quickstart