List games

Live
GET/api/v1/games

All playable games on your site, paginated (30 per page by default). Filter by provider, category, or tag, and search by game name. Sorted by sort_order, then name.

The data block is { data: [...], pagination: { page, limit, total, total_pages } } — the pagination block is named pagination, not meta.

Headers

FieldTypeRequiredDescription
Authorizationstring—Not used — this endpoint is public; no member token required
X-Api-KeystringYesAgent API key (ak_…) from the bo screen
X-TimestampstringYesSigning time in unix milliseconds (±300s skew allowed)
X-NoncestringYesUnique per-request value (UUIDv4) for replay protection
X-SignaturestringYeshex(HMAC-SHA256(secret, canonical)) — see the Authentication page
X-Player-IPstring—The player's real IP (IPv4/IPv6) — recommended (used in login history)
X-Player-UAstring—The player's User-Agent (optional — recorded in login history)
X-Request-Idstring—Your correlation id — echoed back as request_uuid (recommended)
x-langstring—th (default) or en — the language of message

Query parameters

FieldTypeRequiredDescription
provider_idstring (uuid)—Only games from this provider (id from the provider list)
categorystring—Filter by game categorySLOT | ARCADE | LIVE_CASINO | TABLE | FISHING | SPORT | LOTTERY | ESPORT | KENO | COCKFIGHT
tagstring—Filter by game tagPOPULAR | NEW | HOT
searchstring—Search by game name (contains, case-insensitive)
pagenumber—Page number, starts at 1 (default 1)
limitnumber—Games per page (default 50, max 100)

Response

Fields in data

FieldTypeRequiredDescription
data[]array<object>—The games on this page
└ idstring (uuid)—Game id — launch via POST /api/v1/games/:gameId/launch
└ provider_idstring (uuid)—Owning provider id
└ providerobject—Provider brief
└ codestring—Provider code, e.g. PGSOFT
└ namestring—Provider name
└ logo_urlstring | null—Provider logo URL
└ codestring—Provider-side game code
└ namestring—Game display name
└ typestring—Game categorySLOT | ARCADE | LIVE_CASINO | TABLE | FISHING | SPORT | LOTTERY | ESPORT | KENO | COCKFIGHT
└ thumbnail_urlstring | null—Game thumbnail URL
└ tagsstring[]—Game tags (for badges, e.g. hot/new)POPULAR | NEW | HOT
└ rtpstring | null—RTP as a decimal string, e.g. "96.95" (null = unspecified)
└ volatilitystring | null—Game volatility, e.g. HIGH
└ has_demoboolean—Whether a demo mode exists
└ sort_ordernumber—Recommended display order
└ maintenance_untilstring | null—Under maintenance until this time (if null = operating normally)
paginationobject—Pagination block
└ pagenumber—Current page
└ limitnumber—Items per page
└ totalnumber—Total games matching the filters
└ total_pagesnumber—Total pages
Response example
{
  "success": true,
  "code": 0,
  "message": "สำเร็จ",
  "data": {
    "data": [
      {
        "id": "3f8c2a71-5b9e-4d26-8a4f-c1e7d9b0a253",
        "provider_id": "b7a3e6c2-1f4d-4e8a-9c5b-2d7f8a1e3b6c",
        "provider": {
          "code": "PGSOFT",
          "name": "PG Soft",
          "logo_url": "https://cdn.example.com/providers/pgsoft.png"
        },
        "code": "mahjong-ways2",
        "name": "ไพ่นกกระจอก 2 (Mahjong Ways 2)",
        "type": "SLOT",
        "thumbnail_url": "https://cdn.example.com/games/mahjong-ways2.png",
        "tags": ["POPULAR", "HOT"],
        "rtp": "96.95",
        "volatility": "HIGH",
        "has_demo": true,
        "sort_order": 1,
        "maintenance_until": null
      },
      {
        "id": "8b2d4f6a-1c3e-4a5b-9d7f-0e2a4c6b8d1f",
        "provider_id": "b7a3e6c2-1f4d-4e8a-9c5b-2d7f8a1e3b6c",
        "provider": {
          "code": "PGSOFT",
          "name": "PG Soft",
          "logo_url": "https://cdn.example.com/providers/pgsoft.png"
        },
        "code": "treasures-aztec",
        "name": "สาวถ้ำแอซเท็ค (Treasures of Aztec)",
        "type": "SLOT",
        "thumbnail_url": "https://cdn.example.com/games/treasures-aztec.png",
        "tags": ["POPULAR"],
        "rtp": "96.71",
        "volatility": "HIGH",
        "has_demo": true,
        "sort_order": 2,
        "maintenance_until": null
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 50,
      "total": 812,
      "total_pages": 17
    }
  },
  "request_uuid": "9f2b7d1e-4a83-4c1f-b2ce-6d5a0e8f3c21"
}

Possible error codes

codeNameHTTPMessage
4001VALIDATION_ERROR400Validation errorInvalid query params, e.g. category/tag outside the supported set, page < 1, limit > 100
4002BAD_REQUEST400Bad requestThe request's agent could not be resolved (unknown domain/credential)