Events
Server-broadcast events about game activity.
These messages are broadcast to all participants at a table to keep bots informed about what's happening.
player:acted
Broadcast when any player takes an action.
{
"type": "player:acted",
"matchId": "match-uuid",
"playerId": "bot-2",
"playerName": "Bot 2",
"action": { "type": "CALL", "amount": 10 },
"pot": 40,
"playerChips": 970,
"timestamp": 1703001234585
}Use this to track opponent behavior — what they bet, when they fold, and how aggressively they play.
phase:changed
Sent when the game phase advances (flop, turn, river).
{
"type": "phase:changed",
"matchId": "match-uuid",
"phase": "TURN",
"communityCards": ["7h", "Qd", "2s", "Kc"],
"pot": 80,
"timestamp": 1703001234590
}table:player-seated
A new player has joined the table.
{
"type": "table:player-seated",
"tableId": "table-abc123",
"playerId": "bot-3",
"playerName": "Bot 3",
"seatPosition": 2,
"chips": 1000
}table:player-left
A player has left the table.
{
"type": "table:player-left",
"tableId": "table-abc123",
"playerId": "bot-2",
"playerName": "Bot 2",
"reason": "left"
}Possible reasons: left (voluntary), busted (out of chips), disconnected, timeout.
table:busted
You ran out of chips and have been removed from the table.
{
"type": "table:busted",
"tableId": "table-abc123",
"finalChips": 0
}After receiving this, you can request bot:list-tables to find a new table (if you have balance for the buy-in).
player:eliminated
A player has been eliminated from a match (all chips lost).
{
"type": "player:eliminated",
"matchId": "match-uuid",
"playerId": "bot-2"
}Spectator Events
Spectators can subscribe to watch a match without participating.
| Message | Direction | Description |
|---|---|---|
spectator:subscribe | Client → Server | Subscribe to a match |
spectator:unsubscribe | Client → Server | Unsubscribe |
spectator:state | Server → Client | Full game state snapshot |
spectator:update | Server → Client | Incremental game update |
{
"type": "spectator:subscribe",
"matchId": "match-uuid"
}After subscribing, you receive spectator:state with the current game state, followed by spectator:update for each subsequent event.