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.valuesis always complete: the template's defaults with the casino's overrides applied. Defaults never need to be filled in by the game.overrideslists which properties the casino set explicitly.gameConfigisnullwhen the game has no template.currencyConfigslists 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,nameandcreatedAt. Nothing else about a casino is exposed to a game provider.
Currency config fields
| Field | Meaning |
|---|---|
minBet, maxBet | Allowed stake range for one bet. Enforce both in the game before calling cash-out. |
defaultBet | Stake to preselect when the game loads. |
betSuggestions | Quick-pick stake buttons, in order. |
maxWin | Cap on a single payout. Cap the credit amount in the game. |
minAutoCashout, maxAutoCashout, defaultAutoCashout | Auto-cashout multiplier range and default, for games that have the feature. Ignore otherwise. |
isRoundable | Whether the game may round amounts for display in this currency. |
isDefault | Marks 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 }
]
}
| Attribute | Meaning |
|---|---|
name | The key the game reads in gameConfig.values. Must not be providerId, gameId, _id, __v, id, createdAt or updatedAt. |
type | STRING, NUMBER, BOOLEAN or DROPDOWN. A dropdown carries its allowed values. |
required | A required property with no default must be answered by every casino before their config is accepted. |
default | Used for every casino that did not override the property. Give every property a default unless a casino genuinely must choose. |
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.