Skip to main content
Section 6

Casino configuration

Each casino can configure a game differently: bet limits per currency, and any per-game settings the game declares. The game reads these from one endpoint and behaves accordingly. Configuration is edited by the platform and the casino, never by the game provider.

Configuration types

Currency configs

Per casino, per game, per currency: minimum and maximum bet, default bet, suggested bet buttons, maximum win, auto-cashout range. Fixed shape, the same for every game.

Game configs

Per casino, per game: settings the game itself defines in a template: a skin, a bet-section mode, a feature flag. The platform does not know what they mean; it only checks types and required values.

Catalog

GET /api/v1/provider-catalog returns everything in one call, grouped casino → game. Call it at startup and refresh it periodically, or filter by providerId when a session arrives.

GET /api/v1/provider-catalog?gameId=101
Authorization: Bearer rly_acme_…

200 {
"statusCode": 200,
"message": "Provider catalog fetched successfully",
"data": [
{
"providerId": "66ffba1337e994c3009ebf40",
"name": "Operator Casino",
"createdAt": "2026-07-24T11:19:26.294Z",
"games": [
{
"gameId": 101,
"name": "Mines",
"status": "ACTIVE",
"gameConfig": {
"values": { "skin": "NEON", "betSectionType": "MY_BETS", "maxRounds": 100 },
"overrides": [ "betSectionType", "skin" ]
},
"currencyConfigs": [
{
"id": "6702…", "providerId": "66ffba1337e994c3009ebf40", "gameId": 101,
"currency": "USD",
"minBet": 0.5, "maxBet": 1000, "defaultBet": 10,
"betSuggestions": [10, 20, 50, 100],
"maxWin": 5000000,
"minAutoCashout": 1.01, "maxAutoCashout": 999, "defaultAutoCashout": 5,
"isRoundable": false, "isDefault": false,
"createdAt": "…", "updatedAt": "…"
}
]
}
]
}
]
}

Rules for reading it:

  • Only casinos that configured something for one of the game provider's games appear. A casino with no entry has no configuration for the game provider yet; the game's behaviour in that case is agreed with the platform team.
  • gameConfig.values is always complete: the template's defaults with the casino's overrides applied. Defaults never need to be filled in by the game. overrides lists which properties the casino set explicitly. gameConfig is null when the game has no template.
  • currencyConfigs lists only the currencies the casino configured. A session in an unlisted currency is a configuration gap to raise with the platform team.
  • Of the casino the response exposes providerId, name and createdAt. Nothing else about a casino is exposed to a game provider.

Currency config fields

FieldMeaning
minBet, maxBetAllowed stake range for one bet. Enforce both in the game before calling cash-out.
defaultBetStake to preselect when the game loads.
betSuggestionsQuick-pick stake buttons, in order.
maxWinCap on a single payout. Cap the credit amount in the game.
minAutoCashout, maxAutoCashout, defaultAutoCashoutAuto-cashout multiplier range and default, for games that have the feature. Ignore otherwise.
isRoundableWhether the game may round amounts for display in this currency.
isDefaultMarks the casino's default currency config for this game.

The shape is the one first-party crush games already read, so a game built for those needs no adaptation.

Game config template

A game with settings a casino should be able to vary describes them once as a template. The platform team creates it on the game provider's behalf from a property list in this form:

{
"gameId": 101,
"properties": [
{ "name": "skin", "type": "DROPDOWN", "values": ["CLASSIC", "NEON"], "required": true, "default": "CLASSIC" },
{ "name": "betSectionType", "type": "DROPDOWN", "values": ["ALL_BETS", "MY_BETS"], "required": true, "default": "ALL_BETS" },
{ "name": "maxRounds", "type": "NUMBER", "required": false, "default": 100 },
{ "name": "showLeaderboard","type": "BOOLEAN", "required": false, "default": true },
{ "name": "supportUrl", "type": "STRING", "required": false }
]
}
AttributeMeaning
nameThe key the game reads in gameConfig.values. Must not be providerId, gameId, _id, __v, id, createdAt or updatedAt.
typeSTRING, NUMBER, BOOLEAN or DROPDOWN. A dropdown carries its allowed values.
requiredA required property with no default must be answered by every casino before their config is accepted.
defaultUsed for every casino that did not override the property. Give every property a default unless a casino genuinely must choose.
Template changes.

Adding a property with a default is always safe: every casino resolves it immediately. Adding a required property without a default, removing a dropdown value a casino uses, or changing a property's type is refused if any casino already has a config it would break. Plan property names and types carefully up front.

Casino ids

GET /api/v1/providers/ids lists every casino id with its registration date, newest first, optionally limited to the last days (1 to 30). Use it to discover new casinos, and to build the providerIds list for /api/round-ended. The id of the casino behind a live session is also in the session validation response.