An in-game sportsbook lets your players bet on real football, basketball, esports and other matches inside your game or app, using a free token balance and never real money: a play-for-fun sportsbook inside your product. With The Sportsbook you embed a web sportsbook (an iframe and a JavaScript SDK) in a page or web view of your app, open a session for each signed-in player from your server, and keep tokens either in our managed balance or in your own balance service through a seamless wallet. The hard rule for studios: that balance is separate, free and never connected to anything players can buy or trade.
Key takeaways
- Real sports give you live content every day: 11 sports, more than a thousand leagues to pick from one by one, pre-match and live.
- It ships as a web embed. In a native app you load it in a web view; we don't ship a native SDK.
- The sportsbook balance must be a separate free token balance: never your purchasable soft currency, never convertible to items (AUP 3.2(f), 3.3, 4.1(d)).
- If you already run a balance service, a seamless wallet lets the sportsbook call it for each movement.
- Branding covers colors, fonts, layout and your token label; no custom CSS.
- Players must be 18+, and the sportsbook must not be aimed at minors.
On this page8 sections
Why real sports work as live content in a game
Live-ops teams spend a lot of effort producing reasons to log in: events, seasons, limited-time modes. Sport produces them without your team lifting a finger. The calendar runs all year across leagues and time zones, and your players already follow some of it.
A sportsbook turns that into something they can do in your product. Pre-match bets give players a reason to come back after the match; live betting, where the plan includes it, gives them a reason to stay during it. Accumulators give the more engaged players something to plan. None of this needs your team to produce content: fixtures, odds, results and settlement come with the platform.
For a studio, the questions are practical. Where does it live? What balance does it use? How does it look? Who can play? The rest of this article takes them in that order.
Where an in-game sportsbook lives: a web page or a web view
The Sportsbook is a web embed. Your server opens a session for the signed-in player with your API key and gets a single-use launch URL that expires after 60 seconds; your page mounts the sportsbook with it.
curl -X POST https://api.thesportsbook.app/b2b/v1/sessions \ -H "Authorization: Bearer $SPORTSBOOK_API_KEY" \ -H "Content-Type: application/json" \ -d '{"user_ref": "viewer-42", "display_name": "Viewer 42", "locale": "en"}'<div data-thesportsbook data-launch-url="LAUNCH_URL_FROM_YOUR_SERVER"></div><script src="https://play.thesportsbook.app/sdk.js"></script>Where you put that page is up to you:
| Surface | How it works | Notes |
|---|---|---|
| Your game's website or companion web app | Embed directly | The simplest option; works on desktop and phones |
| A launcher or client with a built-in browser | Load your page in it | Your own code |
| A native mobile app | Load your page in a web view | Your choice and your code; we don't ship a native SDK |
The layout follows the width of the frame, so in a phone-sized web view the sidebar becomes a drawer and the betslip a bottom sheet. Sessions last 12 hours, and the SDK can swap in a new session without reloading the frame. The iframe integration guide covers the session flow and events in detail.
Use your own player id as user_ref: a pseudonymous identifier, never an email address or a real name. The display name should be the nickname the player chose.
The currency question
This is the section that decides whether the sportsbook fits your game, so it's worth being blunt.
The sportsbook balance can't be your soft currency if players can buy it. Most games have a currency that can be earned by playing and also bought in the store. Even if a player only ever earned theirs, that currency can be bought, so it has monetary value, and converting it into sportsbook tokens is not allowed (AUP 3.2(f)).
The sportsbook balance has to be separate. If you run any other points, currency or items scheme, the sportsbook tokens are their own balance, not convertible to or from that scheme (AUP 3.3). In seamless mode, the balance you connect must be that separate balance.
Nothing comes out of the sportsbook into the game. No in-game items, skins, currencies or points that are sold, can be bought, or can be traded or transferred (AUP 4.1(d)). In most games that's every item worth having, so the working rule is simple: no items as rewards.
What's left is a clean design:
| Allowed | Not allowed |
|---|---|
| An equal starting balance for every player | Tokens bought in your store, or bundled with a purchase |
| A free daily or weekly refill | Tokens as a perk of a paid pass, subscription or VIP tier |
| Tokens for free actions: logging in, finishing a tutorial, attending a free event, at one rate for everyone | Tokens converted from premium or soft currency |
| A season reset | Tokens traded or gifted between players |
| Leaderboards, titles, badges and community roles | Skins, items, loot boxes or currency for top players |
Players must always be able to get enough tokens to keep playing without paying (AUP 3.5). When they run low, the embed shows a "Get more tokens" button; the SDK tells your page through onTokensRequested, and you open your free refill. It must never lead to a store. The free token economy guide goes into starting balances, refills and seasons.
A seamless wallet for your own balance service
If your backend already has a balance service with a ledger, you can keep the sportsbook tokens there as a separate balance type. In seamless mode (the Operator-Held Token Balance) the sportsbook calls three endpoints you host: debit when a bet is placed, credit when it settles, rollback when it's voided or can't be completed. Each call is signed with HMAC-SHA256 and carries an idempotency key you must apply at most once. Placement debits wait up to 6 seconds for your answer, with up to 3 attempts; settlement credits retry up to 20 times.
Seamless is a Custom add-on or included in Full, and your wallet URL and signing secret are configured on our side, so it starts with a conversation through our contact page. The managed mode (the Hosted Token Balance), where we keep a record of each balance and you credit tokens through the API, works on every plan and is usually the faster way to launch. The seamless wallet integration guide covers the protocol, retries and reconciliation.
Branding it like your game
In the console's Studio you can start from one of six presets and change every color, upload your logo and favicon, set the corner radius, and choose sidebar or top bar navigation, list or grid match cards and a floating or docked betslip. On paid plans you also get 18 Google Fonts or your own font files (useful if your game has a display typeface), a separate heading font, density and odds button style. The Studio checks text and odds colors against WCAG AA before you save.
Name your tokens with your game's own word, shown before or after the amount. Currency symbols and codes aren't allowed as labels. There's no custom CSS and no custom domain today: the sportsbook loads from play.thesportsbook.app inside your page. The white-label sportsbook branding walkthrough shows each option.
Age: 18+ players only, not aimed at minors
This is the point where game studios have to be most careful. Only people aged 18 or over may play, or the higher age that applies where the player is (AUP 7.1). You must use age-assurance measures that fit your audience and the law where your players are. And you must not direct the sportsbook, or any marketing for it, at minors, or use content, characters or placements likely to appeal particularly to under-18s (AUP 7.2).
In practice:
- If your game is rated for, or popular with, younger players, put the sportsbook behind your own age check, and think hard about whether it belongs in that product at all.
- Don't promote the sportsbook with your game's mascot or characters aimed at a young audience.
- Keep the sportsbook out of onboarding flows that minors go through.
Rules on simulated betting differ between countries and platforms, and app stores have their own policies. Check the rules where your players are and those of the stores you publish on, and take advice from a lawyer in your jurisdiction. We describe our own rules in the acceptable use and play-for-fun policy; we can't tell you what your local rules require.
Plans and next steps
The Free plan (one sport, up to 3 leagues, pre-match, up to 250 monthly active players, no time limit today) is enough to prototype inside a build. Custom starts at $49 a month ($39 billed yearly) with add-ons for more sports, league packs, live betting, the 2D match viewer and the seamless wallet; Full is $490 a month ($399 billed yearly) with everything, at the time of writing (September 2026). See pricing.
If you're weighing whether a play-for-fun model fits your game, start with what a play-for-fun sportsbook is. If you want to talk through your balance design, web view setup or age gating with us, request a walkthrough; the integration docs (opens in a new tab) are public if your engineers want to read first.
Frequently asked questions
Can players use my game's premium currency to bet in the sportsbook?
No. The sportsbook balance has to be a separate free token balance. It can't be filled from a currency players can buy, and it can't be converted into that currency, items or anything else that can be bought, sold or traded. Tokens stay worthless in both directions.
Is there a native iOS or Android SDK?
No. The Sportsbook ships a web embed: an iframe plus a JavaScript SDK. Studios that want it inside a native app load that page in a web view, which is their own choice and their own code. The layout adapts to the width it gets.
Can the top players get in-game items or skins?
No. Items that are sold or can be bought, sold, traded or transferred are exactly what the rules exclude. Keep recognition to leaderboard positions, titles, badges and community roles that have no value and can't be exchanged for anything that has.
What if my game has players under 18?
The sportsbook is for players aged 18 or over, and it must not be directed at minors. If your audience includes minors, you need age assurance that keeps them out of the sportsbook, and you should consider whether it fits your game at all.
Written by
The Sportsbook team
The people who build The Sportsbook. We have spent seven years building sportsbook software, and we write these guides from that work.
Last updated .