## Get Games

This endpoint provides GP with a list of available games and promotional details,
including support for the buy feature, awarded feature, and free rounds.
The returned information may vary depending on whether these features are activated for the brand,
ensuring that only relevant data is provided.

**API Call Sample:**

```shell curl
curl -i -X GET \
  -u '<username>:<password>' \
  'https://asia.stage.rubyplay.io/api/v1/game?id=rp_140&freeRoundsEnabled=true&awardedFeatureEnabled=true&gameEventsEnabled=true'
```

```json 200 application/json
{
  "content": [
    {
      "id": "rp_140",
      "name": "Mad Hit Diamonds 96",
      "wager": 1,
      "maxWinMultiplier": 4100,
      "betSizes": {
        "EUR": [
          0.1,
          0.15,
          0.2,
          0.25,
          0.5,
          7.5,
          10,
          15,
          20,
          25,
          50,
          75,
          100,
          200,
          500
        ]
      },
      "freeRoundsEnabled": true,
      "awardedFeatureEnabled": true,
      "buyFeatures": [
        {
          "buyFeatureType": "freespin",
          "priceMultiplier": 50
        }
      ],
      "gameEventsEnabled": true,
      "gameEvents": [
        {
          "eventName": "ACTIVATOR",
          "probability": 1.2,
          "probabilityBuyFeature": 3.27
        }
      ]
    }
  ],
  "total": 150
}
```

```json 401 application/json
{
  "code": "NOT_AUTHORIZED",
  "message": "Authentication failed",
  "timestamp": "2026-01-25T14:30:00Z",
  "path": "/api/v1/game"
}
```

```json 403 application/json
{
  "code": "INSUFFICIENT_SCOPE",
  "message": "Insufficient scope to access this resource. Required: game:get",
  "timestamp": "2026-01-25T14:30:00Z",
  "path": "/api/v1/game"
}
```

```json 500 application/json
{
  "code": "UNKNOWN_ERROR",
  "message": "Something went wrong",
  "timestamp": "2026-01-25T14:30:00Z",
  "path": "/api/v1/game"
}
```

```json 504 application/json
{
  "code": "TIMEOUT",
  "message": "The server did not respond within the expected time",
  "timestamp": "2026-01-25T14:30:00Z",
  "path": "/api/v1/game"
}
```

**Query Parameters:**

```json
{
  "$ref": "#/components/schemas/GameFilterDto",
  "components": {
    "schemas": {
      "GameFilterDto": {
        "properties": {
          "id": {
            "type": "array",
            "description": "When this parameter is used only information for matching game IDs will be returned.",
            "example": "rp_140",
            "items": {
              "type": "string",
              "example": "rp_140"
            }
          },
          "freeRoundsEnabled": {
            "type": "boolean",
            "description": "When this parameter is used, it filters games by whether Free Rounds are enabled or disabled.",
            "example": true
          },
          "awardedFeatureEnabled": {
            "type": "boolean",
            "description": "When this parameter is used, it filters games by whether Awarded Feature is enabled or disabled.",
            "example": true
          },
          "gameEventsEnabled": {
            "type": "boolean",
            "description": "When this parameter is used, it filters games by whether Game Events are enabled or disabled.",
            "example": true
          }
        }
      }
    }
  }
}
```

**Response Schema:**

```json
{
  "$ref": "#/components/schemas/SearchResultWithoutMetadataGameConfigurationInteger",
  "components": {
    "schemas": {
      "GameBuyFeature": {
        "type": "object",
        "properties": {
          "buyFeatureType": {
            "type": "string",
            "description": "Buy feature type supported by the game math, e.g. `freespin`. \n\n\nFor a full up-to-date list, consult the [Up-to-Date Buy Feature List](#buy-feature-types)",
            "example": "freespin"
          },
          "priceMultiplier": {
            "type": "integer",
            "format": "int32",
            "description": "Buy feature price multiplier",
            "example": 50
          }
        }
      },
      "GameEvent": {
        "type": "object",
        "properties": {
          "eventName": {
            "type": "string",
            "description": "Event name",
            "example": "ACTIVATOR"
          },
          "probability": {
            "type": "number",
            "description": "1 in X probabilities for Regular/Free Round",
            "example": 1.2
          },
          "probabilityBuyFeature": {
            "type": "number",
            "description": "1 in X probabilities for Buy/Awarded Feature",
            "example": 3.27
          }
        }
      },
      "GameConfiguration": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Game code used in the launcher.",
            "example": "rp_140"
          },
          "name": {
            "type": "string",
            "description": "Game name.",
            "example": "Mad Hit Diamonds 96"
          },
          "wager": {
            "type": "integer",
            "format": "int32",
            "description": "A value to determine the minimum stake and symbols’ payouts.",
            "example": 1
          },
          "maxWinMultiplier": {
            "type": "integer",
            "format": "int32",
            "description": "The maximum win multiplier for this game, meaning players can win up to this many times their original bet size.\nFor example, with a bet of 1.50 EUR, the maximum payout formula is: Max Win = Bet * Multiplier (e.g., 1.50 EUR * 4100 = 6150.00 EUR).",
            "example": 4100
          },
          "betSizes": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "number"
              }
            },
            "description": "Mapping for configured regular bet sizes for supported game currency.",
            "example": {
              "EUR": [
                0.1,
                0.15,
                0.2,
                0.25,
                0.5,
                7.5,
                10,
                15,
                20,
                25,
                50,
                75,
                100,
                200,
                500
              ]
            }
          },
          "freeRoundsEnabled": {
            "type": "boolean",
            "description": "If the game supports free rounds and has them enabled for the brand.",
            "example": true
          },
          "awardedFeatureEnabled": {
            "type": "boolean",
            "description": "If the game supports awarded feature and has it enabled for the brand.",
            "example": true
          },
          "buyFeatures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GameBuyFeature",
              "description": "Game buy features."
            }
          },
          "gameEventsEnabled": {
            "type": "boolean",
            "description": "If the game supports game events and has them enabled for the brand.",
            "example": true
          },
          "gameEvents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GameEvent",
              "description": "Game events."
            }
          }
        }
      },
      "SearchResultWithoutMetadataGameConfigurationInteger": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "description": "List of results matching the search criteria",
            "items": {
              "$ref": "#/components/schemas/GameConfiguration"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of items available",
            "example": 150
          }
        }
      }
    }
  }
}
```

#### Buy Feature Types

The following list of buy feature types is provided for informational purposes only. The available types and their behaviours may change over time as new game mechanics are introduced.

| Feature Type | Description |
|  --- | --- |
| **`freespin`** | A bonus feature that grants a set number of spins without wagering additional credits. |
| **`respin`** | A feature in which specific reels or the entire grid spin again for one or more rounds without requiring additional wagers. Typically, only certain symbols appear on the reels during this feature. Each respin collects *held* symbols but does not award payouts until the final evaluation after all respins are completed. |
| **`minispin`** | A smaller-scale respin mechanic that does not transition to a separate game field. |
| **`freespin_respin`** | A hybrid feature where either free spins or respins can be awarded. |
| **`select`** | A choice-based mechanic in which players pick from multiple options to reveal prizes or trigger bonuses. |