Skip to content

API Overview

The Arcadium API provides programmatic access to manage your game servers, players, and clusters. Use it to build custom integrations, automation scripts, or third-party applications.

Base URL

Production: https://arcadiumpanel.com/api/v1

All API endpoints are prefixed with /api/v1.

Authentication

The API uses Bearer Token authentication. Include your access token in the Authorization header:

http
Authorization: Bearer your_access_token_here

Getting an Access Token

Obtain tokens by authenticating via:

  1. Email/Password - POST /auth/login
  2. Steam OAuth - GET /auth/steam
  3. Discord OAuth - GET /auth/discord

Tokens expire after 24 hours. Use the refresh token to obtain a new access token without re-authenticating.

Request Format

Headers

http
Content-Type: application/json
Authorization: Bearer your_token

Body

All POST, PUT, and PATCH requests should send data as JSON:

json
{
  "name": "My Server",
  "gameType": "ARK_SURVIVAL_EVOLVED"
}

Response Format

Success Response

json
{
  "id": "uuid",
  "name": "My Server",
  "status": "ONLINE",
  "createdAt": "2026-01-10T20:00:00Z"
}

List Responses

Paginated endpoints return data with metadata:

json
{
  "data": [...],
  "meta": {
    "total": 50,
    "page": 1,
    "limit": 20,
    "totalPages": 3
  }
}

Error Response

json
{
  "statusCode": 400,
  "message": "Validation failed",
  "error": "Bad Request"
}

Status Codes

CodeDescription
200Success
201Created
400Bad Request - Invalid input
401Unauthorized - Missing or invalid token
403Forbidden - Insufficient permissions
404Not Found
429Too Many Requests - Rate limited
500Internal Server Error

Rate Limiting

API requests are limited to 100 requests per minute per user.

Response headers indicate your current limit status:

http
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1641849600

When rate limited, you'll receive a 429 response:

json
{
  "statusCode": 429,
  "message": "Too many requests, please try again later."
}

Pagination

List endpoints support pagination via query parameters:

http
GET /servers?page=2&limit=50

Parameters:

  • page - Page number (default: 1)
  • limit - Items per page (default: 20, max: 100)

Filtering

Many endpoints support filtering:

http
GET /servers?clusterId=abc123&status=ONLINE&gameType=RUST

Check individual endpoint documentation for supported filters.

Swagger Documentation

Interactive API documentation is available at:

https://arcadiumpanel.com/api/docs

Try out endpoints directly from your browser with the Swagger UI.

WebSocket API

Real-time updates are available via WebSocket. The agent gateway uses WebSocket for bidirectional communication between the API and game server agents.

The WebSocket endpoint is at: wss://arcadiumpanel.com/agent/ws

SDKs & Libraries

Official SDKs coming soon:

  • JavaScript/TypeScript - npm package
  • Python - pip package
  • Go - Go module

Support

  • Documentation: Browse endpoint references in the sidebar
  • Support Email: support@arcadiumpanel.com
  • Discord: Ask questions in our community server

Quick Examples

List Your Clusters

bash
curl -X GET https://arcadiumpanel.com/api/v1/clusters \
  -H "Authorization: Bearer YOUR_TOKEN"

Create a Game Server

bash
curl -X POST https://arcadiumpanel.com/api/v1/servers \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "clusterId": "your-cluster-id",
    "machineId": "your-machine-id",
    "name": "My ARK Server",
    "gameType": "ARK_SURVIVAL_EVOLVED",
    "gamePort": 7777,
    "queryPort": 27015,
    "rconPort": 27020
  }'

Execute RCON Command

bash
curl -X POST https://arcadiumpanel.com/api/v1/rcon/execute \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "serverId": "server-id",
    "command": "Broadcast Hello World!"
  }'

Released under the MIT License.