Player frontend

The whole sportsbook, in one script tag.

It mounts into a div on your page — not an iframe — and carries its own styling. Your brand’s colours come from the backoffice at runtime, so a redesign is a setting rather than a release.

Everything on, sorted the way a bettor thinks

Event list

Live and upcoming side by side, grouped by sport and competition, with the two or three markets you chose as defaults priced right on the card — so the common bet takes one click, not three.

  • Live events first, with the score and the clock as the feed sends them
  • Default markets per sport, configured in the backoffice
  • Prices flash green or red the moment they move
  • Search across competitions and competitors
The event list with live events, default markets and moving prices.
The event list with live events, default markets and moving prices.

Every market on one event

Match view

The full market set for a fixture, grouped and collapsible, with handicaps and totals rendered as a player reads them rather than as the feed keys them.

  • Markets grouped, with the popular ones open by default
  • Handicap, total and competitor names substituted into every label
  • Suspended markets shown as suspended, not quietly missing
  • The same price movement indicators as the list
A single fixture with its full market set.
A single fixture with its full market set.

Where the promise is either kept or broken

Betslip

Singles, multiples and systems, with the stake, the potential return, and — the part most betslips get wrong — an honest account of what happened to the price between opening the slip and pressing the button.

  • Odds tracked against the market, not frozen at selection time
  • A moved price is shown before the bet is sent, not after
  • “Accept changes” means the current price is used, not the old one
  • Refusals explained: expired session, market closed, limit exceeded
  • A held coupon reports back when the trader accepts, refuses or counters
A multiple on the slip: total odds, the stake shortcuts, and the accept-changes choice above the button.
A multiple on the slip: total odds, the stake shortcuts, and the accept-changes choice above the button.

What the player has running

Open bets

The player’s own coupons with their current state, updated as events settle, and cashout offered where your configuration allows it.

  • Open and settled, with each leg’s own result
  • Cashout where enabled, at the commission you set
  • Counter-offers surfaced for acceptance or refusal
A player’s open coupons, with cashout where it is offered.
A player’s open coupons, with cashout where it is offered.

The part nobody demos

What happens when a bet does not go through.

Most of a betslip’s work is the unhappy path, and it is where a player decides whether to trust you. Every refusal here has a message behind it.

The price moved

Shown before the bet is sent. With “accept changes” on, the current price is what gets taken — not the one that was on screen a moment ago.

The market closed

Reported as a closed market, so the player knows to pick something else rather than wondering whether it worked.

The session expired

Told plainly, with a button to reload — rather than a generic failure the player reads as a rejected bet.

Over the limit

The coupon goes to a trader instead of being refused. The player sees it as pending, and hears back either way.

The trader countered

Different odds come back as an offer the player accepts or declines. Nothing is placed until they choose.

The wallet failed

Nothing is taken. The failure is logged per coupon in the backoffice, with an automatic retry and a manual resend behind it.