View Categories

Managing Your Server Externally with the Panel API

Game Panel

Listing online players, sending broadcasts, kicking or banning players, saving and restarting — all of these can be done from your own programs using the game panel API. This page covers everything from creating an API key to reading the output of your commands.

5 min readUpdated 2026-08-13All plans

What you can do

With the game panel API (client API) you can automate the following from your own programs and scripts:

  • Get the list of players currently online
  • Send a server-wide broadcast
  • Kick or ban a player
  • Trigger a manual save
  • Start, stop or restart the server
  • Read status and resource usage (CPU, memory, disk, network)

The API works with any game. For game-specific commands, please see the documentation for that game.

Creating an API key

  1. Log in to the game panel and open API Credentials from the account menu at the top right.
  2. Enter a description that makes the purpose clear, and create the key.
  3. Copy the key that is displayed.
The key is shown only once, right after you create it. It cannot be displayed again after you close the screen, so please make a note of it at this point.
Enter the fixed IP address of the machine or VPS that will call the API into Allowed IPs. The key can then only be used from that address. If the field is left empty the key can be used from anywhere, so please set it if you have a fixed IP.

You can create up to 25 keys per account. Create a separate key for each purpose, and delete keys you no longer need.

The basics

The base URL is:

https://gsv.bestnetllc.co.jp/api/client

Send the following headers with your requests:

Authorization: Bearer <your API key>
Accept: application/json
Content-Type: application/json   ← for POST requests

The server identifier is the last 8 characters of the URL you see when you open the server in the panel: https://gsv.bestnetllc.co.jp/server/xxxxxxxx.

Main endpoints

List your serversGET /api/client 
Send a commandPOST /api/client/servers/{id}/commandBody {"command":"..."} / returns 204 on success
Start, stop, restartPOST /api/client/servers/{id}/powerBody {"signal":"start"} (stop / restart / kill)
Status and resourcesGET /api/client/servers/{id}/resourcesState, CPU, memory, disk, network, uptime
Console connection detailsGET /api/client/servers/{id}/websocketNeeded to read output (see 05)

Example of sending a command:

curl -X POST "https://gsv.bestnetllc.co.jp/api/client/servers/xxxxxxxx/command" \
  -H "Authorization: Bearer ptlc_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"command":"Info"}'

Reading the output of a command

POST /command returns only 204 No Content; the output is not included in the response body. A command that does not exist also returns 204. 204 means the command reached the console — it is not proof that the command succeeded.

To read the output, connect to the console over WebSocket:

  1. Call GET /api/client/servers/{id}/websocket. It returns the connection URL (socket) and a token.
  2. Open a WebSocket connection to that socket.
  3. First send {"event":"auth","args":["<token>"]}. You are authenticated once {"event":"auth success"} comes back.
  4. Console output then arrives as {"event":"console output","args":["..."]}.
  5. You can also send {"event":"send command","args":["..."]} over the same connection.
We recommend approach 5, as sending and receiving are handled over a single connection. It is the closest equivalent to RCON.
The token is valid for 10 minutes. For long-running connections, request a new token from the websocket endpoint and send {"event":"auth","args":["<new token>"]} again.

The connection goes to the hostname of the node your server runs on (port 8443), not to the panel domain. This is normal.

Limits and notes

  • The rate limit is 256 requests per minute. It applies per account, so changing your source IP address does not raise it.
  • Sending a command while the server is stopped returns an error (Server must be online in order to send commands.).
  • An empty command returns a validation error (422).
  • Commands you send are recorded in the panel activity log.
  • Subusers need the console control permission to use the API this way.

Security

  • Treat your API key like a password. Never include it in GitHub, Discord or screenshots.
  • Set Allowed IPs.
  • Use a separate key per purpose and delete keys you no longer need. If a key is ever exposed, deleting it disables it immediately.
  • You cannot reach servers you do not have access to.
If anything about the API is unclear, please open a support ticket in the client portal — we are happy to help.
Scroll to top