---
title: "Bulk dataset catalogue"
method: GET
path: "/v1/bulk/datasets"
tags: ["Bulk data"]
---

# Bulk dataset catalogue

`GET /v1/bulk/datasets`

## Request

- Base URL: `https://api.puntersedge.online`
- URL: `https://api.puntersedge.online/v1/bulk/datasets`
- Auth: API key in header `X-API-Key`

Cost: 0 credits. 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).

## Query parameters

- `dataset` string, nullable: Restrict to one dataset name.

## Headers

- `X-API-Key` string
- `X-RapidAPI-Proxy-Secret` string

## Response `200`

Successful Response

- BulkCatalogueOut
  - `datasets` BulkDatasetOut[], required
    - `name` string, required
    - `title` string, required
    - `description` string, required
    - `grain` string, required
    - `schema_version` integer, nullable: Bumped whenever the dataset's columns change. Compare it with the value your loader was written against.
    - `dataset_version` string, nullable: Date of the last change to the rules that decide this dataset's rows or values. Files generated before that date were made under the earlier rules.
    - `source_notes` string[]: What is withheld, quarantined or flagged in this dataset, and why.
    - `columns` string[]: Column order of every file in this dataset, read from the newest file's sidecar.
    - `available_from` string, required
    - `days` BulkFileOut[]: Daily files, oldest first. Business and above.
      - `period` string, required
      - `kind` string, required: day (YYYY-MM-DD, Sydney meeting date) or month (YYYY-MM).
      - `rows` integer, nullable
      - `generated_at` string, nullable
      - `bytes` object: Size per format: parquet, csv (gzip).
      - `sha256` object: Digest per format; also the ETag.
      - `url` string, required
      - `schema_version` integer, nullable: The column-set version this file was written under. Null on files written before versioning began (2026-10-13).
      - `dataset_version` string, nullable: The rules date this file was written under (see the dataset's dataset_version).
      - `restatements` integer: How many times this file has changed after it was first published; /v1/bulk/restatements lists each one with its reason.
    - `months` BulkFileOut[]: Monthly bundles, oldest first. Platform and above.
      - `period` string, required
      - `kind` string, required: day (YYYY-MM-DD, Sydney meeting date) or month (YYYY-MM).
      - `rows` integer, nullable
      - `generated_at` string, nullable
      - `bytes` object: Size per format: parquet, csv (gzip).
      - `sha256` object: Digest per format; also the ETag.
      - `url` string, required
      - `schema_version` integer, nullable: The column-set version this file was written under. Null on files written before versioning began (2026-10-13).
      - `dataset_version` string, nullable: The rules date this file was written under (see the dataset's dataset_version).
      - `restatements` integer: How many times this file has changed after it was first published; /v1/bulk/restatements lists each one with its reason.
  - `formats` string[]
  - `day_plans` string, required
  - `month_plans` string, required
  - `credits` object, required
  - `schedule` string, required
  - `notes` string[]

## Other responses

- `401`: Missing or invalid API key. Send `X-API-Key`. See https://puntersedge.online/developers/errors
- `402`: Monthly credit allowance exhausted for this plan. Upgrade at https://puntersedge.online/api/pricing
- `403`: Bulk dataset files are available on Business, Platform, Scale and Enterprise plans only.
- `422`: Validation Error
- `429`: Rate limit exceeded for this plan. Honour the `Retry-After` header (seconds) before retrying. See https://puntersedge.online/developers/rate-limits
- `500`: Unexpected server error. Safe to retry with backoff.

---

[API](https://skmtc.dev/puntersedge/apis/puntersedge-odds-api.md) · [All operations](https://skmtc.dev/puntersedge/apis/puntersedge-odds-api/llms.txt) · [OpenAPI document](https://skmtc.dev/puntersedge/apis/puntersedge-odds-api/revisions/f35b6aab1946?raw)
