Get the devlog by email
One email a week, only when an issue is published. Nothing else goes to this list, and every email carries a one-click unsubscribe.
Prefer a reader? JSON Feed · RSS
Issue #7
This covers Thursday to Monday afternoon. Your API account can now have a password. A new page publishes every data-quality measurement we make, recomputed from production. Horse form answers from our own results when Racing Australia does not, and horse history now reaches back before our own results began. BetDeluxe prices come straight from the racecard its race page shows. The closing-line archive flags scratched runners, Plus and Business rate limits went up, yearly subscribers upgrade on the yearly price, and the race markets endpoint has its first paying callers.
A password for your account
- Log in with an email and a password at puntersedge.online/login, or with the emailed one-time link as before. Set or change the password in the key console. A forgotten password sends a single-use link that lasts 30 minutes, and a reset signs every other device out. You can also set one when you request a free key on the API page.
- The console shows your account. Whether a password is set and whether billing is attached, beside your usage;
/v1/usage carries the same two fields.
Data quality, in public
- puntersedge.online/data-quality is live. Every data-quality measurement we make, on one page, recomputed from production: racing coverage and how recently we read each bookmaker, results completeness by code and source, the closing-line archive's own quality flags, the sports cross-book price check, and API uptime. On Monday, 97.3% of the week's races that have a results source were settled. The same figures are available as JSON at
/data-quality.json. - Your first call is Australian. Every first example now filters next-to-go to
country=AU, so the first races you see carry the full Australian bookmaker panel. The verification page also has a Run it here button that makes the first call for you and shows each race, how many books quote it and the best price per runner, which works on a phone. - Tutorials and the API reference link each other. Each tutorial links the reference page of every endpoint it calls, and each reference page lists the guides that call it.
Horse form from our own results
/v1/racing/horses/form answers from our own settled results when Racing Australia does not. The answer is labelled for what it is: source.feed is puntersedge_results, the note says what the runs cover, and the career and profile fields stay empty because only Racing Australia has them. Racing Australia's full page is served whenever it answers./v1/racing/horses/runs reaches back before our own results began. History is collected from Racing Australia's published results pages: 803 runs so far, for 12 to 14 August, joined to our own results from 15 August. Each run says where it came from, results or history, and coverage_from is read from the data.
Racing data and the archive
- BetDeluxe prices come from the racecard the BetDeluxe race page renders, from Monday 28 September. Checked against the live page, every runner matched on win and place. The closing-line archive holds BetDeluxe closes from 28 September.
- Scratched runners are flagged in the closing-line archive.
/v1/racing/closing-lines leaves them out unless you pass include_scratched=true; price paths keep them with the flag; closing line value scores a scratched runner with reason=runner_scratched. The flag is a new last column, so positional readers are unaffected. - Race markets has its first paying callers: 332 calls since Thursday from three paying keys. Standard keys bought before 20 September include the race markets view.
- Unibet now prices races further ahead in the day, since early Friday. At 1pm on Monday it was pricing 165 upcoming Australian races against TAB's 177.
- Venue matching. Riverina Paceway (Wagga harness), Phar Lap Raceway in New Zealand and Fannie Bay in Darwin now resolve to one meeting across every book, so each race appears once and its result joins to it.
Plans and billing
- Plus now allows 500 requests a minute and Business 750. They were 250 and 300. It applies to every key on those plans already; nothing to do.
- Yearly subscribers upgrade on the yearly price. An upgrade moves you to the same tier's yearly price and charges only the difference for the rest of your year; the renewal date does not move.
Plumbing
- A mistyped email address is caught at signup. An address at a misspelt provider or a domain that cannot receive mail gets a did-you-mean answer, so your key goes to an inbox that exists.
- Every API operation that returns JSON has a documented example response in the reference and the OpenAPI document, including team keys, widgets, closing line value and race markets.
Still open
- Horse form history before 15 August is collected a little at a time from Racing Australia's published results.
- MCP 0.4.0 is built; PyPI still serves 0.3.0. The Node client is 1.2.1 on npm.
- Asked this week, not built yet: final scores to settle sports bets; a decade of quadrella dividends; AFLW line history from TAB; results for racing outside Australia and New Zealand.
Reply with anything you want on the list. Requests from people building on the API are the ones that get built first. Write to hamish@punters-edge.com or use the feature request form.