> ## Documentation Index
> Fetch the complete documentation index at: https://docs.playstarters.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch Games

> Retrieve the catalog of games enabled for your operator account, with optional filters.

Returns the catalog of games currently enabled on your operator account. Use the query parameters to filter the result set.

## Endpoint

```http theme={null}
GET /operator/games
```

## Headers

| Header          | Value                      |
| --------------- | -------------------------- |
| `Authorization` | `ApiKey ps_<your_api_key>` |

## Query parameters

<ParamField query="search" type="string">
  Filter games by name (case-insensitive, partial match).
</ParamField>

<ParamField query="providerId" type="string">
  Filter games by provider UUID. Get provider IDs from [`GET /operator/providers`](/api/operator/providers).
</ParamField>

<ParamField query="gameType" type="string">
  Filter by game type. Examples: `slots`, `live`.
</ParamField>

## Example request

```bash theme={null}
curl -X GET "https://api.playstarters.io/operator/games?providerId=PROVIDER_UUID&gameType=slots" \
  -H "Authorization: ApiKey ps_YOUR_API_KEY"
```

## Response — 200 OK

```json theme={null}
[
  {
    "id": "uuid",
    "name": "Sweet Bonanza",
    "slug": "sweet-bonanza",
    "gameType": "slots",
    "thumbnailUrl": "https://cdn.example.com/sweet-bonanza.png",
    "provider": {
      "id": "uuid",
      "name": "Pragmatic Play",
      "code": "pragmatic"
    },
    "restrictedCountries": ["US", "GB", "FR"]
  }
]
```

### Response fields

<ResponseField name="id" type="string">
  Unique identifier (UUID) for the game. Use this value as the `gameId` when calling [`POST /operator/launch`](/api/operator/launch).
</ResponseField>

<ResponseField name="name" type="string">
  Display name of the game.
</ResponseField>

<ResponseField name="slug" type="string">
  URL-safe identifier. Useful for building game-specific pages on your site.
</ResponseField>

<ResponseField name="gameType" type="string">
  Game category. Examples: `slots`, `live`, `table_game`, `crash`.
</ResponseField>

<ResponseField name="thumbnailUrl" type="string | null">
  URL to a thumbnail image for the game. May be `null` if no image is available.
</ResponseField>

<ResponseField name="provider" type="object">
  The provider that supplies this game.

  * `id` — UUID of the provider
  * `name` — Display name
  * `code` — Short code (e.g. `pragmatic`, `bgaming`)
</ResponseField>

<ResponseField name="restrictedCountries" type="string[]">
  ISO 3166-1 alpha-2 country codes where this game is **blocked**. Only present when restrictions exist. Use this to hide or disable games for players in restricted countries.
</ResponseField>

<Tip>
  Cache the catalog and refresh on a schedule (e.g. every hour). New games and disabled titles are reflected on the next sync.
</Tip>
