Create a session, get a launch URL
One call. You pass the player token, currency, market and RTP profile; you get back a signed launch URL valid for 15 minutes. Zilo never sees player PII — the token is opaque to us.
curl -X POST https://api.zilo.games/v1/sessions \ -H "Authorization: Bearer $ZILO_SANDBOX_KEY" \ -H "Content-Type: application/json" \ -d '{ "game_id": "neon-vault", "player_token":"opq_8f3a…", // opaque, issued by you "currency": "USD", "market": "US-NJ", "rtp_profile": 96, // 92 | 94 | 96 "wallet_mode": "seamless", "return_url": "https://lobby.example.com" }'
{
"session_id": "ses_01J8…",
"launch_url": "https://play.zilo.games/s/ses_01J8…?sig=…",
"expires_at": "2026-09-20T14:32:00Z",
"game": { "id": "neon-vault", "rtp": 96.4, "cert": "GLI-19-2026-0413" }
}Wallet callbacks you implement
| Endpoint | Method | When | Idempotent |
|---|---|---|---|
/wallet/balance | GET | Session start, after every round | — |
/wallet/debit | POST | Bet placed | Yes · by round_id |
/wallet/credit | POST | Win settled, refund | Yes · by round_id |
/wallet/rollback | POST | Round voided | Yes · by round_id |















