GET /games, /categories, /servers/{id}, /status
Selects a supported response language, for example en or de.
language=de
Read public Gameserver data or securely manage your own Gameservers from a trusted server-side application.
Unauthenticated GET requests return public data and can be used directly in a browser.
API keys identify an authenticated user.
Unauthenticated: up to 60 requests per minute and 5,000 per day for each IP address.
Authenticated: up to 300 requests per minute and 25,000 per day. All API keys of one user share this limit.
https://forum.primearea.net/api/rpc/game-server-viewer/v1Public GET responses support cross-origin browser access and never expose credentials, raw query data or private configuration. Public reads do not trigger a live server query.
curl --request GET \
--header "Accept: application/json" \
'https://forum.primearea.net/api/rpc/game-server-viewer/v1/servers?status=online&limit=10'
Responses use JSON and include short cache lifetimes, ETags and, where applicable, Last-Modified. Conditional requests can return 304 Not Modified. Exceeded request limits return HTTP 429 with Retry-After.
https://forum.primearea.net/api/rpc/game-server-viewer/v1| Method | Endpoint | Purpose |
|---|---|---|
GET | / | API version and links to all resources. |
GET | /games | List of all enabled games. |
GET | /categories | List of all publicly visible categories. |
GET | /servers | Paginated and filterable list of public Gameservers. |
GET | /servers/{id} | Public details of a single Gameserver. |
GET | /servers/{id}/status | Currently stored status of a single Gameserver. |
GET | /servers/{id}/statistics | Aggregated statistics for up to 30 days, if enabled. |
Only the documented parameters are accepted. Unsupported parameters return a validation error instead of being silently ignored.
All public GET endpoints accept the optional fields parameter, for example fields=status,statistics.periods.72h on a server detail request. Comma-separated paths select whole sections or nested fields within data; list endpoints apply the selection to each item. On the API index, paths address documentation or resources directly. Omit fields for the full response. Metadata and pagination stay intact. Invalid paths are rejected; at most 64 paths and 2048 characters are allowed. Selection never overrides permissions or visibility settings.
GET /games, /categories, /servers/{id}, /statusSelects a supported response language, for example en or de.
language=de
GET /serversFilters the Gameserver list by game identifier, category ID, status or minimum update time.
game=identifiercategory=integer > 0status=online|offline|maintenanceupdatedSince=Unix timestampControls page, page size and sorting. The page size is limited to 100 entries.
page=1..1000 (1)limit=1..100 (20)sort=id|name|players|updated|created (id)order=asc|desc (desc)GET /servers/{id}/statisticsSelects the statistics period, grouping and state. The maximum period is 30 days.
days=1..30 (1)from=Unix timestamp + to=Unix timestampinterval=auto|hour|day (auto)state=all|online|offline|maintenance (all)Existing fields remain unchanged. name is the configured name; query.name is the queried server name. query.parameters contains selected additional game information with a label and typed value (including numbers and booleans). Unavailable values are null. status.connection adds connection data; an address alias keeps the actual host and port hidden. The detail response also includes statistics.periods for 72h, 7d and 30d when API statistics are allowed. availabilityPercent is the online share of recorded measurements, not continuously monitored time. averagePlayers uses measurements with known player counts. Sample counts and first and last sample timestamps describe the available data. Missing measurements produce null rather than 0; the summary is cached for five minutes. Query data follows the server-page selection; its values are null while offline.
In detailed server responses, status.players.average is the average player count across all retained measurements with known player counts. statistics.overall provides the history range and sample counts. Unknown player counts are excluded; known counts of 0 are included. If statistics are unavailable or player information is hidden, the average is null. List and status-only responses remain unchanged.
200 OK / 201 Created304 Not Modified400 Bad Request401 Unauthorized / 403 Forbidden404 Not Found429 Too Many Requests + Retry-AfterError responses use a consistent JSON structure with a type, code, message and affected parameter.
{
"type": "invalid_request_error",
"code": "invalid",
"message": "...",
"param": "..."
}
Select an endpoint, add optional query parameters and execute a same-origin GET request.
https://forum.primearea.net/api/rpc/game-server-viewer/v1?language=en