1. Check freshness
Start with the race source timestamp and completeness score.
Documentation
A practical reference for reading an analysis, understanding freshness, managing an account, and consuming derived prediction records.
Start with the race source timestamp and completeness score.
Treat fair odds as the reciprocal of an estimate, not a promised market truth.
Open the cited runner fields and uncertainty before considering the market gap.
For the full generation and validation contract, see the methodology reference.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/races?date=®ion= | Normalized race index and freshness |
| GET | /api/races/{id} | Racecard, runners, form summary, and permitted prices |
| POST | /api/analyses | Authenticated custom analysis request |
| GET | /api/analyses/{id} | Immutable analysis and uncertainty record |
| GET | /api/results | Public settled prediction ledger |
| POST | /api/checkout | Subscription Checkout session |
| GET | /api/v1/predictions | Syndicate derived-prediction API |
| POST / DELETE | /api/v1/keys | Create or revoke a hashed Syndicate API key |
| GET | /api/exports/predictions | Derived CSV export for Syndicate accounts |
Send a generated API key as Authorization: Bearer to_…. Keys are shown once, stored only as SHA-256 hashes, and rejected immediately after revocation or entitlement loss.
The Syndicate interface exposes derived platform records only. It is not a substitute for a licensed racing-data feed.
Public list endpoints may return an empty array when no provider-backed records exist. Protected routes use explicit error codes including UNAUTHORIZED, FORBIDDEN, ANALYSIS_QUOTA_EXCEEDED, and SERVICE_NOT_CONFIGURED.