1. Round
[Game] FairPlay API
  • Getting Started
    • Introduction
    • Session and Token
    • Request and Response
    • Real-time Events (SSE)
    • Lotto Rules — หวยเฮงเฮง
    • Provably Fair
  • Player
    • Demo
      • Demo Login
    • Player Bet History
      GET
  • Common
    • Game
      • By Game Code
        • Provably Fair
          • Set Client Seed
          • Verify Result
          • Get Revealed Server Seed
        • Check Session
        • Get Balance
        • Get Provably-Fair State
      • Lobby Game List
  • Wallet
    • Wallet Status
      GET
  • Game
    • Lotto (หวยเฮงเฮง)
      • Lotto Rules
      • Rooms
        • By Room
          • Join Round
          • Place Multi-player Bet
          • Get Round Result
          • Room Event Stream
      • Tickets
        • Create Ticket
        • Inquiry My Tickets
        • Get Ticket
      • Round
        • Get My Bets
          POST
        • Get My Result
          POST
        • Get Round Provably Fair
          POST
      • Results
        • Inquiry Results
      • Get Rooms
        GET
      • Get Current Round
        POST
      • Get Pay Table
        GET
  • Appendix
    • Game List
    • Error Codes
    • Rate Limits
  • Language List
    GET
  • Ping
    GET
  • Schemas
    • DemoLoginRequest
    • DemoLoginResponse
    • DemoProfileResponse
    • ProfileResponse
    • GetHistoryResponse
    • BetRecord
    • GameInfo
    • Room
    • GetGameResponse
    • BetRequest
    • Bet
    • BetResponse
    • BetResult
    • GetProvablyFairResponse
    • SetClientSeedRequest
    • SetClientSeedResponse
    • RotateServerSeedResponse
    • VerifyResultRequest
    • VerifyResultResponse
    • GetServerSeedResponse
    • GetStatusResponse
    • JoinRoundResponse
    • PlaceMultiPlayerBetRequest
    • PlaceBetResponse
    • RoundResultResponse
    • SuccessResponse
    • ErrorResponse
  1. Round

Get Round Provably Fair

POST
/gapi/v1/g/lotto/round/provably-fair
Returns a round's provably-fair data: the seed commitment and, after settlement, the revealed seed, the client-seed input and the drawn number, so the player can verify the draw.
Auth: Player session — Authorization: Bearer {token}
Rate limit: 300 requests per 60 s per IP (LOTTO_ROUND_PROVABLY_FAIR)
Games: LOTTO
Rules
Lotto only: the route is under /g/lotto, so system maintenance and Lotto's own maintenance window both answer 503 99915.
Body key is roundId (lower-case d). Any player in the round's currency can read it, bet or not.
Before settlement only roundId, roundCode, status, drawnAt, ticketCount and serverSeedHash are returned; drawnAt is then 0001-01-01T00:00:00Z (it is never omitted).
The room mode is not returned; infer it: nonce present = MULTI, combinedClientSeed present = MULTI_CSEED.
Verify MULTI: sha256(revealedServerSeed) == serverSeedHash, and the 5th _-separated part of revealedServerSeed == number.
Verify MULTI_CSEED: sha256(revealedServerSeed) == serverSeedHash, and number = the first 6 bytes of HMAC-SHA256(key = revealedServerSeed, msg = combinedClientSeed), each byte % 10.
A cancelled round never reveals its seed, so number / revealedServerSeed never appear for it.
baseClientSeed and ticketChain are never returned today.
A round in another currency than the session answers 404 99941, like an unknown round.
ticketCount counts every player's tickets in the round.
Validation failures answer 400 99911 with a description listing the fields, e.g. roundId is required.
Flow
1.
Accept LOTTO only; validate roundId; check the session game.
2.
Load the round (demo or real); it must be in the session currency.
3.
Count the round's tickets.
4.
Not revealed yet: return the base fields.
5.
Revealed: add the revealed seed, the drawn number, and nonce (MULTI) or combinedClientSeed (MULTI_CSEED).

Request

Query Params

Header Params

Body Params application/json

Examples

Responses

🟢200OK
application/json
Bodyapplication/json

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🟠404Not Found
🟠429Too Many Requests
🔴500Internal Server Error
🔴503Service Unavailable
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://dev-api.ambfairgame.com/gapi/v1/gapi/v1/g/lotto/round/provably-fair?token=8d0c6a4e2b9f4f1c9a7e3b5d1c2e4f60' \
--header 'Authorization: Bearer 3f9a1c7e5b2d4f6081a3c5e7f9b1d3f5a7c9e1b3d5f7a9c1e3b5d7f9a1c3e5b7' \
--header 'Accept-Language: th' \
--header 'Content-Type: application/json' \
--data '{
    "roundId": "tm64903fa91c2e"
}'
Response Response Example
200 - Settled MULTI round
Seed revealed; nonce present because the room is MULTI.
{
    "code": "0",
    "description": "Success.",
    "traceID": "0f8e2c1a-6b3d-4e5f-9a7b-1c2d3e4f5a6b",
    "data": {
        "roundId": "tm64903fa91c2e",
        "roundCode": "tm64903fa91c2e",
        "status": "settled",
        "drawnAt": "2026-09-30T08:15:02.117Z",
        "nonce": "a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3",
        "ticketCount": 12,
        "serverSeedHash": "3f04d98ae3617254171fd4f378882f775947d5e8b5218b6978401d5e832b5d1a",
        "revealedServerSeed": "default_LOTTO_1_1790756100123456789_482917_a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3",
        "number": "482917"
    }
}
Modified at 2026-09-30 13:23:45
Previous
Get My Result
Next
Inquiry Results
Built with