The flow
Note what happens at the end: the Player authorization callback fires after the launch URL is opened. If that endpoint is not working, the launch URL still returns200 and the game still opens — and then fails to start. When a launch appears to hang, check your /player handler first.
Launching
Get the game slug
From List games, cached. Slugs are stable, human-readable identifiers such as
lucky-duck.Mint a session token
Unique, non-deterministic, valid for at least 2 hours. See Session token.
Request the launch URL
Open it
A new tab or window is the supported path. An iframe works but carries requirements and caveats.
Launch parameters
Opening the game
- New tab — preferred
- Iframe — not recommended
Best compatibility and the best experience on every device.
The popup blocker only allows
window.open during a user gesture. Open the blank tab first, resolve the URL after — the pattern above is the reason this works.Failure modes
404 on the launch URL request
404 on the launch URL request
The slug is unknown or the game is not enabled for your account. Refresh your cached catalogue; if the slug is there and still fails, the game is not provisioned for you — contact integrations.
Launch URL returns 200 but the game will not start
Launch URL returns 200 but the game will not start
Almost always your
/player callback: unreachable, returning a non-200, failing signature verification, or returning a balance in the wrong currency. Check your callback logs for a GET /player around the launch time.The game opens for some players and not others
The game opens for some players and not others
Country restrictions, driven by
ipAddress. Check restrictedCountries on the game in your cached catalogue against where the affected players actually are.The player is bounced back to the lobby mid-session
The player is bounced back to the lobby mid-session
The session token expired or was invalidated. Tokens need at least 2 hours of validity and must survive a client reload. See Session token.