Operator API Overview
The Operator API is a server-to-server API through which the operator's servers call the platform. It provides game launch URL issuance, game and table lookups, history lookups, player force logout, and configuration features for the operator's admin console.
Base URL
{API_BASE}/operator/v1{API_BASE} is the API address for each environment (for the test and production addresses, see Onboarding and Environments). All paths in this documentation are relative to the base URL. For example, POST /launch means POST {API_BASE}/operator/v1/launch.
Authentication Summary
All endpoints use the same signing rules. For details, see Authentication and Signing.
| Header | Required | Content |
|---|---|---|
X-Operator | Required | Operator code (e.g. acme) |
X-Api-Key | Recommended | The issued API key (ak_…). Verified if sent. |
X-Timestamp | Required | Request time, Unix milliseconds. Must be within ±5 minutes of platform time. |
X-Nonce | Required | A new random string for each request (1–128 characters). Reusing the same value within 5 minutes is rejected. |
X-Signature | Required | hex(HMAC-SHA256(api_secret, string to sign)), lowercase hexadecimal |
X-Operator-Admin | Optional | ID of the admin who performed the action in the admin console (^[A-Za-z0-9_.@-]{1,40}$). Recorded as the actor in the audit log. Not part of the signature and unrelated to permissions. |
string to sign = X-Timestamp + "\n" + X-Nonce + "\n" + METHOD + "\n" + path and query + "\n" + raw body- Request bodies are JSON (
Content-Type: application/json; charset=utf-8).GETrequests have no body and are signed with an empty string. - Bodies are read up to 64 KB (768 KB for
PUT /lobby-bannersonly). Anything larger is truncated before signature verification, so the request fails withINVALID_SIGNATURE. - The rate limit is 200 requests per second per operator. Exceeding it returns
429 RATE_LIMITED. - Error responses have the shape
{"error": {"code", "message", "details?"}}. For common error codes, see Error Codes. - Responses to write requests (any request other than
GET, excludingPOST /launch) include anX-Audit-Idheader. You can use this number to look up or revert the change in the audit log.
Categories
| Category | Meaning |
|---|---|
| Required | Endpoints every operator must integrate |
| Recommended | Endpoints recommended for site screens and operational reconciliation |
| Admin console | Endpoints used when the operator wants to manage configuration and operations directly from its own admin console (back office). If they are not used, the platform headquarters operates with the default values. |
The notation in the Constraints column is as follows.
- Independent mode only: Available only to operators whose operating mode is
independent.prepaidoperators receive403(Introduction: Operating Mode). - Dedicated tables only: Can be used only on dedicated tables created by this operator. Shared tables return
403 TABLE_NOT_OWNED.
Game Launch
| Method | Path | Description | Category | Constraints | Docs |
|---|---|---|---|---|---|
POST | /launch | Issue a player game launch URL | Required | Game Launch |
Games, Lobby, and Currencies
| Method | Path | Description | Category | Constraints | Docs |
|---|---|---|---|---|---|
GET | /games | Enabled games, site bet limits, lobby display | Required | Games, Lobby, and Currencies | |
GET | /currencies | Currency table (code, decimal places, symbol) | Required | Games, Lobby, and Currencies | |
PUT | /games/{game_code}/bet-limits | Site bet limits per game and per currency | Admin console | Games, Lobby, and Currencies | |
PUT | /games/{game_code}/lobby | Menu and table display in the game lobby, banners | Admin console | Games, Lobby, and Currencies | |
PUT | /lobby-banners | Upload lobby banner images | Admin console | 768 KB body | Games, Lobby, and Currencies |
Tables
| Method | Path | Description | Category | Constraints | Docs |
|---|---|---|---|---|---|
GET | /tables | Table status (shared + own dedicated) | Recommended | Tables | |
POST | /tables | Create a dedicated table | Admin console | Independent mode only | Tables |
PATCH | /tables/{table_id} | Change name and sort order | Admin console | Dedicated tables only | Tables |
POST | /tables/{table_id}/close | Close a table | Admin console | Dedicated tables only | Tables |
PUT | /tables/{table_id}/settings | Limits and rake per currency | Admin console | Dedicated tables only | Tables |
PUT | /tables/{table_id}/currency | Change the operating currency | Admin console | Dedicated tables only, when no one is seated | Tables |
PUT | /tables/{table_id}/live | Dealing mode and pause | Admin console | Dedicated tables only, Live Hold'em and Speed Hold'em | Tables |
PUT | /tables/{table_id}/timers | Betting and turn times | Admin console | Dedicated tables only | Tables |
PUT | /tables/{table_id}/rake-rule | Rake rules (no flop, no drop; truncate decimals) | Admin console | Dedicated tables only, games with rake | Tables |
PUT | /tables/{table_id}/card-design | Table card design | Admin console | Dedicated tables only, Live Hold'em and Speed Hold'em | Tables |
Players
| Method | Path | Description | Category | Constraints | Docs |
|---|---|---|---|---|---|
POST | /players/{external_id}/logout | Force logout, block, unblock | Required | Players | |
GET | /players/online | Players currently online | Recommended | Players |
Rounds, Transactions, and Reports
| Method | Path | Description | Category | Constraints | Docs |
|---|---|---|---|---|---|
GET | /rounds | Round history (player × hand) | Recommended | Rounds, Transactions, and Reports | |
GET | /rounds/{round_id} | Round details (cards, money, progression log) | Recommended | Rounds, Transactions, and Reports | |
GET | /sessions/{session_id} | Table session (one seating) details | Admin console | Rounds, Transactions, and Reports | |
GET | /transactions | Wallet transaction ledger (for reconciliation) | Required | Rounds, Transactions, and Reports | |
GET | /reports/ggr | Daily GGR aggregation per game | Recommended | Rounds, Transactions, and Reports |
Operator Settings and Prepaid Credit
| Method | Path | Description | Category | Constraints | Docs |
|---|---|---|---|---|---|
GET | /credit | Operating mode, prepaid credit balance, prepaid credit ledger | Recommended | The prepaid credit ledger is meaningful only for prepaid | Operator Settings and Prepaid Credit |
GET | /settings | Time zone, currency, concurrent game allowance, etc. | Admin console | Operator Settings and Prepaid Credit | |
PUT | /settings | Change time zone, concurrent game allowance, spectating time limit | Admin console | Operator Settings and Prepaid Credit | |
GET | /rake-defaults | Default commission (rake) values | Admin console | Operator Settings and Prepaid Credit | |
PUT | /rake-defaults | Change default commission values | Admin console | Operator Settings and Prepaid Credit | |
GET | /card-design | Default card design and options | Admin console | Operator Settings and Prepaid Credit | |
PUT | /card-design | Change the default card design | Admin console | Operator Settings and Prepaid Credit |
Dealers
Relevant only to operators that run their own live tables.
| Method | Path | Description | Category | Constraints | Docs |
|---|---|---|---|---|---|
GET | /dealers | Dealer list | Admin console | Dealers | |
POST | /dealers | Register a dealer | Admin console | Dealers | |
PATCH | /dealers/{dealer_id} | Change dealer details and status | Admin console | Dealers | |
POST | /dealers/{dealer_id}/badge | Issue a staff badge code | Admin console | Dealers | |
DELETE | /dealers/{dealer_id}/badge | Revoke a staff badge code | Admin console | Dealers | |
PUT | /dealers/{dealer_id}/photo | Upload a dealer photo | Admin console | 64 KB body | Dealers |
DELETE | /dealers/{dealer_id}/photo | Delete a dealer photo | Admin console | Dealers | |
GET | /dealer-devices | Dealer tool device status | Admin console | Dealers | |
GET | /dealer-tool | Latest dealer tool installer information | Admin console | Dealers | |
GET | /dealer-card-log | Dealer card input log | Admin console | Independent mode only | Dealers |
Private Tables
| Method | Path | Description | Category | Constraints | Docs |
|---|---|---|---|---|---|
GET | /private-tables | List private reservations | Admin console | Independent mode only | Private Tables |
POST | /private-tables | Create a private reservation | Admin console | Independent mode only, dedicated Live Hold'em | Private Tables |
DELETE | /private-tables/{private_id} | Cancel a private reservation | Admin console | Independent mode only | Private Tables |
Audit Log
| Method | Path | Description | Category | Constraints | Docs |
|---|---|---|---|---|---|
GET | /audit | Audit log entries created by this operator | Admin console | Audit Log | |
POST | /audit/{audit_id}/restore | Revert a change | Admin console | Audit Log |
Getting Started with Integration
For a minimal integration, the following steps are sufficient.
- Use
GET /currenciesandGET /gamesto get the currency decimal places and the enabled games, and build the game menu on your site. - When a player selects a game, get a launch URL with
POST /launchand open it in a new window or an iframe. - Implement the four wallet callbacks (balance, debit, credit, rollback).
- Call
POST /players/{external_id}/logoutwhen a player closes their account, is blocked, or self-excludes. - Regularly reconcile your own wallet ledger against
GET /transactions.
To let players pick and join a specific table directly from your site, add GET /tables; to show players their betting history, add GET /rounds.