Credits reset on the 1st of each month at 00:00 UTC and do not roll over. Cancel anytime.
Trusted by 354 developers754,000+ API requests served55+ paying builders & teams
I was skeptical the odds would be refreshed often enough to be useful. They were updated well within the timeframes I needed, and I'm refreshing the markets multiple times per minute.
I was unsure whether a relatively new API would have the coverage and consistency to build on across full Australian race cards. The breadth was better than I expected, and having acceptances, results, horse data and market data through the one API has been worth more than any single endpoint. There have been gaps, but they have been visible rather than hidden, and genuine issues have been investigated and fixed rather than brushed off.
My main concern was whether the API data would reconcile reliably enough with the other racing data First4 Pro uses, because a silent mismatch could contaminate the analysis. In one validation run First4 Pro matched all 41 active runners across five races with no ambiguous matches.
My main question was whether the data would have enough depth, granularity and stable identifiers to build a proper quantitative racing and backtesting platform around it, rather than simply being another odds and results feed. It's been much more comprehensive than I initially expected. The permanent price-path history is the standout: following price changes by bookmaker and linking them through runner_ref to results, closing lines and horse form is particularly useful for the type of quantitative research I'm building.
RaceVision uses PuntersEdge data across its Australian racing platform, including automated race results and historical market data.
Standard — $290/yr AUD billed annually, 75,000 credits a month
That is one next-to-go call a minute across the full 11-hour Australian card, every day of the month (39,600 of 75,000 credits). Ten months' money for twelve months of service: $24.17/mo against $29/mo, with credits still resetting every month. Annual is for new subscriptions — if you already pay monthly, reply to any email from us and we will move you across by hand.
$0/mo AUD
3,000 credits/month
30 requests/minute
Explore and prototype
25 hours of once-a-minute next-to-go polling
$9/mo AUD
7,500 credits/month
60 requests/minute
Past the free cap, not yet production
62.5 hours of once-a-minute next-to-go polling
$29/mo AUD
or $290/yr — two months free ↓
75,000 credits/month
200 requests/minute
Production access for personal models, research and apps
one next-to-go call a minute across the full 11-hour Australian card, every day of the month (39,600 of 75,000 credits)
$49/mo AUD
or $490/yr — two months free ↓
140,000 credits/month
500 requests/minute
The permanent archive, bulk exports and CLV scoring, for model builders
round-the-clock next-to-go polling — one call every 37.0 s, 24/7, all month
$99/mo AUD
or $990/yr — two months free ↓
300,000 credits/month
750 requests/minute
Commercial use, across your whole business
round-the-clock next-to-go polling — one call every 17.3 s, 24/7, all month
$199/mo AUD
or $1,990/yr — two months free ↓
1.5M credits/month
1,000 requests/minute
Redistribute our data inside your own product
round-the-clock next-to-go polling — one call every 3.5 s, 24/7, all month
$249/mo AUD
or $2,490/yr — two months free ↓
5M credits/month
2,000 requests/minute
High-volume, for use inside your own systems
round-the-clock next-to-go polling — one call every 1.0 s, 24/7, all month
Polling figures assume one /v1/racing/next-to-go call a minute, which costs
2 credits. Polling twice a minute costs twice as much: at a 30-second interval Racing covers 5.6 hours a day, not the full card.
The Australian card runs about 11 hours a day
(12:00–23:00 AEST), measured across a week of race start times.
Free keys are activated by clicking a verification link before the key will authenticate.
Pick what you'll poll and how often. Costs and plan sizes below are read live from the API — nothing here is typed in.
Estimates one polling loop against one endpoint. Extra endpoints add their own cost per call — the table above lists every endpoint's price. Credits reset on the 1st of each month.
Pay for ten months and get twelve, on any paid plan. Same credits every month, same key, billed once a year in AUD. Already subscribe monthly? Reply to any email from us and we will move you across by hand and credit what you have paid for this period — do not buy a second subscription here.
$90/yr AUD
7,500 credits/month
Works out at $7.50/mo
Save $18 against $9/mo
$290/yr AUD
75,000 credits/month
Works out at $24.17/mo
Save $58 against $29/mo
$490/yr AUD
140,000 credits/month
Works out at $40.83/mo
Save $98 against $49/mo
$990/yr AUD
300,000 credits/month
Works out at $82.50/mo
Save $198 against $99/mo
$1,990/yr AUD
1.5M credits/month
Works out at $165.83/mo
Save $398 against $199/mo
$2,490/yr AUD
5M credits/month
Works out at $207.50/mo
Save $498 against $249/mo
Credits reset every month on an annual plan exactly as they do on a monthly one. Paying yearly buys twelve of those months for the price of ten; it does not pool a year of credits into one bucket.
402 Payment Required with an RFC 7807 problem body, and there is no surprise invoice.402 at the ceiling says so. It is on by default for keys created from 22 September 2026, off for older keys, and POST /v1/billing/overage switches it either way.X-Upgrade-Plan, X-Upgrade-Credits, X-Upgrade-Price-AUD, X-Upgrade-Url and a Link: <…>; rel="payment" header, sized against how fast you were actually burning credits — not just against the cap you hit.X-Credits-Remaining, so a client can back off or alert before it is refused rather than discovering the ceiling by hitting it.| Endpoint | Cost | Notes |
|---|---|---|
| GET /v1/sports | 1 credit | List all active sports |
| GET /v1/sports/{key}/odds | 1 credit per market type (max 3) | One credit per market type requested; duplicates and unknown markets are rejected before billing |
| GET /v1/best-odds/{key} | 3 credits | Best price + arb detection across all bookmakers |
| GET /v1/racing/next-to-go | 2 / 3 / 4 credits | Next 1–50 races across horse/greyhound/harness |
| GET /v1/racing/best-odds | 3 credits | Best win/place price per runner, book vs book |
| GET /v1/racing/markets | 2 credits | One race, every market: win, place and Same Race Multi Top 2/3/4 per bookmaker with each book’s market percentage and the best price per runner, plus the settled exotic dividends once the race has been run Plus, Business, Platform and Scale only — 403 on Free, Hobby and Standard. Standard keys issued before 20 September 2026 keep it. |
| GET /v1/racing/form | 3 credits | Every runner in one race with its recent runs from our own settled results, in one call: the field’s form as at the jump, never dependent on a third-party page |
| GET /v1/racing/results | 2 credits | Settled finishing order, deductions |
| GET /v1/racing/movers | 3 credits | Steamers and drifters, per book |
| GET /v1/racing/price-history | 5 credits | Every price move for a race, per runner per book |
| GET /v1/racing/closing-lines | 5 credits (JSON) / 20 credits (CSV) | Permanent closing-line and result archive; CSV is a bulk export. Standard: rolling 90-day window. Plus, Business, Platform and Scale: full archive. 403 on Free and Hobby. Standard keys issued before 20 September 2026 keep the full archive. |
| GET /v1/racing/closing-lines/coverage | 1 credit | What the archive actually holds, measured at request time. Same plan gate as the archive — 403 on Free and Hobby. The figures describe the whole archive, not your clamped window. |
| GET /v1/bulk/{dataset}/{period} | 20 credits per daily file / 100 per monthly bundle | One pre-built file per dataset per Sydney day or calendar month: closing lines, price paths, results, acceptances, track conditions. Parquet or gzip CSV. The catalogue at /v1/bulk/datasets is free Daily files: Business, Platform and Scale. Monthly bundles: Platform and Scale. 403 on Free, Hobby, Standard and Plus. |
| GET /v1/sports/{key}/odds/history | 5 credits | Standard, Plus, Business, Platform and Scale only — 403 on Free and Hobby. |
| GET /v1/sports/{key}/odds/movements | 5 credits | Standard, Plus, Business, Platform and Scale only — 403 on Free and Hobby. |
| GET /v1/sports/{key}/closing-lines | 5 credits | Each bookmaker's closing price and line on every match in a date range, with the consensus across books |
| GET /v1/data-quality/summary | 1 credit | Connector freshness and audit status |
| POST/GET/PATCH/DELETE /v1/widgets | 0 credits | Create and manage white-label odds widgets — your colours, your bookmaker links, no PuntersEdge credit. Managing them is free; each metered fill of an embedded widget costs 2 credits (racing) or 1 (a sports market), at most one per minute per parameter set however many people are looking at the page Platform only — the redistribution licence — 403 on Free, Hobby, Standard, Plus, Business and Scale. |
| GET /v1/usage | 0 credits | Free to check your usage |
| GET /v1/health | 0 credits | Service health check |
| GET /v1/arb/best-prices | 2 credits | Best prices comparison |
| GET /v1/arb/lines | 3 credits | Spreads/totals line arb |
| GET /v1/arb/sports | 3 credits | Sports arb scanner |
| GET /v1/data-quality/audit/latest | 1 credit | Latest bookmaker audits |
| GET /v1/health/connectors | 1 credit | Per-connector freshness |
| GET /v1/racing/acceptances | 2 credits | Full-day AU thoroughbred acceptance card: every meeting, race and runner |
| GET /v1/racing/changes | 2 credits | Races and prices that changed since a timestamp |
| GET /v1/racing/events | 1 credit | Upcoming race list |
| GET /v1/racing/greyhounds/form | 3 credits | Greyhound form history for one dog, from our own results |
| GET /v1/racing/greyhounds/stats | 3 credits | Greyhound record by track, distance, box or grade, from our own results |
| GET /v1/racing/horses/form | 3 credits | Thoroughbred form, career record and profile for one horse |
| GET /v1/racing/horses/runs | 3 credits | One thoroughbred's runs in our own settled results |
| GET /v1/racing/jockeys/stats | 2 credits | Jockey premiership leaderboards and lookup |
| GET /v1/racing/price-paths | 5 / 20 credits | Bulk export of the permanent price-movement archive Plus, Business, Platform and Scale only — 403 on Free, Hobby and Standard. Standard keys issued before 20 September 2026 keep it. |
| GET /v1/racing/results/coverage | 1 credit | What the results field coverage actually is |
| GET /v1/racing/track-conditions | 1 credit | Track condition, weather and rail: current state and today's change log |
| GET /v1/racing/trainers/stats | 2 credits | Trainer premiership leaderboards and lookup |
| GET /v1/racing/venues | 1 credit | Canonical venue directory |
| POST /v1/racing/clv | 5 credits | Score bets against the closing line (CLV) Plus, Business, Platform and Scale only — 403 on Free, Hobby and Standard. |
| POST /v1/racing/horses/backfill | 3 credits | Queue a batch of horses for paced form collection Plus, Business, Platform and Scale only — 403 on Free, Hobby and Standard. |
In practice one row dominates. Measured over the trailing 30 days to 2026-10-01, /v1/racing/next-to-go is 53.7% of all billed calls and 53.0% of all credits spent. It bills a flat 2 credits or 3 credits or 4 credits a call. Size your plan on that endpoint and the rest is rounding.
One credit = one unit of API consumption. Endpoints cost 0–100 credits per call — see the table above, and note the ceiling is a bulk CSV export of the closing-line archive, not a routine read. Your monthly allocation resets on the 1st of each calendar month at 00:00 UTC, not on your subscription anniversary.
No. Credits reset on the 1st of each calendar month at 00:00 UTC. Unused credits are not carried forward.
Upgrades are immediate. Pay and your existing key is upgraded in place — same key string, new plan, new allowance, nothing to redeploy. To change or cancel a subscription, use the Stripe billing portal linked from your account page.
You pay only the difference. Upgrading part-way through a billing period charges the new plan for the days left in it, minus a credit for the unused days you had already paid for on the old one — that is the whole charge today. Your billing date does not move; the full new price starts on your normal renewal date. The bigger allowance applies immediately, and your API key does not change.
Calls return 402 Payment Required until the 1st of the next month. On Business and Platform with overage switched on, calls keep working past the allowance and the 402 comes at the overage ceiling instead. On every other plan, and whenever overage is off, you are refused and never billed for the overflow. The 402 body and its X-Upgrade-* headers name the tier that would have covered you, sized against your measured burn rate, and link straight to it. Every billed response also carries X-Credits-Remaining so you can back off before you get there.
Overage, on Business and Platform only. Those two plans keep serving past the monthly allowance at A$0.60 per 1,000 credits (Business) and A$0.30 (Platform), capped at 50% over — at most A$90 and A$225 on top of the plan, invoiced with your next payment. It is on by default for keys created from 22 September 2026 and off for every key issued before then. There is no top-up product, and on every other plan the cap is a hard stop, not a surcharge — moving up a tier is cheaper per credit than overage.
Your calls keep working, up to a ceiling you know in advance. Business runs 150,000 credits past its 300,000 allowance and Platform 750,000 past its 1,500,000 — half the plan either way — billed at A$0.60 and A$0.30 per 1,000 credits, rounded up to whole thousands, on your next invoice. That is A$90 and A$225 at the very most: the ceiling is the promise, so there is no bill you did not see coming. Every response past the allowance carries X-Credits-Overage and X-Credits-Overage-Ceiling, and at the ceiling the 402 names it. GET /v1/billing/overage shows the state, the rate, the ceiling and what this period has run over; POST the same path switches it off and the hard stop comes back immediately.
Yes, on every paid plan. An annual plan costs ten months’ money for twelve months of service, so Standard is $290 a year instead of $348. Credits reset every month exactly as they do on a monthly plan — paying yearly buys twelve of those months for the price of ten, it does not pool a year of credits into one bucket. Pick a plan from the annual row above. If you already subscribe monthly, do not buy an annual plan here: reply to any email from us and we will move you across by hand and credit what you have already paid for the current period.
Yes, on Platform. The free widget at /widgets is available to everyone and carries a small “Powered by PuntersEdge” credit. The white-label widget on Platform does not: it renders in your colours, with your own bookmaker or affiliate links, and nothing on the frame names us. Create one with POST /v1/widgets and embed the iframe it hands back. Managing widgets is free; each metered fill costs 2 credits for racing or 1 for a sports market, and there is at most one fill a minute per parameter set however many people are viewing the page. It is the redistribution licence in practice, which is why it is Platform rather than simply the dearest plan — Scale sells volume for use inside your own systems. How it works →
The model-builder set: the permanent closing-line archive (Standard reads a rolling 90-day window), the bulk price-path export in CSV and Parquet, POST /v1/racing/clv closing-line value scoring, the race markets view at GET /v1/racing/markets — win, place and Same Race Multi Top 2/3/4 per bookmaker with each book’s market percentage, and the settled exotic dividends once a race has been run — paced form backfill, webhooks and runner-level betslip deep links (Unibet, TAB, Ladbrokes and Neds) — plus the licence to show our odds to your own users with a credit. Business adds the commercial licence, IP whitelisting, priority support and daily bulk dataset files: one pre-built Parquet or CSV file per dataset per day (closing lines, price paths, results, acceptances, track conditions, race markets, exotic dividends) from /v1/bulk. Platform adds the redistribution licence and monthly dataset bundles. Business and above also hold several API keys on one credit pool — 3 on Business, 5 on Platform, 10 on Scale — minted and revoked from /v1/keys/team, each with its own rate limit, IP whitelist and usage line. Each of those keys can also carry its own monthly credit cap inside the pool — set it when you mint the key, or later with PATCH /v1/keys/team/{key_id} — so one client, worker or trial refuses at its own limit instead of spending the account's month. Standard keys issued before 20 September 2026 keep the archive, the export and webhooks they were sold and also have the race markets view, and Standard and Hobby keys issued before 21 September 2026 keep the betslip links.
Work it out from one number. /v1/racing/next-to-go costs 2 credits. Polling it once a minute across the whole Australian card — about 11 hours a day — is 39,600 credits a month, which is what the Standard plan is sized for. Poll every 30 seconds instead and you need twice that. If you only poll during one meeting, or only when a race is close to jumping, the free tier or Hobby will hold you for a long time.
Yes, on two axes. The free tier has 3,000 credits per month and a hard limit of 30 requests per minute. Go over it and you get a 429 with Retry-After: 60; the window is a rolling 60 seconds per API key, not a clock minute. Paid tiers raise it — Hobby 60/min, Standard 200/min, Plus 500/min, Business 750/min, Platform 1,000/min, Scale 2,000/min.
Yes. For custom credit limits, a contract or SLA, or dedicated infrastructure, tell us what you are building and a human replies. The prices on this page apply to every self-serve tier; enterprise terms are agreed in writing.
Four licences, and each adds to the ones above it. Your plan decides which one you hold.
Plus and Business are different permissions, not different sizes of the same one. Plus lets you SHOW our prices in one product, and carries the commercial permission that product needs. Business lets you USE the data anywhere in your business, whether or not a price is ever displayed.
Already a customer? If your key existed on 15 September 2026 you keep the licence published on 8 September 2026 — commercial use inside your own systems, on whatever plan you hold. It is attached to the key and survives a plan change. Nothing you are already doing needs an upgrade.
All four are set out in section 8 of the Terms. If your case does not fit them, email us and we will put it in writing.
The API is for informational and data use only. It may not be used to facilitate illegal gambling, unlicensed operators, or services prohibited under Australian law. See the API platform page for full terms.
Tell me. Plans are shaped by what people actually ask for, and a use case that doesn't fit an existing tier is the most useful thing you can send. Describe it on the requests page and it goes straight to the person who sets the pricing.