Skip to content

List games

GET
/games

List available games with optional filtering, search, and pagination. Results are scoped to the games enabled for the calling operator’s configured providers and selections.

sub_operator_ref
string
brand-01

Platform accounts only, and required for them. Which brand’s storefront to render. Game/provider enablement is per brand, so omitting this returns your platform’s default brand’s catalog rather than an error. Sending it from a non-platform key is a 400 (E6006). If your platform has no default brand provisioned, the call is a 409 (E6010); if it is configured with require_sub_operator_ref, omitting the parameter is a 400 (E6005).

Single-casino integrations never send this field. See the Platform accounts guide if you are a platform partner.

Omit it to get the default brand; sending it empty is a 400 (E6004), not a fallback — see sub_operator_ref on POST /v1/sessions for why the two differ.

A brand’s first call with an unseen ref auto-provisions it and gives it the same games and providers your platform already has available — so this call returns a usable catalog, and the game_ids in it can be launched immediately via POST /v1/sessions with the same ref. No manual onboarding step.

Same format and matching rules as sub_operator_ref on POST /v1/sessions.

provider
string
truelabs

Filter by provider code (e.g. truelabs, bgaming).

provider_game_id
string

Filter by the provider’s own game identifier.

type
string
slots

Filter by game type (slots, table, crash, …).

volatility
string
Allowed values: low medium high
rtp_min
number format: float
<= 100
95
rtp_max
number format: float
<= 100
97.5
features
string

Comma-separated feature tags (e.g. bonus_buy,megaways).

search
string

Full-text search across game names.

sort
string
Allowed values: name -name rtp -rtp release_date -release_date sort_order -sort_order created_at -created_at

Sort field; prefix with - for descending.

page
integer
default: 1 >= 1
per_page
integer
default: 50 >= 1 <= 200
currency
string
>= 3 characters <= 3 characters
EUR

Filter to games playable in this ISO-4217 currency. A game matches when the currency is in its effective supported_currencies (the game’s own list if set, else the provider default). Use this to build a storefront that never shows a player a game their wallet currency cannot open.

Page of games.

object
games
required
Array<object>
object
id
required

The Aggregator catalog UUID. Pass THIS as game_id when creating a real or demo session.

string format: uuid
provider_game_id
required

The provider’s own game code. For display/reference only — do NOT use it to create sessions (use id).

string
provider_code
required
string
truelabs
name
required
string
brand
string
category
required
string
game_type
string
slots
rtp
number format: float
<= 100
volatility
string
Allowed values: low medium high
has_mobile
boolean
has_desktop
boolean
has_demo
required
boolean
thumbnail_url
string format: uri
free_rounds_support

Whether this game supports free rounds / free spins. When true you can issue free rounds on it via POST /v1/free-rounds; issuance on a game where this is false is rejected at grant time. Filter your free-round campaigns on this field.

boolean
blocked_countries

Effective ISO-3166-1 alpha-2 countries this game may NOT be launched in — the provider-declared block carried to you. It is the per-game override when the provider sets one, otherwise the whole-provider default (GET /v1/providers/registry). A player whose country is in this list is rejected at session create; filter your storefront on it too. Empty = no country restriction.

Array<string>
[
"TR",
"FR"
]
certified_markets

Informational allow-list of the regulated markets the game is certified for, as declared by the provider. Use it to filter your storefront to games your licence permits.

This is not a launch gate and is a different axis from blocked_countries: blocked_countries is a block-list checked against the player country at session create, whereas certified_markets describes which licences may carry the game. We do not enforce it — choosing which games to offer under your licence is your responsibility. null when the provider declares no market data.

object
regulated

ISO-3166-1 alpha-2 codes of the certified regulated markets.

Array<string>
[
"DE",
"EE",
"GI",
"IM",
"MT"
]
dotcom

true when the game is approved for the international / offshore (”.COM”, rest-of-world) market — a market type, not a country, so it is never expanded into a country list.

boolean
low_barrier

ISO-3166-1 alpha-2 codes of certified low-barrier markets.

Array<string>
[
"AM",
"LV",
"MX",
"ME",
"RS"
]
other

Certified markets with no ISO country mapping (e.g. territory licensing authorities), preserved verbatim. Omitted when empty.

Array<string>
[
"Kahnawake"
]
raw

The provider’s original markets string. Omitted when the data came only from structured certification fields.

string
features
Array<string>
release_date
string format: date
supported_currencies

Effective ISO-4217 currencies this game can be launched in: the game’s own override if set, else the provider default. An empty array means no declared restriction is known. Filter the catalog with the currency query parameter; treat this as the source of truth for which player wallet currencies a game supports before launch.

Array<string>
[
"USD",
"EUR"
]
min_bet

Provider-declared minimum stake per spin, quoted in bet_limits_currency. null when the provider has not declared it. No FX conversion is applied — the value is exactly as the provider quotes it.

number
nullable
0.1
max_bet

Provider-declared maximum stake per spin, quoted in bet_limits_currency. null when undeclared.

number
nullable
100
default_bet

Provider-declared default stake per spin, quoted in bet_limits_currency. null when undeclared.

number
nullable
1
bet_limits_currency

The currency the min_bet / max_bet / default_bet values are quoted in (canonical code, fiat or crypto). Present whenever any bet limit is set; null when no bet limits are declared. These values are NOT converted to the player’s wallet currency — treat them as the provider’s reference quote.

string
nullable /^[A-Z]{3,8}$/
EUR
max_win_multiplier

Maximum win as a multiple of the stake (e.g. 5000 = 5000×). A currency-agnostic stake multiplier, NOT a money amount. null when the provider has not declared it.

number
nullable
5000
bet_steps

The discrete valid-stake ladder for one currency, when known — e.g. for issuing free rounds. Single-currency (no FX), so it answers only for currency. null when no ladder is on file (then use GET /v1/games/{game_id}/stakes / provider-side validation).

object
currency
required
string
EUR
steps
required
Array<number>
[
0.2,
0.4,
0.6,
0.8,
1,
2,
4
]
total
required
integer
page
required
integer
per_page
required
integer
X-API-Mode
string
Allowed values: live test

Echoes the active environment for this key.

X-RateLimit-Limit
integer

Rate-limit ceiling for this key on this endpoint family.

X-RateLimit-Remaining
integer

Calls remaining in the current window.

X-RateLimit-Reset
integer

Unix timestamp when the current rate-limit window resets.

Missing, invalid, or revoked API key.

object
error
required
object
code
required

Machine-parseable error code. See https://docs.aggregator.gg/resources/error-codes/.

string
/^E[0-9A-F][0-9]{3}$/
E0001
type

Snake-case mnemonic for the code (e.g. game_blocked_jurisdiction, player_self_excluded). Branch on code; type is for readability.

string
game_blocked_jurisdiction
message
required
string
request_id

Correlation ID for support escalation.

string
details
object
key
additional properties
any

Rate limit exceeded; consult Retry-After.

object
error
required
object
code
required

Machine-parseable error code. See https://docs.aggregator.gg/resources/error-codes/.

string
/^E[0-9A-F][0-9]{3}$/
E0001
type

Snake-case mnemonic for the code (e.g. game_blocked_jurisdiction, player_self_excluded). Branch on code; type is for readability.

string
game_blocked_jurisdiction
message
required
string
request_id

Correlation ID for support escalation.

string
details
object
key
additional properties
any
Retry-After
integer

Seconds to wait before retry.