# Game catalogue > Listing the games enabled for your account, and what each field means. Source: https://casinoapipro.com/docs/catalogue The catalogue is what your account can launch — not everything we host. Enabling a game is a toggle in your dashboard; there is no new endpoint and no release on your side. ## List games `GET /v1/games` — auth: operator-api **Query** | Name | Type | Required | Description | | --- | --- | --- | --- | | `limit` | integer | no | Page size, 1–200. Defaults to `50`. | | `cursor` | string | no | The `next_cursor` from the previous page. | | `category` | string | no | Filter by category, e.g. `INSTANT` or `CRASH`. Case-insensitive. | | `provider` | string | no | Filter by provider name. Case-insensitive, exact match. | | `q` | string | no | Substring match on name or slug. | | `enabled_only` | true | false | no | Defaults to `true`: only games enabled for you, and active on the platform. Pass `false` to see the rest of your catalogue with `enabled: false`. | ```bash curl https://api.casinoapipro.com/v1/games \\ -H "Authorization: Bearer $ACCESS_TOKEN" ``` ```json { "data": [ { "id": "0f7c2a1e-5b3d-4c8a-9e11-6d2f8b40c7aa", "slug": "mines", "name": "Mines", "provider": "Casino Api Pro", "category": "INSTANT", "thumbnail_url": "https://assets.casinoapipro.com/games/mines.80b81d64.svg", "rtp": "97.000", "volatility": "variable", "min_bet": "0.10", "max_bet": "50000.00", "max_win": "500000.00", "currencies": ["GHS"], "enabled": true, "status": "ACTIVE", "is_multiplayer": false } ], "next_cursor": null, "has_more": false } ``` > **There is no count field** > > The response is a cursor page, not a total. Paginate by following `next_cursor` while `has_more` is true; both are always present, and `next_cursor` is `null` on the last page. At the catalogue's current size one request is the whole of it, but do not build on that. ## Fields worth knowing | Name | Type | Meaning | | --- | --- | --- | | `id` | uuid | Our identifier. This is what arrives as `gameId` in [wallet calls](/docs/wallet), so store it if you key on it there. | | `slug` | string | Stable human-readable identifier. Use it as `game_id` when creating a session — that endpoint accepts either. | | `rtp` | decimal string | Theoretical return as a percentage, three decimals, _without_ a percent sign — `"97.000"` means 97%. Derived from the release’s mathematics, never typed by hand. Null only if unset. | | `min_bet / max_bet / max_win` | decimal string | Your account limits, already applied — not the platform-wide ones. These are the numbers your bets are actually validated against. | | `enabled` | boolean | Whether _you_ may launch it. Always true unless you asked for `enabled_only=false`. | | `status` | string | The game’s platform-wide state, e.g. `ACTIVE`. A game can be enabled for you and still be down for maintenance. | | `volatility` | string | Free text, not an enum, and lower case: today the values are `low`, `medium`, `high`, `variable` and `player-chosen`. Display it; do not switch on it. | | `is_multiplayer` | boolean | True when one round settles many players at once, as in `goal-jet`. Shared among _your_ players: each operator flies their own. Affects how rounds appear in reporting. | | `thumbnail_url` | string | Content-hashed and safe to cache forever. The URL changes when the art does. Your own uploaded artwork wins over ours here. | ## Currencies Every game accepts every currency your account holds. There is no per-game currency list to be added to, and nothing to ask us for: add a currency under Settings → Business, or `PATCH /v1/business`, and every game accepts it on the next session. The `currencies` field above is therefore your account’s list, not a property of the game — it answers “what can I open a session in”, which is what anyone reading it is asking. Codes are ISO 4217 and validated when you set them, so a typo is refused at that point rather than surfacing later as sessions failing in a currency that does not exist. `GET /v1/public/currencies` lists every code we accept, with its minor units. > **Stake limits follow the currency** > > A release carries one set of limits. They are restated in the session’s currency and rounded, so a minimum of `0.50` is about 140 rupees or 12,500 dong rather than half a paisa — roughly the same economic bet in every currency. Set your own per-currency limits and yours are used instead; they may narrow the platform’s figures, never widen them. ## Fetch one game `GET /v1/games/{gameId}` — auth: operator-api Accepts either the slug or the id, and returns exactly the object above — the same fields, no more. For the mathematics of a specific release, see [provably fair](/docs/provably-fair). ```bash curl https://api.casinoapipro.com/v1/games/mines \\ -H "Authorization: Bearer $ACCESS_TOKEN" ``` A slug that exists on the platform but is not in your catalogue returns `404 GAME_NOT_FOUND`, the same as one that does not exist at all. ## The public catalogue There is also an unauthenticated version, used by our own marketing site. It shows games that are live on the platform, without account-specific limits, and is rate limited by IP. ```bash curl https://api.casinoapipro.com/v1/public/games ``` ```json { "count": 5, "categories": ["CRASH", "INSTANT"], "data": [ { "slug": "goal-jet", "name": "Goal Jet", "provider": "Casino Api Pro", "category": "CRASH", "description": "A shared flight every player watches at once…", "thumbnail_url": "https://assets.casinoapipro.com/games/goal-jet.613da995.svg", "rtp": "97.00%", "volatility": "high", "min_bet": "0.50", "max_bet": "50000.00", "currencies": ["GHS", "NGN", "KES", "USD", "EUR"], "is_multiplayer": true, "tags": ["crash", "multiplayer", "popular"], "version": "1.1.0" } ] } ``` > **It is a different shape, and not the one to integrate against** > > The public response is a whole list with a `count`, not a cursor page. Its `rtp` carries a percent sign (`"97.00%"`) where the authenticated one does not (`"97.000"`). It adds `description`, `tags` and `version`, and omits `id`, `max_win`, `enabled` and `status`. Its limits are the platform defaults, not yours. Build against `/v1/games`.