API Documentation

BigBang Casino API is a B2B game aggregator that lets you integrate 45+ game providers and 5,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. This documentation covers every endpoint, request/response format, and wallet callback schema you need to go live.

Quick start: Sign up at /portal, grab your API key, call GET /games to browse the catalog, then POST /launch to generate a signed game URL. Average integration time: 2–5 days.

Authentication

All API requests require an API key passed via the x-api-key header. You can generate and rotate keys from the Dashboard.

# Every request must include your API key curl https://api.bigbangcasino.bet/games \ -H "x-api-key: YOUR_API_KEY"
HeaderValueRequired
x-api-keyYour API key (starts with ek_)Required
Content-Typeapplication/jsonRequired for POST
Keep your key secret. Never expose it in client-side code. All API calls should be made server-to-server. If a key is compromised, rotate it immediately from the Dashboard.

Base URL

All endpoints are served from:

https://api.bigbangcasino.bet

All requests and responses use JSON. Timestamps are ISO 8601. Monetary amounts are decimal strings to avoid floating-point drift.

Rate Limits

Rate limits are technical throttling per API key. Billing is on GGR (a % of monthly bets−wins per provider) — not per request or per launch, so game launches are unlimited:

KeyRequests/minRequests/hourGame launches
Sandbox (ek_test_)603,600Free — 100K EUR virtual balance
Live1207,200Unlimited — billed on GGR
EnterpriseCustomCustomUnlimited — custom GGR rates

When you exceed the limit, the API returns 429 Too Many Requests with a Retry-After header (seconds).

Error Handling

The API uses standard HTTP status codes. Errors return a JSON body with an error field:

{ "error": "Invalid API key", "code": "AUTH_INVALID_KEY", "status": 401 }
StatusMeaning
200Success
400Bad request — missing or invalid parameters
401Unauthorized — invalid or missing API key
403Forbidden — key lacks permission for this action
404Not found — game or resource does not exist
429Rate limit exceeded
500Internal server error

List Games

GET /games

Returns the full game catalog, paginated and filterable. Each game includes metadata: title, provider, RTP, volatility, themes, thumbnail URL, and demo availability.

Query Parameters

ParamTypeDescription
typestringOptional Catalog tier: standard (in-house / emulated) or premium (Reeltrix real-money providers). Alias: mode. Omit for both. Each game also returns a mode field and is_premium boolean.
providerstringOptional Filter by provider code (e.g. Pragmatic, Habanero)
qstringOptional Search by game name or title (max 64 chars)
currencystringOptional Filter to games supporting this currency (EUR, USD, etc.)
pageintegerOptional Page number (default: 1)
limitintegerOptional Results per page, 12–120 (default: 60)

Example Request

curl "https://api.bigbangcasino.bet/games?provider=Habanero&limit=20" \ -H "x-api-key: YOUR_API_KEY" # Premium tier only (Reeltrix real-money providers) curl "https://api.bigbangcasino.bet/games?type=premium&limit=20" \ -H "x-api-key: YOUR_API_KEY"

Example Response

{ "games": [ { "id": 4821, "name": "SGHotHotFruit", "title": "Hot Hot Fruit", "provider": "Habanero", "provider_label": "Habanero", "rtp": 96.7, "volatility": "medium", "type": "slot", "thumb": "https://bigbangcasino.bet/frontend/Vegas/ico/Habanero/SGHotHotFruit.webp", "has_demo": true } ], "total": 50, "page": 1, "total_pages": 3, "limit": 20 }

Game Detail

GET /games/:id

Returns full metadata for a single game by its numeric ID or slug name.

Example Response

{ "id": 4821, "name": "SGHotHotFruit", "title": "Hot Hot Fruit", "provider": "Habanero", "rtp": 96.7, "volatility": "medium", "max_win": "x5000", "type": "slot", "themes": ["fruits", "hold-and-win"], "features": ["free_spins", "bonus_buy"], "currencies": ["EUR", "USD", "GBP", "BRL"], "thumb": "https://bigbangcasino.bet/frontend/Vegas/ico/Habanero/SGHotHotFruit.webp", "has_demo": true, "launch_modes": ["real", "fun"] }

List Providers

GET /providers

Returns all available game providers with their game counts and tier classification.

Example Response

