curl --request GET \
--url https://api.simpl.gg/v1/servers/{instance_id} \
--header 'api-key: <api-key>'import requests
url = "https://api.simpl.gg/v1/servers/{instance_id}"
headers = {"api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'api-key': '<api-key>'}};
fetch('https://api.simpl.gg/v1/servers/{instance_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.simpl.gg/v1/servers/{instance_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.simpl.gg/v1/servers/{instance_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.simpl.gg/v1/servers/{instance_id}")
.header("api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.simpl.gg/v1/servers/{instance_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"instance_id": "abc123",
"name": "ranked-2v2-iad-01",
"status": "launching",
"region": "iad",
"tier": "1x-2g",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"network_ports": [
{
"name": "game_udp",
"protocol": "udp",
"internal_port": 7777,
"external_port": 30412,
"host": "37.16.24.10",
"tls_enabled": false
}
],
"startup_args": "-log",
"custom_data": {
"map": "forest",
"mode": "ctf"
},
"ttl": 3600,
"match_id": "xyz789",
"auto_restart": false,
"version_tag": "1.2.3",
"version": 12,
"started_at": "2023-11-07T05:31:56Z",
"stopped_at": "2023-11-07T05:31:56Z"
}Get a server
curl --request GET \
--url https://api.simpl.gg/v1/servers/{instance_id} \
--header 'api-key: <api-key>'import requests
url = "https://api.simpl.gg/v1/servers/{instance_id}"
headers = {"api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'api-key': '<api-key>'}};
fetch('https://api.simpl.gg/v1/servers/{instance_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.simpl.gg/v1/servers/{instance_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.simpl.gg/v1/servers/{instance_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.simpl.gg/v1/servers/{instance_id}")
.header("api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.simpl.gg/v1/servers/{instance_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"instance_id": "abc123",
"name": "ranked-2v2-iad-01",
"status": "launching",
"region": "iad",
"tier": "1x-2g",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"network_ports": [
{
"name": "game_udp",
"protocol": "udp",
"internal_port": 7777,
"external_port": 30412,
"host": "37.16.24.10",
"tls_enabled": false
}
],
"startup_args": "-log",
"custom_data": {
"map": "forest",
"mode": "ctf"
},
"ttl": 3600,
"match_id": "xyz789",
"auto_restart": false,
"version_tag": "1.2.3",
"version": 12,
"started_at": "2023-11-07T05:31:56Z",
"stopped_at": "2023-11-07T05:31:56Z"
}Authorizations
Per-project server key, prefixed sk_live_. Full access to every
endpoint. Keep it on your backend: never ship it in a game binary.
Path Parameters
Server instance identifier.
"abc123"
Response
The server.
"abc123"
"ranked-2v2-iad-01"
launching, running, stopped Datacenter region a server runs in. 16 regions are supported.
| code | location |
|---|---|
ams | Amsterdam, Netherlands |
arn | Stockholm, Sweden |
bom | Mumbai, India |
cdg | Paris, France |
dfw | Dallas, Texas (US) |
ewr | Secaucus, NJ (US) |
fra | Frankfurt, Germany |
iad | Ashburn, Virginia (US) |
lax | Los Angeles, California (US) |
lhr | London, United Kingdom |
nrt | Tokyo, Japan |
ord | Chicago, Illinois (US) |
sin | Singapore, Singapore |
sjc | San Jose, California (US) |
syd | Sydney, Australia |
yyz | Toronto, Canada |
Every region is available to every project. Capacity is Simpl's problem, not yours: pick the region closest to your players.
ams, arn, bom, cdg, dfw, ewr, fra, iad, lax, lhr, nrt, ord, sin, sjc, syd, yyz "iad"
Machine tier, named transparently as <cpu>-<memory>. 1x = one shared
vCPU, 2p = two performance (dedicated) vCPUs, 2g = 2 GB of memory.
No guessing what small or nano means.
1x-256, 1x-512, 1x-1g, 1x-2g, 2x-2g, 2x-4g, 4x-4g, 4x-8g, 1p-2g, 1p-4g, 1p-8g, 2p-16g "1x-2g"
Show child attributes
Show child attributes
Arguments appended to the executable's command line.
"-log"
Free-form developer-defined data. Carried verbatim and surfaced to the game
server in /simpl/its_simpl.json. Soft cap of 64KB serialized; exceeding it
returns CUSTOM_DATA_TOO_LARGE (error_id 2008).
{ "map": "forest", "mode": "ctf" }
Seconds before Simpl stops this server automatically. 0 or omitted
means no TTL.
x >= 03600
Match this server was created for, if any.
"xyz789"
Restart the machine automatically if the process exits.
Build name requested at creation time.
"1.2.3"
Resolved integer build version actually running.
12