List providers
LiveGET
/api/v1/games/providersAll game providers available on your site (only providers the agent holds and has enabled), sorted by sort_order. Filterable by game category.
Responds with Cache-Control: public, max-age=60 — cache it on your side for 60 seconds instead of calling on every page view.
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | string | — | Not used — this endpoint is public; no member token required |
| X-Api-Key | string | Yes | Agent API key (ak_…) from the bo screen |
| X-Timestamp | string | Yes | Signing time in unix milliseconds (±300s skew allowed) |
| X-Nonce | string | Yes | Unique per-request value (UUIDv4) for replay protection |
| X-Signature | string | Yes | hex(HMAC-SHA256(secret, canonical)) — see the Authentication page |
| X-Player-IP | string | — | The player's real IP (IPv4/IPv6) — recommended (used in login history) |
| X-Player-UA | string | — | The player's User-Agent (optional — recorded in login history) |
| X-Request-Id | string | — | Your correlation id — echoed back as request_uuid (recommended) |
| x-lang | string | — | th (default) or en — the language of message |
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
| category | string | — | Only providers that carry this game category (omit for all providers)SLOT | ARCADE | LIVE_CASINO | TABLE | FISHING | SPORT | LOTTERY | ESPORT | KENO | COCKFIGHT |
Response
Fields in data
| Field | Type | Required | Description |
|---|---|---|---|
| data[] | array<object> | — | Provider list, sorted by sort_order |
| └ id | string (uuid) | — | Provider id — use as ?provider_id= on the game list |
| └ code | string | — | Provider code, e.g. PGSOFT |
| └ name | string | — | Display name |
| └ logo_url | string | null | — | Provider logo URL |
| └ categories | string[] | — | Game categories this provider carriesSLOT | ARCADE | LIVE_CASINO | TABLE | FISHING | SPORT | LOTTERY | ESPORT | KENO | COCKFIGHT |
| └ game_count | number | — | Number of games |
| └ launch_game_id | string | null | — | Single-game providers (game_count = 1, e.g. sportsbook / live casino) → the one game's id so you can launch straight from the provider card without a game list. null = the provider has a game list. |
| └ maintenance_until | string | null | — | Under maintenance until this time (if null = operating normally) |
| └ sort_order | number | — | Recommended display order |
Response example
{
"success": true,
"code": 0,
"message": "สำเร็จ",
"data": [
{
"id": "b7a3e6c2-1f4d-4e8a-9c5b-2d7f8a1e3b6c",
"code": "PGSOFT",
"name": "PG Soft",
"logo_url": "https://cdn.example.com/providers/pgsoft.png",
"categories": ["SLOT"],
"game_count": 138,
"launch_game_id": null,
"maintenance_until": null,
"sort_order": 1
},
{
"id": "5d9c1f8a-2e6b-4a3d-b7c9-8f0a1d2e3c4b",
"code": "SBOBET",
"name": "SBOBET",
"logo_url": "https://cdn.example.com/providers/sbobet.png",
"categories": ["SPORT"],
"game_count": 1,
"launch_game_id": "9a4b7c1d-3e5f-4a6b-8c9d-0e1f2a3b4c5d",
"maintenance_until": null,
"sort_order": 8
}
],
"request_uuid": "9f2b7d1e-4a83-4c1f-b2ce-6d5a0e8f3c21"
}Possible error codes
| code | Name | HTTP | Message |
|---|---|---|---|
| 4001 | VALIDATION_ERROR | 400 | Validation errorcategory is not one of the supported game types |
| 4002 | BAD_REQUEST | 400 | Bad requestThe request's agent could not be resolved (unknown domain/credential) |