Casino Api Pro

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.

http
HTTP/1.1 422 Unprocessable Entity
X-Request-Id: fa1bc6b7-bd54-480e-92c1-6ffa700d6039
Content-Type: application/json

The 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

A header is latin-1 on the wire, so an id carrying anything outside that set came back altered — 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

We adopt your id on calls authenticated with your API credential. A request from inside the launcher is made by the player's browser on a launch token, so we always generate our own there — a value a player chose must not end up in your wallet log looking like ours.
js
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.
js
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

The header went out on movements an operator raised directly and not on movements the launcher raised, which is almost all of them. An operator who followed this page and stored it ended up with a column that was always null. It is sent on every call now.

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:

GET/v1/rounds/{roundId}/wallet-callsoperator-api

That 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

A single player action often raises two — a bet and a win settle together — and both carry the same id, because the action is the thing you would be asked about, not the leg.

The API request log

GET/v1/api-logsoperator-api

A 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

A round played inside the launcher makes no call of yours, so it appears here not at all. For those, the record is GET /v1/rounds/{roundId}/wallet-calls above.