Public evidence interface

Use the ledger without scraping the website.

Stable JSON, CSV, feed and hash-manifest entry points expose the same official rows used by the public pages. Demo deployments never export sample fixtures as official records.

Published by Football Proof AI · Published · Updated · Deterministic documentation

Version 1 · OpenAPI 1.2.0

Machine-readable endpoints

GET

/api/v1/predictions

Official prediction rows with fixture state, 1X2 probabilities, publication lead time, record hash and latest settlement.

Filters
league, status, from, to, limit (maximum 100)
GET

/api/v1/predictions/{slug}/receipt

One official publication payload, independently reproducible SHA-256 verification and every later settlement correction.

Filters
slug path parameter; use the stable slug returned by the prediction API
GET

/api/v1/predictions/{slug}/neighbours

One official record's publication-time-safe historical probability neighbours, bound to the target SHA-256.

Filters
slug path parameter only; query parameters are rejected
GET

/api/v1/accuracy

Aggregate hit rate, mean Brier, model/league splits and calibration buckets from latest settled events.

Filters
league, month (YYYY-MM)
GET

/api/v1/models

Registered model cards, evaluation coverage, activation state and artifact fingerprints.

Filters
none
GET

/api/v1/ledger-manifest

Sorted prediction hashes and a reproducible SHA-256 manifest root for integrity comparison.

Filters
none

Evidence contract

Fields that establish a prediction’s identity

publishedAt
UTC time when the official probability row was inserted.
leadSeconds
Immutable difference between publication and the scheduled kick-off stored with that row.
modelVersion
Registry version that produced the probability split.
recordSha256
Fingerprint of the canonical published payload.
receipt
Public canonical JSON plus stored and recomputed hashes; the endpoint fails closed rather than certifying a mismatch.
correctionTimeline
Every append-only settlement revision and its provider-payload hash, not only the latest result.
probabilityNeighbours
Up to 12 settled probability shapes selected strictly before publication, linked to the target by its recordSha256.
brier
Three-class squared probability error averaged across home, draw and away.

Historical comparison API

Compare probability shapes without leaking future results.

The neighbour endpoint starts with the same league and model inside a fixed 0.10 Total Variation window, then expands scope and distance deterministically only when needed. Every candidate must have been settled before the target's publishedAt; outcome, hit and Brier score never influence selection. A successful response includes the target recordSha256, the exact as-of boundary, scope, distances, outcome counts and complete selected rows.

GET /api/v1/predictions/home-team-v-away-team-12345/neighbours

This official-only endpoint accepts no query parameters. An official prediction with no eligible history returns 200 with cohort.status = "empty"; an unknown or demo-only slug returns 404, invalid input returns 400, and unavailable evidence returns 503. Read the full probability-neighbour methodology before interpreting a small sample. A complete compatible CSV can also be checked in the browser-only Accuracy Audit Lab.

Request example

Filter without changing the underlying record

GET /api/v1/predictions?league=premier-league&status=upcoming&limit=20
GET /api/v1/predictions/home-team-v-away-team-12345/receipt
GET /api/v1/predictions/home-team-v-away-team-12345/neighbours

Date filters accept ISO-8601 or Unix timestamps. Invalid filters return a structured 400 response; unavailable evidence storage returns 503. Public JSON is cacheable, while write and internal automation routes are excluded from indexing. To verify a receipt independently, apply recursive lexicographic key ordering to canonicalPayload, serialize it as JSON, and compare its SHA-256 with both values in hash.

Citation

How to cite a changing public dataset

Football Proof AI. “Public football prediction ledger.” Retrieved [UTC date], from https://footballproofai.com/accuracy. Integrity root: [manifest SHA-256].

Include the retrieval date because results and corrections are appended over time. Preserve the relevant record hash and manifest root whenever reproducibility matters. See the data provenance and corrections policy.