{ "providers": [ { "code": "Pragmatic", "label": "Pragmatic Play", "tier": "premium", "games": 312 }, { "code": "Greentube", "label": "Greentube", "tier": "premium", "games": 198 }, // ... 26 providers total ], "total_games": 1197 }

Launch Game (Real Mode)

POST /launch

Generates a signed, time-bound launch URL for a specific game. The URL loads the game in an iframe with a real-money session. You must implement the wallet callback endpoint on your side to handle bets and wins.

Request Body

FieldTypeDescription
game_idstring|intRequired Game ID or slug (e.g. 4821 or SGHotHotFruit)
player_idstringRequired Your unique player identifier
currencystringRequired Session currency (EUR, USD, etc.)
modestringOptional real (default) or fun
languagestringOptional ISO 639-1 code (default: en)
return_urlstringOptional URL to redirect when player exits the game
wallet_urlstringRequired Your wallet callback endpoint URL

Example Request

curl -X POST "https://api.bigbangcasino.bet/launch" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "game_id": "SGHotHotFruit", "player_id": "player_42", "currency": "EUR", "mode": "real", "language": "en", "wallet_url": "https://your-site.com/api/wallet", "return_url": "https://your-site.com/casino" }'

Example Response

{ "launch_url": "https://api.bigbangcasino.bet/render?token=eyJhbGciOi...", "session_id": "ses_a1b2c3d4e5f6", "expires_at": "2026-05-20T14:35:00Z", "ttl_seconds": 300 }
Embedding: Load the launch_url in an iframe. The URL is JWT-signed with a 5-minute TTL. Once the game loads, the session persists independently of the URL.

Embed Example

<!-- Drop the launch URL into an iframe --> <iframe src="https://api.bigbangcasino.bet/render?token=eyJhbGciOi..." width="100%" height="720" frameborder="0" allow="autoplay; fullscreen" style="border-radius:12px" ></iframe>

Launch Game (Demo Mode)

POST /launch/demo

Generates a demo-mode launch URL. No wallet callback required — the game runs with virtual balance (100,000 EUR). Useful for storefronts, review sites, and testing.

Request Body

FieldTypeDescription
game_idstring|intRequired Game ID or slug
languagestringOptional ISO 639-1 (default: en)

Example

curl -X POST "https://api.bigbangcasino.bet/launch/demo" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "game_id": "SGHotHotFruit" }'
{ "launch_url": "https://api.bigbangcasino.bet/render?token=eyJ...", "mode": "fun", "balance": "100000.00", "currency": "EUR" }

Session Status

GET /sessions/:session_id

Check the status of an active game session. Returns player, game, and last activity timestamp.

{ "session_id": "ses_a1b2c3d4e5f6", "player_id": "player_42", "game": "SGHotHotFruit", "provider": "Habanero", "status": "active", "created_at": "2026-05-20T14:30:00Z", "last_activity": "2026-05-20T14:42:18Z" }

Wallet Callbacks (RGS)

When a player places a bet or wins, the game provider sends a callback to our servers. We normalize these into a single schema and forward them to your wallet_url endpoint as POST requests.

You implement one endpoint. We handle all 26 providers' proprietary callback formats and normalize them into these 6 operations:

Callback flow: Game Provider → BigBang API (normalize) → Your wallet_url (POST)
Every callback is signed with HMAC-SHA256 using your webhook secret. Verify the x-signature header before processing.

Common Headers on Every Callback

HeaderDescription
Content-Typeapplication/json
x-signatureHMAC-SHA256 hex digest of the raw body using your webhook secret
x-timestampISO 8601 timestamp of when the callback was generated

Signature Verification

const crypto = require('crypto'); function verifySignature(body, signature, secret) { const expected = crypto .createHmac('sha256', secret) .update(body) .digest('hex'); return crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(expected) ); }

authenticate

Sent when a game session starts. Verify the player exists and return their current balance.

// Request from BigBang API → Your wallet { "action": "authenticate", "session_id": "ses_a1b2c3d4e5f6", "player_id": "player_42", "currency": "EUR", "game": "SGHotHotFruit", "provider": "Habanero" } // Your response { "status": "ok", "balance": "1250.00" }

balance

Balance inquiry. Return the player's current balance without modifying it.

// Request { "action": "balance", "session_id": "ses_a1b2c3d4e5f6", "player_id": "player_42", "currency": "EUR" } // Response { "status": "ok", "balance": "1250.00" }

bet

Debit the player's balance. The transaction_id is unique per bet — use it for idempotency.

// Request { "action": "bet", "session_id": "ses_a1b2c3d4e5f6", "player_id": "player_42", "currency": "EUR", "amount": "2.50", "transaction_id": "txn_8f3a1b2c", "round_id": "rnd_7x9y", "game": "SGHotHotFruit" } // Response — return new balance after debit { "status": "ok", "balance": "1247.50" }
Idempotency: If you receive a duplicate transaction_id, return the same response without debiting again. Providers may retry callbacks on network failure.

win

Credit the player's balance with winnings.

// Request { "action": "win", "session_id": "ses_a1b2c3d4e5f6", "player_id": "player_42", "currency": "EUR", "amount": "15.00", "transaction_id": "txn_9d4e2f3a", "round_id": "rnd_7x9y", "game": "SGHotHotFruit" } // Response { "status": "ok", "balance": "1262.50" }

rollback

Reverse a previous bet. Typically triggered when a round is cancelled or a provider detects an issue. Look up the original transaction_id and refund the amount.

// Request { "action": "rollback", "session_id": "ses_a1b2c3d4e5f6", "player_id": "player_42", "currency": "EUR", "transaction_id": "txn_8f3a1b2c", "round_id": "rnd_7x9y" } // Response { "status": "ok", "balance": "1250.00" }

game_round

Notification that a game round has completed. This is informational — no balance change required. Use it for analytics and round-level reporting.

