18+ Only  |  Gambling can be addictive — please gamble responsibly  |  Gambling Help: 1800 858 858  |  GambleAware
Free · credited · no API key

Free embeddable odds widgets

Drop live Australian odds onto any website, blog or tipping page with one line of HTML. No API key, no signup. Prices refresh every time the frame loads, and a small “Powered by PuntersEdge” credit links back to us. Build your own below, or copy a ready-made preset.

Embed builderLive · refreshes on load
default
Your embed code

      
    

Ready-made presets

Every frame on this page is live right now: what you see is what your readers get. AU racing runs most days of the year. A sport between fixtures shows its quiet panel rather than an error, so the frame never breaks your page.

Next to go, every code

racing · dark · 3 races

The next three AU races across thoroughbreds, greyhounds and harness, with the five shortest runners and the best win price on each.

<iframe src="https://puntersedge.online/widget/racing?limit=3" width="100%" height="560" frameborder="0" loading="lazy" title="Next to go AU racing odds"></iframe>

Greyhounds, light theme

greyhound · light · 2 races

The next two dog races on white, for pages that are not dark. Every widget takes theme=light.

<iframe src="https://puntersedge.online/widget/racing-greyhound?theme=light&limit=2" width="100%" height="400" frameborder="0" loading="lazy" title="Next to go AU greyhound odds"></iframe>

Harness, compact strip

harness · dark · compact · 6 races

One line a race: venue, time to jump, the favourite and its best price. Made for sidebars and headers.

<iframe src="https://puntersedge.online/widget/racing-harness?layout=compact&limit=6" width="100%" height="330" frameborder="0" loading="lazy" title="Next to go AU harness odds"></iframe>

Thoroughbreds in your colour

horse · light · 3 runners · accent

The top three in the market for the next two gallops races, with accent=2660a4 setting the prices and jump times to a brand colour.

<iframe src="https://puntersedge.online/widget/racing-horse?theme=light&runners=3&limit=2&accent=2660a4" width="100%" height="300" frameborder="0" loading="lazy" title="Next to go AU thoroughbred odds"></iframe>

NRL: every book, side by side

nrl · dark · full · 2 matches

Each bookmaker’s price on both sides of the next two matches, with the best of them in the last row. The full comparison table.

<iframe src="https://puntersedge.online/widget/nrl-odds?limit=2" width="100%" height="560" frameborder="0" loading="lazy" title="Live NRL odds"></iframe>

NBA: best price only

nba · light · compact · 4 matches

One line a match: the best price on each side and the book quoting it. The lightest way to show a card.

<iframe src="https://puntersedge.online/widget/nba-odds?layout=compact&theme=light&limit=4" width="100%" height="320" frameborder="0" loading="lazy" title="Live NBA odds"></iframe>

Cricket: one match, your colour

cricket · light · 1 match · accent

The next fixture only, on white, with the best prices in a brand red.

<iframe src="https://puntersedge.online/widget/cricket-odds?theme=light&limit=1&accent=b0372a" width="100%" height="320" frameborder="0" loading="lazy" title="Live Cricket odds"></iframe>

Between fixtures right now: AFL. Its widget shows a quiet “check back near game time” panel until the next round is priced, then fill on its own.

Every option on the URL

Add any of these to a widget URL. The builder above writes them for you.

OptionValuesWhat it does
themedark (default), lightMatches the page the widget sits on.
layoutfull (default), compactCompact is one line a race or match: the favourite and its best price, or the best price on each side.
limit1–12 races (default 4) · 1–20 matches (default 5)How many to show.
runners1–8 (default 5)Runners a race in the full racing layout, shortest price first.
accentsix hex digits, no #The colour of best prices, jump times and the credit link. accent=2660a4.

Example: /widget/nrl-odds?theme=light&layout=compact&limit=3. Set the iframe height to fit, or let the frame set it:

Let the frame set its own height

A fixed height leaves a gap or a scrollbar as the number of races changes. Every widget reports its height to the page around it; this listener applies it. Paste it once, below your iframes.

<script>
addEventListener("message", function (e) {
  if (e.origin !== "https://puntersedge.online" || !e.data || e.data.pe !== "widget-height") return;
  document.querySelectorAll("iframe").forEach(function (f) {
    if (f.contentWindow === e.source) f.style.height = e.data.height + "px";
  });
});
</script>

