What's in a Racing Odds Response
The price you can take now, where the market has been, and which bookmaker is quoting it.
Win & Place, Fixed & Tote
Current win and place prices for every runner, one entry per bookmaker and market type. A book quoting both fixed and tote markets appears twice, so you always know which price you are reading.
Market Moves Included
Where a bookmaker publishes it, each quote carries its opening, high and low win prices and up to 20 recent moves, timestamped by the bookmaker. No need to poll and store your own history to see a market shift.
Built for Polling
Just runners and their quotes: no form or statistics to re-download every few seconds. Cached for 5 seconds at the edge, so polling every 5–10 seconds into the jump is cheap on both sides.
The Same Parameters as Race Form
Prices take the date, track and race number you already use for race form and results, so any race you fetch can be priced with the identical query string.
One Request, Every Bookmaker's Price
Pass the date, track and race number and get each runner back with a quote from every bookmaker pricing it. The payload is deliberately small, so a market can be polled every few seconds.
- win and place: the prices on offer now, withheld once a quote goes stale
- open, high and low: the win market's range, where the bookmaker publishes it
- close: the last win price quoted, which becomes the closing price after the jump
- movements: up to 20 recent win-price changes, oldest first
- startingPrice: that bookmaker's own settled price, once published
- stale: true when a quote is older than the freshness allowance
- scratched: withdrawn runners stay in the response, flagged
{
"track": "Gloucester Park",
"raceNumber": 9,
"raceCode": "harness",
"startTime": "2026-08-25T13:36:00Z",
"runners": [
{
"number": 1,
"name": "Fireball Friday",
"scratched": false,
"prices": [
{
"bookmaker": "tab",
"marketType": "fixed",
"win": 8.5,
"place": 2.6,
"open": 12.0,
"high": 12.0,
"low": 8.0,
"movements": [
{ "price": 12.0, "at": "2026-08-25T08:02:11Z" },
{ "price": 9.5, "at": "2026-08-25T09:47:52Z" },
{ "price": 8.5, "at": "2026-08-25T10:16:33Z" }
],
"stale": false
}
]
}
]
}Trimmed for length. The full response also carries the date, country, timezone, runner count and each quote's capture time.
International Racing Odds Coverage
Prices follow the bookmakers FormFav reads rather than any one racing jurisdiction, so coverage is broad: horse, harness and greyhound odds wherever the covered bookmakers are pricing. Each quote is labelled with the bookmaker it came from, and coverage grows as sources are added.
Before the Jump, and After It
Before the market is up
A race that none of the covered bookmakers is pricing yet returns 200 with empty prices arrays, not a 404. "The market is not up yet" is a real answer, and it changes on its own, so keep polling on a slow cadence until quotes appear.
Into the jump
The freshness allowance tightens as the start approaches. Poll every 5–10 seconds through the last few minutes: close to the off the books themselves are read every 3–5 seconds, and a late market can cross a price several times in under a minute.
After the jump
Prices stop moving when a race jumps, and there are no in-running prices. Each quote is then served as stale, with its live win and place prices dropped, while the record stays: open, close, high, low, movements and, once published, that bookmaker's starting price.
Also on Premium
Everything in Pro, plus race day as it happens.
Live scratchings and start times
A scratching or a changed start time reaches race form when it is declared, instead of waiting for the next batch run, so the runners you price are the runners that jump.
Track condition and weather
Going and weather changes update as they are published by the bookmaker sources, instead of waiting for the next batch run.
Real-time results
Positions arrive as races settle, tagged interim or correct weight, with the same prices inline on each result.
Horse racing results API →What People Use Live Odds For
Watch a market move
See where a runner opened, its top and bottom prices and the last moves before the jump, bookmaker by bookmaker.
Set your model against the market
Pro's win and place predictions (beta) give every runner a probability. Compare them with live prices to see where your view and the market's part ways.
Horse racing predictions API →Keep closing prices
Record each bookmaker's closing and starting price next to your own selections, for reviewing your analysis later.
Premium is for personal, non-commercial use. Planning a commercial product? Talk to us first.