Overview
GameTracker exposes a public JSON API for authenticated integrations. The current version is v1 and all endpoints require a personal access token sent as a Bearer token.
Authentication
Create a token from Settings > API Tokens after logging in. Copy the token when it is created because the plain text value is shown only once.
Send the token on every request using the Authorization: Bearer YOUR_TOKEN header and set Accept: application/json.
curl -H "Accept: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
/api/v1/games
Base URL
All endpoints below are relative to your GameTracker domain, for example https://gametracker.ro.
Endpoints
List games
GET /api/v1/games
Returns all active games ordered by title.
{
"data": [
{
"id": 1,
"slug": "cs16",
"title": "Counter-Strike 1.6"
}
]
}
List servers
GET /api/v1/servers
Returns paginated server results. Default page size is 25 and the maximum is 100.
Supported query parameters:
per_page- number of records per page, between 1 and 100online- filter online status, acceptstrueorfalsegame- game slug, for examplecs16country- 2-letter country code, for exampleROmap- exact map name, for examplede_dust2
curl -G \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
--data-urlencode "game=cs16" \
--data-urlencode "online=true" \
--data-urlencode "country=RO" \
--data-urlencode "per_page=50" \
/api/v1/servers
{
"current_page": 1,
"data": [
{
"id": 25,
"hostname": "Romania Classic",
"ip": "127.0.0.1",
"dns": null,
"port": 27015,
"address": "127.0.0.1:27015",
"url_slug": "romania-classic",
"online": true,
"players": {
"current": 12,
"max": 32
},
"map": "de_dust2",
"country": {
"code": "RO",
"name": "Romania",
"iso2": "RO"
},
"game": {
"slug": "cs16",
"title": "Counter-Strike 1.6"
},
"ranking": {
"rank": 4
},
"votes": {
"score": 120,
"up": 150,
"down": 30
},
"last_scan_on": "2026-03-10T09:30:00+00:00",
"last_online_on": "2026-03-10T09:28:00+00:00"
}
]
}
Get one server
GET /api/v1/servers/{server}
Use the numeric server ID returned by the list endpoint. The detail endpoint includes the reputation block in addition to the standard server fields.
curl -H "Accept: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
/api/v1/servers/25
{
"data": {
"id": 25,
"hostname": "Romania Classic",
"reputation": {
"score": 88.4,
"stability": 91.2,
"redirect_risk": 4.1,
"fake_players_risk": 2.7
}
}
}
Response notes
last_scan_onandlast_online_onare ISO 8601 timestamps when available.- Paginated responses follow Laravel paginator JSON structure and include page metadata such as
current_page,last_page, and navigation URLs.
Typical usage
Common integrations include dashboards, Discord bots, server status widgets, and ranking sync jobs. Start with /api/v1/games to discover valid game slugs, then use /api/v1/servers for filtered lists and /api/v1/servers/{server} for detail views.