🎮 Beta Gamer

iframe embed

The iframe embed works with any stack — no SDK required. Drop in a single <iframe> tag and listen for game events via postMessage.

Basic usage

<!-- Chess -->
<iframe
  src="https://games.beta-gamer.com/embed/chess?session=<sessionToken>"
  width="800" height="600"
  allow="fullscreen"
  style="border: none; border-radius: 12px;"
/>

<!-- Checkers -->
<iframe
  src="https://games.beta-gamer.com/embed/checkers?session=<sessionToken>"
  width="700" height="700"
  allow="fullscreen"
  style="border: none; border-radius: 12px;"
/>
⚠️ The sessionToken must come from your backend. Never expose your API key (bg_live_…) to the browser — only the short-lived JWT session token is safe to pass to the client.

postMessage events

Listen on window for messages from the iframe. Always check event.origin before trusting the data.

eventWhenPayload
game.startedGame begins{ roomId, players }
match.foundOpponent matched{ opponent: { id, displayName } }
game.endedGame finishes{ result: { winner, reason, duration } }
errorUnrecoverable error{ message }
window.addEventListener('message', (event) => {
  if (event.origin !== 'https://games.beta-gamer.com') return;

  const { type, payload } = event.data;

  switch (type) {
    case 'game.started':
      console.log('Game started, roomId:', payload.roomId);
      break;
    case 'game.ended':
      const { winner, reason, duration } = payload.result;
      console.log(`Game over — winner: ${winner}, reason: ${reason}`);
      break;
    case 'error':
      console.error('Game error:', payload.message);
      break;
  }
});
Beta Gamer GaaS API — questions? support@beta-gamer.com