18+ Only  |  Gambling can be addictive — please gamble responsibly  |  Gambling Help: 1800 858 858  |  GambleAware
Next.js odds API

An odds page in Next.js that survives going viral.

Live Australian racing and sports odds in a server component, with the one caching decision that separates a page that handles traffic from one that does not.

Free tier available. REST/JSON odds data for informational and analytical use. Built around Australian bookmaker, sports and racing workflows.

14Racing bookmakers
Sports + racingCoverage
REST/JSONDeveloper ready
FreeTest key

Why developers choose PuntersEdge.

A focused API layer for Australian bookmaker prices, racing data, sport-specific use cases and practical developer workflows.

One call, many visitors

next: { revalidate } or a cached fetch means your credit spend is set by a number you chose, not by how much traffic you get.

Route handlers

Keep the key server-side and expose only the shape your front end needs, rather than proxying the whole API to the browser.

Show prices legally

Displaying odds to end users needs Plus with a 'Prices by PuntersEdge' credit, or Platform without attribution; using the data commercially anywhere else in your business needs Business. Worth settling before launch, not after.

The mistake worth avoiding before you write the fetch

The obvious Next.js odds page fetches on every request. With three visitors that is fine. With three hundred it fails in a nasty way: at a few credits per call, one request per view spends a free month's allowance in a few hundred page views. A link that does well does not slow your site down, it empties your key — and then every visitor gets a 402 at once, including the ones who were already reading.

The fix is one line of Next.js and it is the whole design: revalidate on a timer, not per request. One upstream call every N seconds, shared by every visitor, and traffic is decoupled from spend. A thousand visitors in a minute cost exactly what one visitor costs.

The second decision is what to do when the upstream call fails. Serving the last good snapshot with its age displayed beats serving an error page: a board that is ninety seconds old and says so is worth more than a blank one. Both patterns are in the deployable Cloudflare Worker starter, which is the same design in a different runtime.

  • Server components and route handlers
  • Timer-based revalidation, not per-request fetching
  • Typed responses, so the JSX knows the shape
  • Works on Vercel Edge as well as Node
  • Free API key to build against

Example API calls

npm install puntersedge

// app/odds/page.tsx — a server component.
import { PuntersEdge } from "puntersedge";

// ONE upstream call per minute, shared by every visitor. Without this you are
// billed per page view, and a busy day costs more than a busy month should.
export const revalidate = 60;

export default async function OddsPage() {
  const pe = new PuntersEdge({ apiKey: process.env.PUNTERSEDGE_API_KEY });
  const races = await pe.racing.bestOdds({ numRaces: 6, categories: "horse" });

  return (
    <main>
      {races.map((race) => (
        <section key={race.race_id}>
          <h2>{race.venue} R{race.race_number}</h2>
          {race.runners.map((r) => (
            <div key={r.name}>
              {r.name} — {r.best_win?.price} @ {r.best_win?.bookmaker}
            </div>
          ))}
        </section>
      ))}
    </main>
  );
}

curl "https://api.puntersedge.online/v1/racing/next-to-go?num_races=5" \
  -H "X-API-Key: YOUR_API_KEY"

What you can build with it.

Start with a practical use case, then test the matching endpoint with a free API key.

Odds comparison app

Compare prices across supported Australian bookmakers and surface best available odds.

Sports dashboard

Track AFL, NRL, NBA, tennis, cricket and football prices from one data layer.

Racing widget

Show next-to-go racing markets for horse, greyhound and harness workflows.

Model pipeline

Feed price data into EV calculators, CLV tracking and betting model research.

Australian odds API fit checklist.

The buying decision is simple: does the API cover the local bookmakers, sports and racing workflows your product actually needs?

NeedPuntersEdge focusWhy it matters
AU bookmakers14 on racing; 6 on sportsBetter fit for Australian odds comparison products — and the two panels differ, so it is worth checking which one your product needs.
Local sportsAFL, NRL, NBA, tennis, football, cricketTargets the sports Australian users search for.
RacingHorse, greyhound and harness next-to-go workflowsCritical for Australian betting apps and dashboards.
Developer onboardingExamples, pricing, coverage and a free keyGet from landing page to first call fast.

Common API questions.

Is there a free API key?

Yes. Use the API platform signup form to request a free key and test the sports, racing and best-odds endpoints.

How is PuntersEdge different from broad global odds APIs?

The positioning is Australian-first: local bookmaker intent, AFL/NRL pages, racing workflows and a funnel designed for Australian odds data buyers.

Can I use the data in a commercial dashboard?

Yes, subject to plan terms and data-use limits. Start free, confirm fit, then upgrade for higher credit limits.

Does the API place bets?

No. It provides odds data for informational and analytical products. It is not a gambling execution API.

Start building with Australian odds data.

Get a free API key, test the endpoints and upgrade when your product needs more credits.

18+ context. Data is for informational and analytical use only. Do not use for unlawful betting operations.
This site contains wagering-related analysis and is intended for Australian users aged 18+. Gambling involves risk. Please gamble responsibly.