Every tile is the actual matchmaking pool — same session API, same webhook, different game.
A tenant gets a live key and a test key. A session is one game, scoped to one tenant — the unit everything hangs off: matchmaking, bots, results, webhooks.
Requires bg_live_. Real user IDs. Tenant-isolated matchmaking. Webhooks fire.
Requires bg_test_. Real user IDs, tenant-isolated — no webhooks, safe for CI.
Requires bg_live_. Server-generated player IDs. Cross-tenant practice pool.
Register as a partner, receive live and test keys instantly.
POST to /api/v1/sessions from your backend with your player IDs.
Pass the session token to your frontend — iframe or React SDK.
A signed webhook lands on your server the moment the game ends.
From your backend — your API key never touches the browser. Everything after this is the response you already saw.
const res = await fetch('https://api.bhetagamer.com/v1/sessions', {method: 'POST',headers: {'Authorization': 'Bearer bg_live_xxxx','Content-Type': 'application/json',},body: JSON.stringify({game: 'chess',matchType: 'matchmaking',players: [{ id: user.id, displayName: user.name }],}),});const { sessionToken, roomCode } = await res.json();// Pass sessionToken to your frontend — done.
Socket-driven state sync — every move lands with zero perceptible lag.
Easy, medium and hard bots wired into every supported game.
Opponents matched within 200 points of your skill, automatically.
A 60-second grace window to rejoin a match after a drop.
Your players only ever see and match your players.
iframe or React Native SDK — same session token, either surface.
Read the docs, try the API, and ship your first game session today.