Skip to content

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.

HeaderRequiredContent
X-OperatorRequiredOperator code (e.g. acme)
X-Api-KeyRecommendedThe issued API key (ak_…). Verified if sent.
X-TimestampRequiredRequest time, Unix milliseconds. Must be within ±5 minutes of platform time.
X-NonceRequiredA new random string for each request (1–128 characters). Reusing the same value within 5 minutes is rejected.
X-SignatureRequiredhex(HMAC-SHA256(api_secret, string to sign)), lowercase hexadecimal
X-Operator-AdminOptionalID 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). GET requests have no body and are signed with an empty string.
  • Bodies are read up to 64 KB (768 KB for PUT /lobby-banners only). Anything larger is truncated before signature verification, so the request fails with INVALID_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, excluding POST /launch) include an X-Audit-Id header. You can use this number to look up or revert the change in the audit log.

Categories ​

CategoryMeaning
RequiredEndpoints every operator must integrate
RecommendedEndpoints recommended for site screens and operational reconciliation
Admin consoleEndpoints 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. prepaid operators receive 403 (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 ​

MethodPathDescriptionCategoryConstraintsDocs
POST/launchIssue a player game launch URLRequiredGame Launch

Games, Lobby, and Currencies ​

MethodPathDescriptionCategoryConstraintsDocs
GET/gamesEnabled games, site bet limits, lobby displayRequiredGames, Lobby, and Currencies
GET/currenciesCurrency table (code, decimal places, symbol)RequiredGames, Lobby, and Currencies
PUT/games/{game_code}/bet-limitsSite bet limits per game and per currencyAdmin consoleGames, Lobby, and Currencies
PUT/games/{game_code}/lobbyMenu and table display in the game lobby, bannersAdmin consoleGames, Lobby, and Currencies
PUT/lobby-bannersUpload lobby banner imagesAdmin console768 KB bodyGames, Lobby, and Currencies

Tables ​

MethodPathDescriptionCategoryConstraintsDocs
GET/tablesTable status (shared + own dedicated)RecommendedTables
POST/tablesCreate a dedicated tableAdmin consoleIndependent mode onlyTables
PATCH/tables/{table_id}Change name and sort orderAdmin consoleDedicated tables onlyTables
POST/tables/{table_id}/closeClose a tableAdmin consoleDedicated tables onlyTables
PUT/tables/{table_id}/settingsLimits and rake per currencyAdmin consoleDedicated tables onlyTables
PUT/tables/{table_id}/currencyChange the operating currencyAdmin consoleDedicated tables only, when no one is seatedTables
PUT/tables/{table_id}/liveDealing mode and pauseAdmin consoleDedicated tables only, Live Hold'em and Speed Hold'emTables
PUT/tables/{table_id}/timersBetting and turn timesAdmin consoleDedicated tables onlyTables
PUT/tables/{table_id}/rake-ruleRake rules (no flop, no drop; truncate decimals)Admin consoleDedicated tables only, games with rakeTables
PUT/tables/{table_id}/card-designTable card designAdmin consoleDedicated tables only, Live Hold'em and Speed Hold'emTables

Players ​

MethodPathDescriptionCategoryConstraintsDocs
POST/players/{external_id}/logoutForce logout, block, unblockRequiredPlayers
GET/players/onlinePlayers currently onlineRecommendedPlayers

Rounds, Transactions, and Reports ​

MethodPathDescriptionCategoryConstraintsDocs
GET/roundsRound history (player × hand)RecommendedRounds, Transactions, and Reports
GET/rounds/{round_id}Round details (cards, money, progression log)RecommendedRounds, Transactions, and Reports
GET/sessions/{session_id}Table session (one seating) detailsAdmin consoleRounds, Transactions, and Reports
GET/transactionsWallet transaction ledger (for reconciliation)RequiredRounds, Transactions, and Reports
GET/reports/ggrDaily GGR aggregation per gameRecommendedRounds, Transactions, and Reports

Operator Settings and Prepaid Credit ​

MethodPathDescriptionCategoryConstraintsDocs
GET/creditOperating mode, prepaid credit balance, prepaid credit ledgerRecommendedThe prepaid credit ledger is meaningful only for prepaidOperator Settings and Prepaid Credit
GET/settingsTime zone, currency, concurrent game allowance, etc.Admin consoleOperator Settings and Prepaid Credit
PUT/settingsChange time zone, concurrent game allowance, spectating time limitAdmin consoleOperator Settings and Prepaid Credit
GET/rake-defaultsDefault commission (rake) valuesAdmin consoleOperator Settings and Prepaid Credit
PUT/rake-defaultsChange default commission valuesAdmin consoleOperator Settings and Prepaid Credit
GET/card-designDefault card design and optionsAdmin consoleOperator Settings and Prepaid Credit
PUT/card-designChange the default card designAdmin consoleOperator Settings and Prepaid Credit

Dealers ​

Relevant only to operators that run their own live tables.

MethodPathDescriptionCategoryConstraintsDocs
GET/dealersDealer listAdmin consoleDealers
POST/dealersRegister a dealerAdmin consoleDealers
PATCH/dealers/{dealer_id}Change dealer details and statusAdmin consoleDealers
POST/dealers/{dealer_id}/badgeIssue a staff badge codeAdmin consoleDealers
DELETE/dealers/{dealer_id}/badgeRevoke a staff badge codeAdmin consoleDealers
PUT/dealers/{dealer_id}/photoUpload a dealer photoAdmin console64 KB bodyDealers
DELETE/dealers/{dealer_id}/photoDelete a dealer photoAdmin consoleDealers
GET/dealer-devicesDealer tool device statusAdmin consoleDealers
GET/dealer-toolLatest dealer tool installer informationAdmin consoleDealers
GET/dealer-card-logDealer card input logAdmin consoleIndependent mode onlyDealers

Private Tables ​

MethodPathDescriptionCategoryConstraintsDocs
GET/private-tablesList private reservationsAdmin consoleIndependent mode onlyPrivate Tables
POST/private-tablesCreate a private reservationAdmin consoleIndependent mode only, dedicated Live Hold'emPrivate Tables
DELETE/private-tables/{private_id}Cancel a private reservationAdmin consoleIndependent mode onlyPrivate Tables

Audit Log ​

MethodPathDescriptionCategoryConstraintsDocs
GET/auditAudit log entries created by this operatorAdmin consoleAudit Log
POST/audit/{audit_id}/restoreRevert a changeAdmin consoleAudit Log

Getting Started with Integration ​

For a minimal integration, the following steps are sufficient.

  1. Use GET /currencies and GET /games to get the currency decimal places and the enabled games, and build the game menu on your site.
  2. When a player selects a game, get a launch URL with POST /launch and open it in a new window or an iframe.
  3. Implement the four wallet callbacks (balance, debit, credit, rollback).
  4. Call POST /players/{external_id}/logout when a player closes their account, is blocked, or self-excludes.
  5. 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.

Docs v1.0.0 · Operator API v1