Get started
Quickstart
From nothing to a playable sandbox session in six steps.
This walks from nothing to a playable game session in the sandbox. Everything here uses play money — no licence is required to complete it, and no real balance can move.
1. Get credentials
Ask us for a sandbox account at casinoapipro.com. You will get a dashboard login; create a credential pair there. The secret is shown once — store it in your secret manager before closing the dialog.
{
"api_key": "ck_test_7f3c9a21",
"api_secret": "cs_test_9d41…shown once"
}2. Exchange them for a token
Credentials are long-lived; access tokens are not. Exchange the pair for a bearer token and cache it until it expires.
curl -X POST https://api.casinoapipro.com/v1/auth/token \
-H "Content-Type: application/json" \
-d '{
"api_key": "ck_test_7f3c9a21",
"api_secret": "cs_test_9d41"
}'3. List the games you can launch
curl https://api.casinoapipro.com/v1/games \
-H "Authorization: Bearer $ACCESS_TOKEN"The response contains only games enabled for your operator account, with your per-game stake limits already applied.
4. Point us at a wallet
Before a session can be created, we need somewhere to send debits and credits. In the sandbox you can skip writing one: create a sandbox player from the dashboard and we will use the built-in play-money wallet, which honours the same idempotency contract as a real one.
iTest your retries properly
transaction_ids the way production does, and can be told to fail, so your retry path is genuinely exercised before it matters.5. Create a session
curl -X POST https://api.casinoapipro.com/v1/sessions \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"game_id": "mines",
"player_id": "your_player_42",
"currency": "GHS"
}'{
"session_id": "sess_kgv5ws4duteqwhvjobok",
"launch_url": "https://games.casinoapipro.com/play?token=eyJhbGciOi…",
"expires_at": "2026-08-29T19:11:56.237Z",
"game": { "id": "d533d22e…", "slug": "mines", "name": "Mines" },
"player_id": "your_player_42",
"currency": "GHS"
}6. Open the launch URL
Redirect the player, or drop it into an <iframe>. The token in the URL is scoped to one operator, one player and one game, and it is short-lived — mint a fresh session per launch rather than storing the URL.
What to build next
- Wallet integration — the five calls that move money.
- Idempotency — read before you write retry logic.
- Webhooks — round and transaction events, signed.