Spin the wheel
LivePOST
/api/v1/wheel/spinConsumes 1 spin — the system draws the winning slot and credits the prize immediately, returning the slot to your client.
The outcome is drawn system-side and final before the response — the client animation is presentation only.
A positive prize is credited instantly (a WHEEL entry in the transaction history) and adds deposit turnover equal to prize × wager_multiplier.
The wheel is only available on sites with the wheel enabled at the agent level (TRANSFER wallet) — otherwise 6203 is returned.
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Yes | Used — send Bearer <member access_token> |
| X-Api-Key | string | Yes | Agent API key (ak_…) from the bo screen |
| X-Timestamp | string | Yes | Signing time in unix milliseconds (±300s skew allowed) |
| X-Nonce | string | Yes | Unique per-request value (UUIDv4) for replay protection |
| X-Signature | string | Yes | hex(HMAC-SHA256(secret, canonical)) — see the Authentication page |
| X-Player-IP | string | — | The player's real IP (IPv4/IPv6) — recommended (used in login history) |
| X-Player-UA | string | — | The player's User-Agent (optional — recorded in login history) |
| X-Request-Id | string | — | Your correlation id — echoed back as request_uuid (recommended) |
| x-lang | string | — | th (default) or en — the language of message |
Response
Fields in data
| Field | Type | Required | Description |
|---|---|---|---|
| slot_index | number | — | The winning slot — stop the spin animation on it |
| label | string | — | Label of the winning slot |
| prize_amount_thb | string | — | Prize value (THB, string) — "0" = no win |
| balance | string | null | — | Wallet balance after the prize credit — null when the slot had no prize (nothing credited). |
Response example
{
"success": true,
"code": 0,
"message": "Spin completed",
"data": {
"slot_index": 3,
"label": "20 บาท",
"prize_amount_thb": "20",
"balance": "195.50"
},
"request_uuid": "c4a8f2d6-1b39-4e75-90cd-5e7a3f8b1d64"
}Possible error codes
| code | Name | HTTP | Message |
|---|---|---|---|
| 6202 | WHEEL_NO_SPINS | 400 | You have no spins availableNo spins left (spins_available = 0) — more qualifying deposits earn new spins |
| 6201 | WHEEL_NOT_ENABLED | 400 | The lucky wheel is not enabledThe agent has the wheel disabled |
| 6203 | WHEEL_NOT_ELIGIBLE | 400 | The lucky wheel is not available for this accountThis account cannot use the wheel (site/wallet does not qualify) |
| 9002 | SERVICE_UNAVAILABLE | 503 | Service unavailableThe prize system is temporarily unavailable — the spin is not consumed, retry later |
| 1001 | UNAUTHORIZED | 401 | Unauthorized |
| 1007 | TOKEN_INVALID | 401 | Token invalid |