{ "action": "game_round", "session_id": "ses_a1b2c3d4e5f6", "player_id": "player_42", "round_id": "rnd_7x9y", "game": "SGHotHotFruit", "total_bet": "2.50", "total_win": "15.00", "currency": "EUR" } // Response { "status": "ok" }

API Keys

Every account gets two keys, managed from the Dashboard:

  • Live key (ek_...) — for production traffic, plan-dependent rate limits
  • Sandbox key (ek_test_...) — for development and testing, always active, free on all plans

Both keys can be rotated at any time. Rotating a key immediately invalidates the old one.

Sandbox Mode

Use your ek_test_... key in place of the live key to activate sandbox mode. Same endpoints — no code changes needed. Sandbox serves Standard providers only; Premium (real-money) providers are excluded from sandbox and are available on a funded live key.

FeatureSandboxLive
API Key prefixek_test_ek_
Player balanceFixed 100,000 EUR (auto-resets)Your wallet endpoint
Wallet callbacksFire with "sandbox": trueNormal callbacks
WebhooksInclude "sandbox": trueNormal events
ProvidersStandard only (Premium excluded)Standard + Premium tiers
Upfront balanceNot required (free)Required — key paused at €0 balance
CostFreeGGR %-based (Standard low · Premium higher)

Wallet callback example (sandbox):

{
  "username": "player123",
  "amount": -5.00,
  "game": "BookOfCats",
  "game_category": "BGaming",
  "transaction_id": "66a3f...",
  "signature": "hmac...",
  "sandbox": true
}

Your wallet endpoint should check the sandbox field and skip real balance changes when it's true.

Usage & Billing

An upfront prepaid balance is required to use the live API. Fund your account from the Dashboard; a live key with a €0 balance is paused (game launches and API calls return an error) until you deposit. Billing is on GGR — a percentage of each provider's monthly Gross Gaming Revenue (bets − wins), floored at €0 per provider — settled on the 1st of each month (UTC) 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.

MetricDescription
API RequestsTotal GET/POST calls to any endpoint
Game LaunchesSuccessful POST /launch calls that generated a session
Active SessionsCurrently open game sessions
Callback VolumeWallet callbacks forwarded to your endpoint

Webhooks

You can configure a webhook URL in the Dashboard to receive real-time notifications for events beyond game callbacks:

  • session.started — a player opened a game
  • session.ended — a player closed or timed out
  • round.completed — a game round finished (summary)
  • credit.low — your prepaid credit is running low relative to your GGR fees

All webhooks use the same HMAC-SHA256 signature scheme as wallet callbacks.

Providers List

The following 28 game providers are currently available:

Pragmatic Play — Premium
Greentube — Premium
Playtech — Premium
Habanero — Premium
BGaming — Premium
3 Oaks Gaming — Premium
PenguinKing (Octoplay) — Premium
Gamzix — Premium
Fugaso — Premium
PG Soft — Standard
Hacksaw Gaming — Standard
ELA Games — Standard
Endorphina — Standard
Synot — Standard
Inout Games — Standard
Mascot Gaming — Standard
Bellink — Standard
Gamomat — Standard
Tomhorn Gaming — Standard
CrashGames — Standard
Kajot — Standard
Fazi — Standard
Platipus — Standard
Iconic21 (LIVE Casino) — Standard

Premium providers are available on all paid plans. Standard providers are available on Growth and above. Sandbox mode (ek_test_ key) includes all 28 providers for testing.

Currencies

Supported session currencies (set per launch):

CurrencyCodeType
EuroEURFiat
US DollarUSDFiat
British PoundGBPFiat
Brazilian RealBRLFiat
Indian RupeeINRFiat
Turkish LiraTRYFiat
BitcoinBTCCrypto
EthereumETHCrypto
TetherUSDTCrypto

Currency is locked per session at launch time. Not all providers support all currencies — the GET /games endpoint filters by currency when the currency query param is set.

Changelog

v1.5 — May 2026

  • Added PenguinKing / Octoplay (191 slot titles) — premium tier
  • Added Playson, Belatra, Rubyplay, Iconic25 providers
  • Game catalog now exceeds 1,600 titles across 26 providers

v1.4 — May 2026

  • Added Gamzix provider (57 slot titles) — premium tier
  • Added Hacksaw Gaming (82 titles) — premium tier
  • Game catalog now exceeds 1,800 titles across 26 providers

v1.3 — May 2026

  • Added Synot, Inout Games, and Mascot Gaming providers (18 total)
  • Game catalog now exceeds 1,300 titles

v1.2 — May 2026

  • Added Kajot and Fazi providers
  • Game catalog now includes volatility and max-win metadata
  • Wallet callbacks include round_id on all operations

v1.1 — March 2026

  • Added CrashGames and Tomhorn Gaming providers
  • Introduced POST /launch/demo for fun-mode sessions
  • Rate limit headers now included in every response

v1.0 — January 2026

  • Initial release with 10 providers and 800+ games
  • Core endpoints: /games, /launch, wallet callbacks
  • HMAC-SHA256 callback signing

Need help? Contact support@bigbangcasino.bet or reach us on Telegram.