Member User Game API Documentation

Complete API reference for Member User Game endpoints

GET /v2/user/game/getProviderList Requires: JwtAccessGuardMemberV2
Get a paginated list of enabled game providers for the authenticated user's partner, optionally filtered by provider type (SLOT, CASINO, SPORT, HUAY). Providers are filtered based on partner-specific settings and maintenance flags. Results are ordered by sequence configuration.
Request

Headers:

Header Type Required Description
Authorization string Yes Bearer {accessToken}

Query Parameters:

Parameter Type Required Description
page number Yes Page number (must be positive)
limit number Yes Number of items per page (must be positive, max 100)
type string Optional Filter by provider type (SLOT, CASINO, SPORT, HUAY)
Example Request:
GET /v2/user/game/getProviderList?page=1&limit=20&type=SLOT
Response

200 OK Success

{
  "isSuccess": true,
  "statusCode": 200,
  "data": {
    "list": [
      {
        "id": 1,
        "name": "Provider Name",
        "isMaintenance": false,
        "key": "PROVIDER_CODE"
      }
    ],
    "meta": {
      "page": 1,
      "limit": 20,
      "total": 50,
      "totalPages": 3
    }
  }
}

400 Bad Request User not found

{
  "isSuccess": false,
  "statusCode": 400,
  "message": {
    "errorCode": "MEMBER_NOT_FOUND",
    "errorMessage": "user not found"
  }
}

429 Too Many Requests Duplicate request detected

{
  "isSuccess": false,
  "statusCode": 429,
  "message": {
    "errorCode": "DUPLICATE_REQUEST",
    "errorMessage": "Duplicate request. Please try again after a short wait."
  }
}
GET /v2/user/game/favorite Requires: JwtAccessGuardMemberV2
Get all favorite games for the authenticated member. Returns games that the user has marked as favorites.
Request

Headers:

Header Type Required Description
Authorization string Yes Bearer {accessToken}

Body: Empty

Response

200 OK Success

{
  "isSuccess": true,
  "statusCode": 200,
  "data": [
    {
      "id": 123,
      "name": "Game Name",
      "isHot": true,
      "isNew": false,
      "isFavorite": true,
      "isMaintenance": false,
      "uid": "game-uid-123",
      "providerId": 1
    }
  ]
}

400 Bad Request User not found

{
  "isSuccess": false,
  "statusCode": 400,
  "message": {
    "errorCode": "MEMBER_NOT_FOUND",
    "errorMessage": "user not found"
  }
}

429 Too Many Requests Duplicate request detected

{
  "isSuccess": false,
  "statusCode": 429,
  "message": {
    "errorCode": "DUPLICATE_REQUEST",
    "errorMessage": "Duplicate request. Please try again after a short wait."
  }
}
POST /v2/user/game/favorite/:gameId Requires: JwtAccessGuardMemberV2
Toggle favorite status for a specific game. If the game is already favorited, it will be removed from favorites. If not favorited, it will be added to favorites.
Request

Path Parameters:

Parameter Type Required Description
gameId number Yes Game ID (must be an integer)

Headers:

Header Type Required Description
Authorization string Yes Bearer {accessToken}

Body: Empty

Response

200 OK Success

{
  "isSuccess": true,
  "statusCode": 200,
  "data": {
    "isSuccess": true,
    "favoriteGameIds": [123, 456, 789]
  }
}

400 Bad Request Invalid gameId

{
  "isSuccess": false,
  "statusCode": 400,
  "message": {
    "errorCode": "INVALID_REQUEST",
    "errorMessage": "Invalid gameId"
  }
}

400 Bad Request User not found

{
  "isSuccess": false,
  "statusCode": 400,
  "message": {
    "errorCode": "MEMBER_NOT_FOUND",
    "errorMessage": "user not found"
  }
}

400 Bad Request Game not found

{
  "isSuccess": false,
  "statusCode": 400,
  "message": {
    "errorCode": "GAME_NOT_FOUND",
    "errorMessage": "game not found"
  }
}

429 Too Many Requests Duplicate request detected

{
  "isSuccess": false,
  "statusCode": 429,
  "message": {
    "errorCode": "DUPLICATE_REQUEST",
    "errorMessage": "Duplicate request. Please try again after a short wait."
  }
}
GET /v2/user/game/launchGame/:id Requires: JwtAccessGuardMemberV2
Launch a game and get the game URL with authentication. Validates game availability, user permissions, and promotion restrictions before launching.
Request

