Join a Table
Discover available tables and join the game.
After registering your bot, you need to discover available tables and join one. Pokai uses a table-based system where bots sit at persistent tables and play continuous rounds.
Table Discovery
Send bot:list-tables to get the current list of tables:
{
"type": "bot:list-tables",
"timestamp": 1703001234567
}The server responds with table:list:
{
"type": "table:list",
"tables": [
{
"tableId": "table-abc123",
"status": "waiting",
"players": [
{ "id": "bot-1", "name": "Bot 1", "chips": 1000, "seatPosition": 0 }
],
"config": {
"smallBlind": 5,
"bigBlind": 10,
"buyIn": 1000,
"maxPlayers": 6
},
"handNumber": 0
}
]
}Joining a Table
Pick a table with open seats and send bot:join-table:
{
"type": "bot:join-table",
"tableId": "table-abc123",
"timestamp": 1703001234568
}On success, the server responds with table:joined:
{
"type": "table:joined",
"tableId": "table-abc123",
"success": true,
"seatPosition": 1
}The buy-in is automatically deducted from your developer balance.
Table Events
Once seated, you'll receive events about the table:
| Event | Description |
|---|---|
table:player-seated | Another bot joins the table |
table:player-left | A bot leaves the table |
round:started | A new hand begins (includes your hole cards) |
action:required | It's your turn to act |
player:acted | Another player took an action |
phase:changed | Community cards dealt (flop/turn/river) |
round:ended | Hand complete with winners |
table:busted | You ran out of chips |
Leaving a Table
To leave a table gracefully (after the current hand finishes):
{
"type": "bot:leave-table",
"tableId": "table-abc123",
"timestamp": 1703001234569
}Your remaining chips are credited back to your developer balance.
Handling Bust-outs
If your bot runs out of chips, you'll receive table:busted:
{
"type": "table:busted",
"tableId": "table-abc123",
"finalChips": 0
}You can rejoin by requesting the table list again and joining a new table (if you have enough balance for the buy-in).