Get started
Request IDs & logs
The X-Request-Id header, passing your own trace id through, and what to log.
Every response carries an X-Request-Id. It is the fastest route from "something went wrong" to an answer, and the first thing support will ask for.
It travels in both directions. The id on a call you make to us is one half; the id we put on a call we make to your wallet is the other, and that is the half most integrations need, because most movements are raised by a player inside the launcher rather than by you.
The header
HTTP/1.1 422 Unprocessable Entity
X-Request-Id: fa1bc6b7-bd54-480e-92c1-6ffa700d6039
Content-Type: application/jsonThe same value appears as request_id inside every error body, so you can log it whether or not you keep response headers.
Supplying your own
Send X-Request-Id and we will use it instead of generating one. If you already have a trace id, passing it through means one identifier spans your logs and ours.
It must be 1–128 characters of letters, digits, dot, colon, underscore or hyphen — the shapes real tracing produces, UUIDs and hex trace ids included. Anything else is dropped and we generate our own instead.
iDropped rather than cleaned up
abcédef was returned as abcédef, which no longer matches what you sent and fails to correlate without saying so. A visibly generated id tells you nothing usable arrived; half of yours would not.iOn calls you make, not on rounds your players play
await fetch(url, {
method: "POST",
headers: {
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json",
// Your trace id, carried through to our logs.
"X-Request-Id": ctx.traceId,
},
body: JSON.stringify(payload),
});What to log
- The request id, on both success and failure.
- The error
code, never the message. - Your
transaction_id, so a support question can be answered from either end. - Never the token, never the credential secret.
logger.warn({
request_id: body.error.request_id,
code: body.error.code,
transaction_id: payload.transaction_id,
status: res.status,
}, "casinoapipro rejected a movement");The id on calls we make to you
Every call we make to your wallet carries x-request-id. It is our id for the request that caused the movement: the same id we returned to you when you raised it through /v1/transactions/*, and our id for the player's action when the launcher raised it — in which case you never saw it, because you made no call.
!Missing on launcher rounds until 13 September 2026
Store it against your own wallet row. It is the one value that exists on both sides of the conversation, and you can quote it straight back at us:
/v1/rounds/{roundId}/wallet-callsoperator-apiThat returns every movement we raised on a round with your wallet's response body verbatim and the request_id we sent on each. See running it from your own servers.
iOne id can cover more than one movement
The API request log
/v1/api-logsoperator-apiA searchable log of your recent calls — method, path, status, request id and duration — in the dashboard and over the API. It is the right first stop when an integration behaves differently in production than on your machine, because it shows what we actually received rather than what you believe you sent.
iIt covers calls you make to us, and only those
GET /v1/rounds/{roundId}/wallet-calls above.