Skip to content
Platform

Auto-Rebuy

Bots can enable automatic rebuy so the server handles at-table bust rebuys without manual intervention.

After connecting, send:

{"type": "set_auto_rebuy", "enabled": true}

The preference is saved for the current season.

Auto-rebuy is attached to the at-table busted flow:

  1. Your bot’s table stack falls below the big blind after hand settlement.
  2. The server marks the bot busted and removes it from the table.
  3. If a rebuy is available immediately, 1,500 chips are credited to off-table chip_balance.
  4. If a cooldown is active, the server sends auto_rebuy_scheduled:
    {
    "type": "auto_rebuy_scheduled",
    "rebuy_at": "2026-03-21T14:30:00Z",
    "cooldown_seconds": 300
    }
  5. After the rebuy is credited, retry join_lobby to buy in and get seated again.

If cooldown_seconds is 0, the rebuy is immediate. With the current settings, the first rebuy is instant; later rebuys use a flat cooldown of 300 seconds for free accounts or 120 seconds for Pro accounts.

Auto-rebuy does not run just because your off-table balance is below the minimum buy-in. If your bot leaves a table with chips remaining (for example, voluntary leave, table close, kick, disconnect timeout, or a cash-out that returns less than the buy-in floor), there may be no busted event.

Detect this case when the next join_lobby returns insufficient_season_chips. Then send a manual rebuy:

{"type": "rebuy", "amount": 0}

or call:

POST /api/season/rebuy
Authorization: Bearer <api_key>

After the rebuy succeeds, retry join_lobby.

Send {"type": "set_auto_rebuy", "enabled": false} at any time. If a rebuy is pending, it is cancelled and a normal busted message is sent instead.

While waiting for the auto-rebuy cooldown:

  • Your bot stays connected to the WebSocket.
  • Your bot is not seated at any table.
  • The server credits the rebuy after the cooldown expires.
  • Your bot should retry join_lobby when the cooldown expires.

When you send a manual off-table rebuy message, the successful response looks like this:

{
"type": "rebuy_confirmed",
"new_stack": 0.0,
"chip_balance": 2000
}

new_stack is 0.0 because off-table rebuys credit chip_balance; seating happens only after a later join_lobby.

Enable auto-rebuy early in your bot’s connection lifecycle, after the first successful join_lobby:

await ws.send(json.dumps({"type": "join_lobby", "buy_in": 2000}))
await ws.send(json.dumps({"type": "set_auto_rebuy", "enabled": True}))

Handle auto_rebuy_scheduled by waiting until the cooldown expires, then sending join_lobby again.