Every widget URL

Each opens the bare frame, the thing your iframe will show.

Not available as a widget: EPL, A-League — these sports are not currently in the PuntersEdge feed, so their widget would only ever render empty. See the coverage map for what is carried.

White-label widget — Platform

The same live prices with no credit back to us, in your colours, with your bookmaker links. It is the redistribution licence made concrete: the widgets above are ours with your content in them, this one is yours. Available on the Platform plan, which is the only tier licensed to pass our data on to your own users.

1. Create it

curl -s https://api.puntersedge.online/v1/widgets \
  -H "X-API-Key: $PE_KEY" -H "Content-Type: application/json" -d '{
    "label": "homepage next-to-go",
    "config": {
      "theme": {"mode": "light", "bg": "#ffffff", "accent": "#b8860b", "radius": 8},
      "links": {"mode": "template",
                "template": "https://record.affiliate.example/click?pid=1234&url={url}"},
      "allowed_origins": ["https://your-site.example"],
      "defaults": {"categories": ["horse"], "racing_limit": 4},
      "title": "Next to jump"
    }}'

The response carries the widget id, the normalised config and ready-made embed snippets. Only the account’s primary key manages widgets, and an account may hold ten at once.

2. Embed it

<iframe src="https://puntersedge.online/widget/v1/wgt_0123456789abcdef/racing"
        width="100%" height="500" frameborder="0" loading="lazy"
        title="Next to go"></iframe>

Swap racing for racing-greyhound, racing-harness or a sport slug (afl-odds, nrl-odds, nba-odds, cricket-odds, tennis-odds, rugby-union-odds).

Parameters on the URL

  • ?theme=light or dark — overrides the stored theme for this embed
  • ?limit=3 — races (1–12) or matches (1–20) to show
  • ?categories=horse,greyhound — racing only
  • Anything else on the URL is ignored, deliberately: every distinct parameter set is a separate cached fill, so an open-ended parameter surface would be an open-ended bill.

Your bookmaker links

Each runner’s best price links to the book quoting it. links.mode is source (the book’s own race page, as is), none (no links at all), or template — your affiliate URL with {url} where the book’s page goes, percent-encoded, or {url_raw} for a network that wants it plain. A worked example: with

"template": "https://record.affiliate.example/click?pid=1234&url={url}"

a Sportsbet price renders as https://record.affiliate.example/click?pid=1234&url=https%3A%2F%2Fwww.sportsbet.com.au%2F…. Override one book with links.per_bookmaker: {"neds": "none", "tab": "source", "betright": "https://…{url}"}. We append nothing of our own to your links — no tracking parameters, no redirect, no click id.

Locking it to your own site

Set allowed_origins to the origins that may embed it (up to 20, https://host or https://host:port, no path). Enforcement reads the embedding page’s Referer, so that page needs a Referrer-Policy of strict-origin-when-cross-origin (the browser default) or looser — no-referrer sends nothing and the frame is refused. Leave the list empty and any page may embed it.

If your page sets a Content-Security-Policy

Content-Security-Policy: frame-src https://puntersedge.online;

Nothing is needed on our side: the frame already allows any ancestor.

What it costs

Creating and managing widgets is free. A fill — one refresh of the data behind one parameter set — costs 2 credits for racing and 1 for a sports market, and there is at most one fill a minute per parameter set no matter how many people are looking. A page with ten thousand readers costs what a page with one reader costs: about 2,880 credits a day if it is up around the clock. Each widget also carries its own ceiling, max_fills_per_hour (10–600, default 120). The spend appears on your usual usage as /v1/widget/racing and /v1/widget/sports.

If the account runs out of credits, drops below Platform, hits its hourly ceiling or the widget is revoked, the frame renders a neutral “Odds unavailable right now” panel in your colours — never an error, never our name — and an X-Widget-Status header says which it was.

See Platform →

Want the raw data instead of a widget?

The same live feed is available as a REST API — odds, racing, historical & arbitrage across the AU bookmakers we serve. Free tier: 3,000 credits/month.

Get a free API key → See the Odds API

18+ only. Odds shown for information only and may change — confirm with the bookmaker before betting. Gamble responsibly.

This site contains wagering-related analysis and is intended for Australian users aged 18+. Gambling involves risk. Please gamble responsibly.