API Documentation
BigBang Casino API is a B2B game aggregator that lets you integrate 45+ game providers and 6,000+ casino games — in two tiers, Standard (in-house / emulated) and Premium (Reeltrix real-money providers) — through a single REST API. Filter any catalog call with ?type=standard or ?type=premium. The exact catalog and providers your key can access depend on your plan and shop configuration — always read the live catalog from the API rather than hard-coding it.
GET /api/v1/games to browse the catalog, then POST /api/v1/games/launch to generate a signed game URL. Pick a wallet model (managed transfer or seamless callbacks) and go live.
Authentication
Every API request requires an API key, passed in the X-API-Key header (a query/body parameter api_key is also accepted as a fallback). Generate and rotate keys from the Dashboard. All calls should be server-to-server.
| Header | Value | Required |
|---|---|---|
X-API-Key | Your API key (fallback: ?api_key= query param) | Required |
Content-Type | application/json | Required for POST |
| Key type | Format | Access |
|---|---|---|
| Live | Opaque token (e.g. 87UcWmlKrtVTQXte…) — no fixed prefix | Standard + Premium tiers (Premium requires a funded balance) |
| Sandbox | Prefixed with ek_test_ | Standard providers only; Premium (Reeltrix) games are blocked |
Keys can be scoped from the Dashboard: an IP allow-list, a domain lock (Origin/Referer host), per-key permission flags (can_read_games, can_launch_games, can_manage_balance, can_view_stats), and provider / game allow-and-block lists. A request that violates any of these returns 401 or 403.
Base URL
All REST endpoints live under the /api/v1 prefix:
All requests and responses use JSON. Monetary amounts are numeric (2-decimal) values in the player's account currency. Every response is wrapped in a success envelope (see Error Handling).
Rate Limits
Each key carries a technical per-minute and per-hour request throttle (configurable per plan from the Dashboard). Billing is on GGR (a % of monthly bets−wins per provider) — not per request or per launch, so game launches are unlimited:
| Key | Throttle | Game launches |
|---|---|---|
Sandbox (ek_test_) | Per-key limit | Free — 100,000 virtual balance (auto) |
| Live | Per-plan limit | Unlimited — billed on GGR |
| Enterprise | Custom | Unlimited — custom GGR rates |
When you exceed the throttle the API returns 429 Too Many Requests.
Error Handling
The API uses standard HTTP status codes. Every response carries a success boolean; errors add an error object whose code mirrors the HTTP status:
| Status | Meaning |
|---|---|
200 | Success (201 on user creation) |
400 | Bad request — validation failed, game/user not found, insufficient balance |
401 | Unauthorized — missing, invalid, inactive or expired API key |
403 | Forbidden — key lacks permission, IP/domain blocked, or Premium game on a sandbox key |
404 | Not found — game, user or resource does not exist |
429 | Rate limit exceeded |
500 | Internal server error |
List Games
Returns the game catalog visible to your key, deduplicated by name and filterable. Requires the can_read_games permission.
Query Parameters
| Param | Type | Description |
|---|---|---|
category | string | Optional Filter by category title, slug/href or id (e.g. Pragmatic) |
provider | string | Optional Filter by provider; resolves to a category, else matches games whose name starts with it |
search | string | Optional Substring match on game name |
type / mode | string | Optional standard or premium. Each game also returns a mode field and is_premium boolean. |
limit | integer | Optional Results per page (default 100, max 5000) |
offset | integer | Optional Row offset for pagination (default 0) |
Example Request
Example Response
thumbnail is a fully-qualified URL (or null if no icon exists). With no category/provider/search filter, results are shuffled by a daily seed so "all games" looks mixed while pagination stays stable.
Game Detail
Returns metadata for a single game by its numeric ID. Requires can_read_games. Returns 404 if the game does not exist for your shop, or 403 if it is not enabled for your key.
Example Response
List Providers
Returns the providers (categories) available to your key. Requires can_read_games. The slug is the exact value you pass to ?category= or ?provider= on GET /games. Sandbox keys never see Premium categories.
Example Response
Launch Game
Generates a signed, ready-to-embed game URL for a player. Requires the can_launch_games permission. The returned game_url loads the game in an iframe; money then moves through your chosen wallet model. Note: a short alias POST /launch proxies to this same endpoint.
Request Body
| Field | Type | Description |
|---|---|---|
game_id | integer | Required Numeric game ID (from GET /games) |
user_token | string | Required for real mode. Your unique player identifier (matched against the player you created). Use "demo" or "guest" — or omit with demo:true — for demo mode. |
demo | boolean | Optional true launches fun mode (virtual balance, no wallet) |
language | string | Optional ISO 639-1 code (default en) |
return_url | string | Optional URL to redirect to when the player exits |
device | string | Optional Premium/Reeltrix only — desktop (default) or mobile |
home_url | string | Optional Premium/Reeltrix only — lobby URL for the in-game home button |
Example Request
Example Response (standard game)
The game_url is HMAC-signed with your API key and carries the player session into the game engine. Premium (Reeltrix) launches return a game_url pointing at the aggregator plus a provider field, and no session_id.
game_url in an iframe (allow="autoplay; fullscreen"). If the player does not exist yet, create them first via POST /users/create — a real-money launch for an unknown user_token returns 400 "User not found" (unless your key has a seamless user_data endpoint that auto-provisions them).
Demo Mode
Set demo: true (or user_token: "demo"). No wallet is involved — the game runs on a virtual balance. Useful for storefronts, review sites and testing.
Create Player
Registers a player under your account. Idempotent — creating an existing user_token returns 200 with "message": "User already exists"; a new player returns 201.
Request Body
| Field | Type | Description |
|---|---|---|
user_token | string | Required Your unique player identifier (max 255) |
username | string | Optional Display username (defaults to user_token) |
country | string | Optional ISO country code |
Get Player
Returns a player's profile and balance.
Player History
Returns a player's bet/win history. Requires can_view_stats.
Query Parameters
| Param | Type | Description |
|---|---|---|
from | datetime | Optional Include rounds on/after this time |
to | datetime | Optional Include rounds on/before this time |
game_id | string | Optional Filter by game name |
limit | integer | Optional Max rows (default 50, max 200) |
Get Balance
Returns a player's current balance (managed-wallet accounts).
Deposit
Credits a managed-wallet player's balance. Requires can_manage_balance. Use a unique transaction_id for idempotency/audit.
Request Body
| Field | Type | Description |
|---|---|---|
user_token | string | Required |
amount | number | Required ≥ 0.01 |
transaction_id | string | Required Your unique reference |
Withdraw
Debits a managed-wallet player's balance. Requires can_manage_balance. Returns 400 "Insufficient balance" if the amount exceeds the balance. Same request body and response shape as deposit (balance_before / balance_after / amount / transaction_id).
Seamless Wallet (Callbacks)
BigBang supports two wallet models, chosen by how your API key is configured in the Dashboard:
- Managed / transfer wallet (default) — the balance lives with us. You pre-fund it with
POST /balance/depositand reclaim it withPOST /balance/withdraw. No callback endpoints to build. - Seamless wallet — the balance stays authoritative on your side. You register two callback URLs on your key (
user_dataandbalance_change); BigBang calls them during gameplay to read the balance and apply each bet/win in real time.
user_data URL (read balance) and balance_change URL (apply bet/win). Configure both URLs on your API key from the Dashboard; they are not passed per launch.
Signature
Every seamless callback carries a signature field. It is an HMAC-SHA256 hex digest, keyed with your API key, over the concatenated payload fields (not the raw body):
user_data — balance read
Called (HTTP GET) when a session needs the player's balance/identity. Return the current balance.
balance_change — bet / win
Called (HTTP POST) for every balance movement. amount is negative for a bet (debit) and positive for a win (credit). Apply it idempotently on transaction_id and return the new balance. Failed calls are retried up to 3× with exponential backoff.
transaction_id, do not apply it again — return the same balance. Sandbox (ek_test_) callbacks include "sandbox": true; your endpoint should skip real balance changes when it is set.
API Keys
Manage keys from the Dashboard:
- Live key — an opaque token (no fixed prefix) for production traffic.
- Sandbox key (
ek_test_…) — for development and testing; Standard providers only, free on all plans.
Rotating a key immediately invalidates the old one. The key value is also the HMAC secret used to sign launch URLs and to verify seamless-wallet callbacks — treat it as a secret.
Sandbox Mode
Use your ek_test_… key in place of the live key — same endpoints, no code changes. Sandbox serves Standard providers only; Premium (real-money Reeltrix) games return 403.
| Feature | Sandbox | Live |
|---|---|---|
| API key | ek_test_… prefix | Opaque token |
| Player balance | Synthetic 100,000 (auto) | Managed balance or your seamless wallet |
| Providers | Standard only | Standard + Premium |
| Callbacks | Include "sandbox": true | Normal callbacks |
| Upfront balance | Not required (free) | Required for Premium |
| Cost | Free | GGR %-based (Standard low · Premium higher) |
Usage & Billing
A prepaid balance is required for live (real-money) play. Fund your account from the Dashboard. Billing is on GGR — a percentage of each provider's monthly Gross Gaming Revenue (bets − wins), floored at 0 per provider — settled monthly and drawn from that prepaid balance. There is no per-request or per-launch quota; game launches are unlimited. Standard providers carry a low rate; Premium (real-money) providers a higher one. The Sandbox key (ek_test_) needs no balance and serves Standard providers only.
Webhooks
Configure a webhook URL and secret in the Dashboard to receive event notifications (separate from the money path):
session.started— a player opened a game (fired on standard real-money launch)session.ended— a session closed or timed outround.completed— a game round finished (summary)
Webhooks are signed with HMAC-SHA256 using your webhook secret.
Providers List
The aggregator carries 45+ providers. The exact set your key can launch is plan- and shop-dependent — always read the live list from GET /api/v1/categories. A representative selection:
Premium (Reeltrix real-money) providers require a funded live key. Standard providers run on our in-house / emulated engines. Sandbox keys (ek_test_) are limited to Standard providers.
Currencies
A player's balance is denominated in the currency of their account, set when you provision the player (default EUR). It is not passed per launch. Session currencies currently in use:
| Currency | Code | Type |
|---|---|---|
| Euro | EUR | Fiat (default) |
| US Dollar | USD | Fiat |
| Indian Rupee | INR | Fiat |
| Coin (social / virtual) | COIN | Virtual |
Additional currencies can be enabled per account on request. Crypto (USDT, BTC and others via NOWPayments) is used to fund your prepaid billing balance — it is not a per-player session currency.
Changelog
v1.6 — Jul 2026
- Docs corrected to match the live
/api/v1contract (paths, request/response shapes, wallet models). - Catalog now exceeds 6,000 titles across 45+ providers (incl. Merkur, EGT Digital, Amatic, Novamatic, JILI, PG Soft, Nolimit City, ELK, Push Gaming).
- Documented managed (deposit/withdraw) and seamless (user_data / balance_change) wallet models.
v1.5 — May 2026
- Added PenguinKing / Octoplay and further premium (Reeltrix) providers.
- Standard vs Premium catalog tiers exposed via
?type=.
v1.4 — May 2026
- Added Gamzix and Hacksaw Gaming.
- Player & balance management endpoints (
/users/*,/balance/*).
v1.1 — Mar 2026
- Added CrashGames and Tomhorn Gaming.
- Demo-mode launches via the
demoflag.
v1.0 — Jan 2026
- Initial release: game catalog, HMAC-signed launch URLs, seamless wallet callbacks.
Need help? Contact support@bigbangcasino.bet or reach us on Telegram.