18+ Only  |  Gambling can be addictive — please gamble responsibly  |  Gambling Help: 1800 858 858  |  GambleAware

API reference / Bulk data

GET /v1/bulk/restatements

Changes to already-published dataset files

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.

Requires X-API-Key 0 credits

Request

curl 'https://api.puntersedge.online/v1/bulk/restatements' \
  -H 'X-API-Key: YOUR_KEY'

Parameters

NameIn TypeRequired 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.

Responses

Status codes: 200, 401, 402, 403, 422, 429, 500. Response bodies are JSON; the full schema is in /openapi.json.

Example response

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…"
    }
  ]
}

Related endpoints

Try it against live data

The free tier needs no credit card, and the sandbox endpoints need no key at all.

Get a free API key Quickstart
This site contains wagering-related analysis and is intended for Australian users aged 18+. Gambling involves risk. Please gamble responsibly.