Skip to content

Open app

List games

GET
/games

List available games with optional filtering, search, and pagination. An incomplete or unavailable catalog read returns DATABASE_ERROR (503) for any provider; partial results are not returned. Results are scoped to the games enabled for the calling operator’s configured providers and selections.

Platform accounts send sub_operator_ref to pick the brand; see Platform accounts for the default brand.

Mobule requires current support approval for the exact organization bound to the authenticated operator key. Unbound keys cannot infer an organization. For a platform key, the approval of the platform’s organization covers its brands; a suspended or retired brand is refused. Discovery omits unapproved games (direct game/stakes lookup returns 404). Launches and launcher re-reads return PROVIDER_ACCESS_REQUIRED (403) on denial; storage uncertainty returns PROVIDER_ACCESS_UNAVAILABLE (503). Requests for other providers keep their existing access policy.

sub_operator_ref
string
brand-01

Platform accounts only. 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, ebaka).

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
string format: uuid
provider_game_id
required
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. true means you can issue free rounds on it via POST /v1/free-rounds; a false game is rejected at grant time. Filter your free-round campaigns on this. For Mobule it mirrors the provider’s is_freerounds_enabled flag as of the last catalogue sync.

boolean
blocked_countries
Array<string>
certified_markets

Informational allow-list of regulated markets the game is certified for, as declared by the provider. This is NOT a launch gate - it is a licensing hint so you can filter the catalog by what your licence permits. null when the provider declares no market data. (The launch gate is blocked_countries, enforced against the operator-declared player country.)

object
regulated

ISO-3166-1 alpha-2 codes of 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.

boolean
low_barrier

ISO 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>
raw

The original provider 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 (provider_configs.supported_currencies). An empty array means no declared restriction is known. Filter the catalog with the currency query parameter, and treat this as the source of truth for which player wallet currencies a game supports before launch.

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

Minimum stake per spin, quoted in bet_limits_currency exactly as the provider declared it - the platform never converts limits between currencies. null when the provider has not declared a limit.

number format: float
nullable
0.1
max_bet

Maximum stake per spin, quoted in bet_limits_currency. null when undeclared.

number format: float
nullable
100
default_bet

Suggested default stake the operator may pre-select, quoted in bet_limits_currency. null when undeclared.

number format: float
nullable
1
bet_limits_currency

The currency min_bet/max_bet/default_bet are quoted in (canonical upper-case code). null exactly when no bet value is declared. Values are NOT converted to the player’s wallet currency.

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

Maximum win expressed as a multiple of the stake (currency-agnostic). null when the provider has not declared a cap.

number format: float
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://hub.aggregator.gg/error-reference/.

string
/^(E[0-9A-F][0-9]{3}|PROVIDER_ACCESS_REQUIRED|PROVIDER_ACCESS_UNAVAILABLE)$/
E0001
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://hub.aggregator.gg/error-reference/.

string
/^(E[0-9A-F][0-9]{3}|PROVIDER_ACCESS_REQUIRED|PROVIDER_ACCESS_UNAVAILABLE)$/
E0001
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.

Catalog read incomplete or unavailable (DATABASE_ERROR), or provider access storage unavailable (PROVIDER_ACCESS_UNAVAILABLE).

object
error
required
object
code
required

Machine-parseable error code. See https://hub.aggregator.gg/error-reference/.

string
/^(E[0-9A-F][0-9]{3}|PROVIDER_ACCESS_REQUIRED|PROVIDER_ACCESS_UNAVAILABLE)$/
E0001
message
required
string
request_id

Correlation ID for support escalation.

string
details
object
key
additional properties
any