curl --request PATCH \
--url https://api.simpl.gg/v1/projects/{project_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My Game (Live)"
}
'{
"project_id": "proj_abc123",
"account_id": "acc_abc123",
"name": "My Game",
"slug": "my-game",
"ports": [
{
"name": "game",
"protocol": "udp",
"internal_port": 7777
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}Update a project
Partial update. project_id and account_id are immutable. Changing
slug is rejected with PROJECT_SLUG_TAKEN (7003) if another project
already holds it.
ports replaces the whole list. It applies to servers started after
this call; a running server keeps the ports it started with. Invalid
ports are refused with 400 VALIDATION_FAILED, naming the entry. A port
that sets tls_enabled on a non-TCP protocol is refused with
400 TLS_REQUIRES_TCP (7006), naming the entry in detail.
curl --request PATCH \
--url https://api.simpl.gg/v1/projects/{project_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My Game (Live)"
}
'{
"project_id": "proj_abc123",
"account_id": "acc_abc123",
"name": "My Game",
"slug": "my-game",
"ports": [
{
"name": "game",
"protocol": "udp",
"internal_port": 7777
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}Authorizations
Developer session token from POST /v1/auth/login or
POST /v1/auth/register. Valid 7 days.
Authenticates the developer control plane. It also reaches the server
and build endpoints, which a dashboard has to drive and which no
session can otherwise call: an API key's value is returned once, at
mint, so nothing can read back a key for an existing project. On those
endpoints a session names its project with project_id, or is
resolved from the resource it addresses, and is always checked against
the account that owns it.
It reaches no player-facing game endpoint.
Path Parameters
Project identifier.
"proj_abc123"
Body
Partial update. project_id and account_id are immutable.
^[a-z0-9-]{1,64}$The ports the project's game listens on, one entry per port name.
Each server still gets its own external port for each build port (in
network_ports as external_port). From base:5, Simpl redirects it to
the port listed here, so the game can listen on a fixed port it chose.
It applies to servers started after it is saved. A running server keeps the ports it started with. A build port with no entry here is listened on at its external port, as before.
Applies to managed builds on base:5 or later. Docker-image builds, and
managed builds on older bases, bind the external port from
SIMPL_PORT_<NAME> and ignore it.
Optional on create: without it a project gets UDP 7777 named game.
A PATCH replaces the whole list.
1 - 8 elementsShow child attributes
Show child attributes
Response
The updated project.
A project owns builds, servers, queues, lobbies and its own pair of API keys. Usage is tracked per project and billed to the owning account.
"proj_abc123"
"acc_abc123"
"My Game"
URL-safe identifier, unique across all accounts.
^[a-z0-9-]{1,64}$"my-game"
The ports the project's game listens on, one entry per port name.
Each server still gets its own external port for each build port (in
network_ports as external_port). From base:5, Simpl redirects it to
the port listed here, so the game can listen on a fixed port it chose.
It applies to servers started after it is saved. A running server keeps the ports it started with. A build port with no entry here is listened on at its external port, as before.
Applies to managed builds on base:5 or later. Docker-image builds, and
managed builds on older bases, bind the external port from
SIMPL_PORT_<NAME> and ignore it.
Optional on create: without it a project gets UDP 7777 named game.
A PATCH replaces the whole list.
1 - 8 elementsShow child attributes
Show child attributes