Skip to Content
API ReferenceRound history

Round history

Read a player’s game rounds from your backend, for regulatory records, dispute handling or a player’s own history page. Each round carries the amounts your wallet received, in the session’s currency, and its roundId is the betId of its wallet requests.

List a player’s rounds

POST /rounds/history Content-Type: application/json x-operator-secret: YOUR_WEBHOOK_SECRET
{ "clientId": "your-client-id", "userId": "test-player", "from": "2026-10-01T00:00:00Z", "to": "2026-11-01T00:00:00Z", "limit": 50 }
FieldRequiredRules
clientIdYesYour client ID; string, 1–128 characters.
userIdYesThe player’s ID you send when creating sessions; string, 1–128 characters.
fromNoISO 8601 timestamp with a time zone. Rounds recorded at or after it.
toNoISO 8601 timestamp with a time zone, later than from. Rounds recorded before it.
gameNoAn event key, such as dice.
limitNoRounds per page, from 1 to 100. Default 50.
cursorNoThe nextCursor of the previous page.

Success returns HTTP 200 with the newest rounds first:

{ "rounds": [ { "roundId": "6650a3f1e4b0c912d8a74b21", "userId": "test-player", "game": "dice", "status": "settled", "currency": "ZAR", "stake": 10, "payout": 19.8, "multiplier": 1.98, "freeBet": false, "startedAt": "2026-10-07T14:03:11.402Z", "updatedAt": "2026-10-07T14:03:11.402Z" } ], "nextCursor": "MTc5MTM4MTc5MTQwMi42NjUwYTNmMWU0YjBjOTEyZDhhNzRiMjE" }

While nextCursor is not null, repeat the request with it and the same filters to read the next page. Treat the cursor as opaque. A player with no rounds returns an empty list.

Round fields

FieldMeaning
roundIdThe round’s ID: the betId of its wallet requests.
userIdYour player’s ID.
gameThe game’s event key.
statusopen while the round is in play, settled once it has ended, voided if Maktub cancelled it by compensation. Voided rounds stay listed for your records.
currencyThe session’s currency. stake and payout are in it.
stakeThe amount staked in the round. On a free bet, the promotional stake, which was not debited.
payoutThe amount returned to the player; 0 when nothing was returned.
multiplierThe round’s return multiplier; 0 when nothing was returned.
freeBettrue when the round was played with a free bet.
freeBetIdThe free-bet grant used, on free-bet rounds.
startedAtWhen Maktub recorded the round, once its stake was accepted. Rounds are ordered by it.
updatedAtWhen the round’s record last changed.
voidedAtWhen the round was voided, on voided rounds.

Amounts have up to ten decimal places, as on the wallet webhook. An open round’s stake, payout and multiplier can still change until it settles.

Plinko and Wire list each ball as its own round. A multi-ball bet is one wallet round whose betId is the roundId of its first ball; the balls’ stakes and payouts add up to the batch’s wallet amounts.

Read one round

POST /rounds/detail Content-Type: application/json x-operator-secret: YOUR_WEBHOOK_SECRET
{ "clientId": "your-client-id", "roundId": "6650a3f1e4b0c912d8a74b21" }

Success returns HTTP 200 with the round fields plus the game’s result and fairness data:

{ "round": { "roundId": "6650a3f1e4b0c912d8a74b21", "userId": "test-player", "game": "dice", "status": "settled", "currency": "ZAR", "stake": 10, "payout": 19.8, "multiplier": 1.98, "freeBet": false, "startedAt": "2026-10-07T14:03:11.402Z", "updatedAt": "2026-10-07T14:03:11.402Z", "outcome": { "result": 72.13, "target": 50, "condition": "over" }, "fairness": { "hashedServerSeed": "2c1f0b7e9a3d4c58b6e1f07a9d3c2b4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c", "clientSeed": "player-chosen-seed", "nonce": 42 } } }
FieldMeaning
outcomeThe game’s result, such as the roll, cards or drawn numbers. Its fields differ by game. null while the round is open. Use stake and payout for amounts.
fairnessThe provably fair data the round was played with, such as its hashed server seed, client seed and nonce.

A round from another account returns the same 404 as an unknown ID.

Errors

HTTP statusMeaning
400Invalid fields, an invalid cursor, or to not later than from.
401Invalid client ID or webhook secret.
404No round with this ID in your account.
429Too many requests or failed authentication attempts. Wait before retrying.

Call these endpoints only from your backend, with the same webhook secret you use for sessions. Round history is personal data about your players; restrict who can read it in your systems.

Last updated on