Path Parameters:

Parameter Type Required Description
id number Yes Game ID

Query Parameters:

Parameter Type Required Description
returnUrl string Optional URL to return to after game session ends
device string Optional Device type (default: "mobile", options: "mobile", "desktop")

Headers:

Header Type Required Description
Authorization string Yes Bearer {accessToken}

Body: Empty

Response

200 OK Success

{
  "isSuccess": true,
  "statusCode": 200,
  "data": {
    "url": "https://game-provider.com/game?token=xxx",
    "gameName": "Game Name",
    "convertCurrency": {
      "baseCurrency": "THB",
      "convertRate": "1.0000000000",
      "datetimeOfRateCurrency": "2024-01-01T00:00:00.000Z",
      "targetCurrency": "THB"
    }
  }
}

400 Bad Request Invalid GameId

{
  "isSuccess": false,
  "statusCode": 400,
  "message": {
    "errorCode": "INVALID_REQUEST",
    "errorMessage": "Invalid GameId"
  }
}

400 Bad Request Game not found or unavailable

{
  "isSuccess": false,
  "statusCode": 400,
  "message": {
    "errorCode": "GAME_NOT_FOUND",
    "errorMessage": "Game not found, under maintenance, or not available"
  }
}

400 Bad Request Member not found

{
  "isSuccess": false,
  "statusCode": 400,
  "message": {
    "errorCode": "MEMBER_NOT_FOUND",
    "errorMessage": "Username not found in system"
  }
}

400 Bad Request Provider not found

{
  "isSuccess": false,
  "statusCode": 400,
  "message": {
    "errorCode": "PROVIDER_NOT_FOUND",
    "errorMessage": "Game not found in provider"
  }
}

400 Bad Request Promotion restriction

{
  "isSuccess": false,
  "statusCode": 400,
  "message": {
    "errorCode": "PROMOTION_DISALLOWED_GAME_TYPE",
    "errorMessage": "This game type is not allowed due to promotion restrictions"
  }
}

400 Bad Request Game launch failed

{
  "isSuccess": false,
  "statusCode": 400,
  "message": {
    "errorCode": "GAME_LAUNCH_FAILED",
    "errorMessage": "System is under maintenance or experiencing issues"
  }
}

429 Too Many Requests Duplicate request detected

{
  "isSuccess": false,
  "statusCode": 429,
  "message": {
    "errorCode": "DUPLICATE_REQUEST",
    "errorMessage": "Duplicate request. Please try again after a short wait."
  }
}
GET /v2/user/game/getGameList Requires: JwtAccessGuardMemberV2
Get a paginated list of enabled games for the authenticated user, optionally filtered by provider ID or provider type (SLOT, CASINO, SPORT, HUAY). Games are filtered based on partner-specific settings, user's disabled games, and include favorite status. Results are sorted by sequence configuration (sequenceGameV2) when available, otherwise by partner game settings.
Request

Headers:

Header Type Required Description
Authorization string Yes Bearer {accessToken}

Query Parameters:

Parameter Type Required Description
page number Yes Page number (must be positive)
limit number Yes Number of items per page (must be positive, max 100)
providerId number Optional Filter games by provider ID
type string Optional Filter by provider type (SLOT, CASINO, SPORT, HUAY)
Example Request:
GET /v2/user/game/getGameList?page=1&limit=20&providerId=1&type=SLOT
Response

200 OK Success

{
  "isSuccess": true,
  "statusCode": 200,
  "data": {
    "list": [
      {
        "id": 123,
        "name": "Game Name",
        "isHot": true,
        "isNew": false,
        "isFavorite": false,
        "isMaintenance": false,
        "uid": "game-uid-123",
        "providerId": 1
      }
    ],
    "meta": {
      "page": 1,
      "limit": 20,
      "total": 150,
      "totalPages": 8
    }
  }
}

400 Bad Request User not found

{
  "isSuccess": false,
  "statusCode": 400,
  "message": {
    "errorCode": "MEMBER_NOT_FOUND",
    "errorMessage": "user not found"
  }
}

429 Too Many Requests Duplicate request detected

{
  "isSuccess": false,
  "statusCode": 429,
  "message": {
    "errorCode": "DUPLICATE_REQUEST",
    "errorMessage": "Duplicate request. Please try again after a short wait."
  }
}

Member User Game API Documentation © 2024