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

API reference / Bulk data

GET /v1/bulk/datasets

Bulk dataset catalogue

Every dataset this API publishes as pre-built files, with the daily files and monthly bundles that exist right now: rows, bytes per format, digest, when each was generated, and the URL that serves it. Read it before pulling, and re-read it nightly — a day's file is regenerated for three nights after the day (late results, late closing lines) and its digest changes when its rows do. Daily files are Business and above; monthly bundles are Platform and above. Both formats are always present: `format=parquet` (typed columns, snappy) and `format=csv` (gzip).

Requires X-API-Key 0 credits

Request

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

Parameters

NameIn TypeRequired Description
dataset query string no Restrict to one dataset name.

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.

{
  "datasets": [
    {
      "name": "closing_lines",
      "title": "Closing lines",
      "description": "Every bookmaker's last observed price before the jump, one row per runner per book, with the result joined on.",
      "grain": "runner x bookmaker x race",
      "columns": [
        "race_id",
        "runner_key",
        "bookmaker_key",
        "venue",
        "race_number",
        "category",
        "country",
        "start_time",
        "meeting_date_aet",
        "places_paid",
        "runner_name",
        "runner_number",
        "runner_ref",
        "horse_ref",
        "win_price",
        "place_price",
        "finish_position",
        "venue_id",
        "venue_site"
      ],
      "available_from": "2026-08-18",
      "days": [
        {
          "period": "2026-09-24",
          "kind": "day",
          "rows": 31221,
          "generated_at": "2026-09-25T04:31:02Z",
          "bytes": {
            "parquet": 1842104,
            "csv": 4310882
          },
          "sha256": {
            "parquet": "3f1c…",
            "csv": "a07e…"
          },
          "url": "/v1/bulk/closing_lines/2026-09-24"
        }
      ],
      "months": [
        {
          "period": "2026-08",
          "kind": "month",
          "rows": 742118,
          "generated_at": "2026-09-01T04:33:41Z",
          "bytes": {
            "parquet": 41220918,
            "csv": 98551204
          },
          "sha256": {
            "parquet": "b914…",
            "csv": "6c2d…"
          },
          "url": "/v1/bulk/closing_lines/2026-08"
        }
      ]
    }
  ],
  "formats": [
    "parquet",
    "csv"
  ],
  "day_plans": "Business and above",
  "month_plans": "Platform and above",
  "credits": {
    "day": 50,
    "month": 500
  },
  "schedule": "Daily files land by 05:00 AEST; monthly bundles on the 1st.",
  "notes": [
    "Send If-None-Match with a file's sha256 and an unchanged file answers 304 for free."
  ]
}

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.