The market consensus on one race: margin-free probability per runner
Cost: 3 credits. The market's consensus on one race while its market is open: for every runner, the implied probability after each book's margin is removed and the books are combined, the price that probability corresponds to, the median, mean, best and worst price, and how far the best available price sits from the consensus. The inputs are printed beside the answer — which books were counted, which were left out and why.
Naming the race. race_id from /v1/racing/next-to-go or /v1/racing/events is exact. Failing that, venue + meeting_date (the AET meeting date) + race_number, with country when two meetings share the name on one date (Ascot in Perth and in Berkshire on 2026-10-17); two races still sharing those answer 409 race_ambiguous, naming each, and cost nothing.
How the number is made. Each included book's win prices on the field are turned into implied probabilities (1 / price) and its margin removed — power (default) raises them to the exponent that makes them sum to one, at most 1.25 (a book that needs more, usually one with a very short favourite, has the rest divided out in proportion), and multiplicative divides them by their sum — so every book contributes a field that sums to 1. The consensus for a runner is the MEDIAN of those per-book probabilities, and the medians are scaled once so the field sums to 1 again; market.consensus_sum_before_normalisation shows how far from 1 they were before scaling. Every included book counts once. Nothing is weighted by an opinion of which book is sharp.
Which books count. A book is included when it is visible to you (the exchange and the non-Australian reference books are withheld here as on every racing endpoint), its quote is inside its refresh-tier threshold (the same per-book rule next-to-go publishes: 120 s inside three hours of the jump, 1800 s on the morning card, with Betr and NextBet on their own horizons), and it prices the complete field — market.field_size is the number of runners a complete-field book quotes, and a book pricing fewer is partial_field. Placeholder prices are dropped quote by quote on the rule /v1/racing/best-odds applies (a long price at least four times the median of three or more other books) and listed in excluded_quotes. Scratched runners are dropped and listed under scratchings.
Reading consensus_prob. It is the market's implied probability after margin, not a probability of winning and not a fair price. best_vs_consensus_pct is best_price / consensus_price − 1: negative is normal, because every quoted price carries margin and the best quote usually sits below the panel's margin-free price (about −20 % on a 130 % greyhound market); it turns positive only when one book prices a runner above the panel's margin-free view. It says where the best quote sits, nothing more. The fields a reader would use to judge how much to trust a figure — books, the spread, the ages, secs_to_jump — are separate on purpose; there is no single confidence score.
Live only. The consensus is read from the open market. A race that has left the live board answers 404; the consensus at the close will arrive as columns on the permanent archive, where it belongs. A race inside the ten minutes after its jump is still served (status: jumped) while the books drop off, with a note.
Every plan, Free included. 3 credits, charged after the race is found; a race we cannot find, an unparseable parameter and an unknown bookmaker key are free.
Request
- Base URL: https://api.puntersedge.online
- URL: https://api.puntersedge.online/v1/racing/consensus
- Auth: API key in header X-API-Key
Query parameters
The race_id from /v1/racing/next-to-go or /events. The primary form; use venue + meeting_date + race_number only when you do not hold it.
Venue name as the feeds spell it (case-insensitive). Needs meeting_date and race_number.
AET meeting date, YYYY-MM-DD.
Alpha-2 country of the meeting (AU, NZ, GB, IE, ZA, ...). Only needed with venue when two meetings share the name on one AET date — Ascot (Perth) and Ascot (Berkshire) on 17 October 2026 — and the 409 names each candidate's country.
How each book's margin is removed before the books are combined. power (default) raises the implied probabilities to the exponent that makes them sum to one, at most 1.25 (past it the rest of the margin is divided out in proportion), which takes more margin off the longshots and is calibrated across the price range. multiplicative divides them by their sum and reproduces from the published overround.
Comma-separated bookmaker keys to build the consensus from. Omit for every visible book.
Included books a runner needs before it carries a consensus probability.
Count books whose quote is older than their refresh-tier threshold. Off by default; they are listed under books_excluded with reason stale.
Headers
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.