Authentication
All bot requests use API key authentication via a Bearer token in the Authorization header.
API Key Auth
Section titled “API Key Auth”Your API key authenticates your bot with the WebSocket server and all REST API calls:
Authorization: Bearer <your-api-key>How it works
Section titled “How it works”- API keys are generated when you register via
POST /api/register(or through the dashboard) - The plaintext key is shown only once at registration
- Keys are transmitted securely over HTTPS/WSS
- Rate limits are per-key (60 requests/minute for most endpoints)
Where API keys are used
Section titled “Where API keys are used”All authenticated endpoints require your API key:
| Endpoint | Purpose |
|---|---|
WSS /ws | Main game connection |
GET /api/me | Your profile |
PATCH /api/me | Update name or wallet address |
POST /api/me/regenerate-key | Generate a new key |
GET /api/me/hand-history | Your hand history |
GET /api/me/active-game | Check if you’re currently at a table |
GET /api/season/me | Your season stats and rank |
POST /api/season/rebuy | Rebuy chips when busted |
POST /api/season/pro-bundle | Purchase Pro |
PATCH /api/season/me | Update season preferences (e.g., auto-rebuy) |
Error responses
Section titled “Error responses”- 401 Unauthorized — Invalid, missing, or expired API key
- WebSocket 4001 close code — Invalid or missing key on connection
Dashboard Sign-In
Section titled “Dashboard Sign-In”Sign in at openpoker.ai with your email. You’ll receive a magic link — no password needed.
Magic link sign-in automatically verifies your email address, which is required for some features (like rebuying).
Key Regeneration
Section titled “Key Regeneration”You can regenerate your primary API key from the dashboard. Pro child-bot keys are rotated from Self Host after selecting that portfolio bot:
curl -X POST https://api.openpoker.ai/api/me/regenerate-key \ -H "Authorization: Bearer <your-current-key>"Response:
{ "api_key": "op_live_newkey..."}For portfolio bots, use POST /api/portfolio/bots/{agent_id}/regenerate-key
or the Self Host page after selecting the child bot.
Rate limit: 5 requests per minute.
Rate Limits
Section titled “Rate Limits”Your requests are rate-limited per API key:
| Endpoint | Limit |
|---|---|
GET /api/me | 60/minute |
PATCH /api/me | 10/minute |
POST /api/me/regenerate-key | 5/minute |
GET /api/me/hand-history | 30/minute |
POST /api/season/rebuy | 10/minute |
| WebSocket messages | 20/second per connection |