Skip to content
Coritan Docs

Organization API: Org Staff Containers: Staff

The 83 Organization API operations for staff.

View as Markdown

Part of Org Staff Containers.

Method Path Summary
GET /api/v1/orgs/{org_slug}/staff/servers Staff fleet
POST /api/v1/orgs/{org_slug}/staff/servers/bulk Staff fleet bulk
POST /api/v1/orgs/{org_slug}/staff/servers/heal-installs Staff heal installs
GET /api/v1/orgs/{org_slug}/staff/servers/live Live state, usage and players for the brand's servers on one screen
GET /api/v1/orgs/{org_slug}/staff/servers/stats How many servers sit in each bucket, and the nodes they sit on
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid} Staff server detail
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/allocations Staff list allocations
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/allocations Staff create allocation
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/allocations/available-ports Staff available ports
DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/allocations/{allocation_id} Release a port
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/allocations/{allocation_id}/primary Staff set primary allocation
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/allocations/{allocation_id}/publish-port Publish a port on 25565 / 19132 of the customer's floating IP, or clear it
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/backups Staff list backups
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/backups Staff create backup
DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/backups/{backup_uuid} Staff delete backup
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/backups/{backup_uuid}/lock Staff toggle backup lock
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/backups/{backup_uuid}/restore Staff restore backup
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/command Staff command
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/databases Staff list databases
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/databases Staff create database
DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/databases/{database_id} Staff delete database
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/databases/{database_id}/credentials Staff database credentials
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/databases/{database_id}/retry Staff retry database
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/databases/{database_id}/rotate-password Staff rotate database password
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/chmod Staff chmod files
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/compress Staff compress files
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/contents A file's text; below Tier 3, only inside logs/ and crash-reports/
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/copy Staff copy file
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/decompress Staff decompress file
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/delete Staff delete files
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/download One file, streamed; below Tier 3, only inside logs/ and crash-reports/
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/list A directory; below Tier 3, only inside logs/ and crash-reports/
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/mkdir Staff mkdir
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/pull Staff pull file
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/pull/status Staff pull status
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/rename Staff rename files
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/upload Staff upload files
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/write Staff write file
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/heal-install Run the platform's install self-healing on one of this brand's servers
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/install-log Staff install log
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/permissions Staff grantable permissions
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/power Staff power
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/reinstall Staff reinstall
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/resources Staff resources
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/retry-install Run the install again for a server in installfailed or stuck installing
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/schedules Staff list schedules
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/schedules/{schedule_uuid} Staff get schedule
DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/schedules/{schedule_uuid} Staff delete schedule
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/schedules/{schedule_uuid}/execute Staff execute schedule
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/schedules/{schedule_uuid}/runs Staff schedule runs
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/schedules/{schedule_uuid}/toggle Pause a schedule that is hurting the server, or resume one
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/server-icon Staff get server icon
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/server-icon Staff upload server icon
DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/server-icon Delete /server-icon.png
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/sleep Sleep and start-queue state of a free server; policy: none for a paid one
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots Staff list snapshots
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots Staff create snapshot
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots/estimate Staff snapshot estimate
DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots/{snapshot_uuid} Staff delete snapshot
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots/{snapshot_uuid}/cancel Cancel a snapshot of this server that is still being taken
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots/{snapshot_uuid}/download Staff download snapshot
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots/{snapshot_uuid}/lock Staff toggle snapshot lock
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots/{snapshot_uuid}/restore Staff restore snapshot
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software Staff installed software
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/bedrock Turn Bedrock crossplay on or off for one of the organization's Java servers
PUT /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/bedrock/channel Choose where a server's Bedrock crossplay takes Geyser from: release or development
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/catalog Staff software catalog
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/catalog/{key}/versions Staff software catalog versions
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/change Staff change software
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/context Staff software context
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/installs Staff software installs
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/installs/{install_uuid}/cancel Staff cancel install
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/installs/{install_uuid}/retry Staff retry install
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/startup How the server starts: runtime, command (override and default), variables
PATCH /api/v1/orgs/{org_slug}/staff/servers/{uuid}/startup Change the runtime, the startup command or the variables
PATCH /api/v1/orgs/{org_slug}/staff/servers/{uuid}/startup-variables Change, add or remove the server's startup variables, for its owner
PATCH /api/v1/orgs/{org_slug}/staff/servers/{uuid}/subdomain Staff patch subdomain
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/users Staff list subusers
PUT /api/v1/orgs/{org_slug}/staff/servers/{uuid}/users/{subuser_id} Staff update subuser
DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/users/{subuser_id} Staff remove subuser
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/wake Start a sleeping free server on the customer's behalf
POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/wake-queue/kick Staff kick wake
GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/websocket The live console

GET /api/v1/orgs/{org_slug}/staff/servers

Every container behind one of this brand's services, failing installs first, newest after that, and the highest server ID first when two were created in the same second. Tier 2 and above; everything that acts on a server from here is Tier 3. FleetFilters narrows it further: by name, owner, software, creation day, extra ports or uptime, all optional. pattern_id keeps the servers of one abuse pattern's accounts. A servers bulk run (POST /staff/abuse/bulk-runs) with the same filter acts on exactly the servers this list holds.

status is the admin list's two filters in one word (:data:STATUS_WORDS): a power word matches what the daemon was last seen doing, never the lifecycle column, which reads running for a stopped server too.

sort orders the whole fleet, not the page, by one of :data:FLEET_SORT_KEYS, which are the admin list's words. Every key but players and join_address is a column; those two are decided from the proxies' snapshot and the gameproxy routes over every matching id before the page is cut, unknown last.

Name In Type Required Description
org_slug path string yes
q query string or null no
status query string or null no One bucket. The daemon's recorded power state, among servers whose lifecycle lets them run: running, offline, starting, stopping, unknown (never read). The lifecycle: installing, install_failed, suspended, transferring. The console's: attention, watch, free. Unset or all: every server.
node_id query integer or null no
customer_id query integer or null no
customer_ids query string or null no Comma-separated; the servers of a selection of customers, for review
audience query string or null no
sort query string or null no Order the brand's fleet by: created, updated, name, status, players, join_address, ip, port, node, owner, template, cpu, memory, disk (in use), cpu_limit, memory_limit, disk_limit, uptime, id. Unset keeps failing installs first, newest after.
dir query string or null no asc or desc; each key has its own default (names ascending, figures descending).
limit query integer no Default: 50.
offset query integer no Default: 0.
pattern_id query integer or null no The servers owned by the accounts of one of this brand's abuse patterns. Another brand's pattern answers 404.
name query string or null no
owner query string or null no
software query string or null no
created_after query string (date) or null no
created_before query string (date) or null no
min_extra_ports query integer or null no
up_days_min query integer or null no
cpu_window query string no Default: 1h.
cpu_min query number or null no
cpu_of_limit_min query integer or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/bulk

Suspend, unsuspend, terminate, or pause or ban the owners of, a selection of this brand's servers.

Support may suspend and unsuspend, as they can order by order. Anything that ends a server or changes an account's standing (terminate, ban, pause, a suspension with a deletion date) takes an org admin who has stepped up in the last ten minutes, the same gate the single-order terminate and the customer standing change have. Servers outside the brand or already ending are skipped and listed in the answer, not refused. For more than 100 servers, start a bulk run (POST /staff/abuse/bulk-runs).

Name In Type Required
org_slug path string yes

application/json (required)

Field Type Required
uuids array of string yes
action string yes
reason string yes
delete_after_days integer or null no
open_ticket boolean no
notify_customer boolean no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/heal-installs

Heal every broken install behind this brand's services, oldest first: install_failed rows and installing rows nothing has driven for 45 s.

Name In Type Required Description
org_slug path string yes
limit query integer no Default: 25.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Live state, usage and players for the brand's servers on one screen

Section titled Live state, usage and players for the brand's servers on one screen

GET /api/v1/orgs/{org_slug}/staff/servers/live

Live state, usage and players for the brand's servers on one screen.

The admin list's /servers/live for the brand: items maps each UUID the daemons answered for to state (the daemon's word, or missing when it no longer knows the server), usage (the same shape as a list row's, measured just now), players_online and join_address. A server with no answer is left out and degraded is true; the page keeps what it had.

Only UUIDs behind one of this brand's services are asked about. One from another brand is dropped before any daemon is spoken to and never answered, not even with an error, so the poll cannot be used to learn which UUIDs exist elsewhere.

Name In Type Required Description
org_slug path string yes
uuids query string yes Comma-separated server UUIDs, the rows on screen; at most 100.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

How many servers sit in each bucket, and the nodes they sit on

Section titled How many servers sit in each bucket, and the nodes they sit on

GET /api/v1/orgs/{org_slug}/staff/servers/stats

How many servers sit in each bucket, and the nodes they sit on.

A power word counts the servers its filter lists: the daemon's recorded word, among servers whose lifecycle lets them run. The counts cover the whole brand. They are normally under a minute old, and the first request after a quiet spell can show numbers a few minutes old. The server list is always current.

Name In Type Required
org_slug path string yes
audience query string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}

One server as staff see it, with the customer who owns it named: customer_email and customer_name (first and last name, null when the account has neither) come off the one customer row the record already loads.

grant says where a free server was ordered from: the order's ip, how the free-tier rules classed it (ip_kind: residential, hosting, vpn, proxy, tor or private), which source said so (ip_source) and when (created_at). It is null for a paid server and for a free server ordered before those rules existed.

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/allocations

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/allocations

Name In Type Required
uuid path string yes
org_slug path string yes

application/json

Field Type Required
port integer or null no
notes string or null no
on_dedicated_ip boolean no
Status Meaning
201 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/allocations/available-ports

Name In Type Required Description
uuid path string yes
org_slug path string yes
limit query integer no Default: 50.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/allocations/{allocation_id}

Release a port. A running server on a bridge-network node keeps it until it restarts: 409 restart_required unless restart=true.

Name In Type Required Description
uuid path string yes
allocation_id path integer yes
org_slug path string yes
restart query boolean no Restart the running server so it stops publishing the port Default: False.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/allocations/{allocation_id}/primary

Name In Type Required
uuid path string yes
allocation_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Publish a port on 25565 / 19132 of the customer's floating IP, or clear it

Section titled Publish a port on 25565 / 19132 of the customer's floating IP, or clear it

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/allocations/{allocation_id}/publish-port

Publish a port on 25565 / 19132 of the customer's floating IP, or clear it.

Name In Type Required
uuid path string yes
allocation_id path integer yes
org_slug path string yes

application/json

Field Type Required
port integer or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/backups

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/backups

Name In Type Required
uuid path string yes
org_slug path string yes

application/json

Field Type Required
name string yes
ignored_files array of string or null no
is_locked boolean no
Status Meaning
201 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/backups/{backup_uuid}

Name In Type Required
uuid path string yes
backup_uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/backups/{backup_uuid}/lock

Name In Type Required
uuid path string yes
backup_uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/backups/{backup_uuid}/restore

Name In Type Required
uuid path string yes
backup_uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/command

Name In Type Required
uuid path string yes
org_slug path string yes
command query string or null no

application/json

Field Type Required
command string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/databases

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/databases

Name In Type Required
uuid path string yes
org_slug path string yes
Idempotency-Key header string or null no

application/json

Type: object or null.

Status Meaning
201 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/databases/{database_id}

Name In Type Required
uuid path string yes
database_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/databases/{database_id}/credentials

Name In Type Required
uuid path string yes
database_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/databases/{database_id}/retry

Name In Type Required
uuid path string yes
database_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Staff rotate database password

Section titled Staff rotate database password

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/databases/{database_id}/rotate-password

Name In Type Required
uuid path string yes
database_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/chmod

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
root string no
files array of object yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/compress

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
root string no
files array of string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

A file's text; below Tier 3, only inside logs/ and crash-reports/

Section titled A file's text; below Tier 3, only inside logs/ and crash-reports/

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/contents

A file's text; below Tier 3, only inside logs/ and crash-reports/.

Name In Type Required
uuid path string yes
org_slug path string yes
path query string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/copy

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
location string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/decompress

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
root string no
file string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/delete

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
root string no
files array of string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

One file, streamed; below Tier 3, only inside logs/ and crash-reports/

Section titled One file, streamed; below Tier 3, only inside logs/ and crash-reports/

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/download

One file, streamed; below Tier 3, only inside logs/ and crash-reports/.

Name In Type Required
uuid path string yes
org_slug path string yes
path query string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

A directory; below Tier 3, only inside logs/ and crash-reports/

Section titled A directory; below Tier 3, only inside logs/ and crash-reports/

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/list

A directory; below Tier 3, only inside logs/ and crash-reports/.

Name In Type Required Description
uuid path string yes
org_slug path string yes
directory query string no Default: /.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/mkdir

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
root string no
name string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/pull

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
url string yes
destination_path string yes
filename string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/pull/status

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/rename

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
root string no
files array of object yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/upload

Name In Type Required Description
uuid path string yes
org_slug path string yes
directory query string no Default: /.

multipart/form-data (required)

Field Type Required
files array of string (binary) yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/files/write

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
path string yes
content string no
expected_hash string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Run the platform's install self-healing on one of this brand's servers

Section titled Run the platform's install self-healing on one of this brand's servers

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/heal-install

Run the platform's install self-healing on one of this brand's servers.

Reads the disk first: files in place means the row is marked running with nothing reinstalled; otherwise the install is driven again through the retry ladder. The same code the watchdog runs, so brand staff can clear a server that broke before it existed.

Name In Type Required
uuid path string yes
org_slug path string yes

application/json

Field Type Required
start_after boolean no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/install-log

What the install script printed: the log it leaves in the volume, and the output recorded off the daemon while it ran. The daemon's own log is read over SSH on the node and stays with the platform.

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/permissions

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/power

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
signal string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/reinstall

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/resources

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Run the install again for a server in installfailed or stuck installing

Section titled Run the install again for a server in installfailed or stuck installing

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/retry-install

Run the install again for a server in install_failed or stuck installing. Refused for a server in any other state: a reinstall of a working server is the reinstall route, which wipes it and says so.

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/schedules

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

A 200 response is a list; each item has these fields:

Field Type
[].id integer
[].uuid string
[].server_id integer
[].name string
[].cron_minute string
[].cron_hour string
[].cron_day_of_month string
[].cron_month string
[].cron_day_of_week string
[].is_active boolean
[].only_when_online boolean
[].is_processing boolean
[].timezone string
[].catch_up boolean
[].revision integer
[].current_run_id string or null
[].last_run_status string or null
[].next_run_at string (date-time) or null
[].last_run_at string (date-time) or null
[].last_run_failed boolean
[].last_failure_message string or null
[].created_at string (date-time)
[].updated_at string (date-time) or null
[].tasks array of TaskResponse
[].tasks[].id integer
[].tasks[].sequence_id integer
[].tasks[].action string
[].tasks[].payload Payload
[].tasks[].time_offset integer
[].tasks[].continue_on_failure boolean
[].tasks[].is_queued boolean

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/schedules/{schedule_uuid}

Name In Type Required
uuid path string yes
schedule_uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
uuid string
server_id integer
name string
cron_minute string
cron_hour string
cron_day_of_month string
cron_month string
cron_day_of_week string
is_active boolean
only_when_online boolean
is_processing boolean
timezone string
catch_up boolean
revision integer
current_run_id string or null
last_run_status string or null
next_run_at string (date-time) or null
last_run_at string (date-time) or null
last_run_failed boolean
last_failure_message string or null
created_at string (date-time)
updated_at string (date-time) or null
tasks array of TaskResponse
tasks[].id integer
tasks[].sequence_id integer
tasks[].action string
tasks[].payload Payload
tasks[].time_offset integer
tasks[].continue_on_failure boolean
tasks[].is_queued boolean

DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/schedules/{schedule_uuid}

Name In Type Required
uuid path string yes
schedule_uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/schedules/{schedule_uuid}/execute

Name In Type Required
uuid path string yes
schedule_uuid path string yes
org_slug path string yes

application/json

Field Type Required
revision integer or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/schedules/{schedule_uuid}/runs

Name In Type Required Description
uuid path string yes
schedule_uuid path string yes
org_slug path string yes
limit query integer no Default: 20.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

A 200 response is a list; each item has these fields:

Field Type
[].uuid string
[].trigger string
[].status string
[].started_at string (date-time) or null
[].finished_at string (date-time) or null
[].failure_message string or null
[].created_at string (date-time) or null
[].steps array of ScheduleRunStepResponse
[].steps[].task_id integer
[].steps[].sequence_id integer
[].steps[].action string
[].steps[].payload Payload
[].steps[].time_offset integer
[].steps[].continue_on_failure boolean
[].steps[].status string
[].steps[].started_at string (date-time) or null
[].steps[].finished_at string (date-time) or null
[].steps[].error string or null

Pause a schedule that is hurting the server, or resume one

Section titled Pause a schedule that is hurting the server, or resume one

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/schedules/{schedule_uuid}/toggle

Pause a schedule that is hurting the server, or resume one.

Name In Type Required
uuid path string yes
schedule_uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
is_active boolean yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
uuid string
server_id integer
name string
cron_minute string
cron_hour string
cron_day_of_month string
cron_month string
cron_day_of_week string
is_active boolean
only_when_online boolean
is_processing boolean
timezone string
catch_up boolean
revision integer
current_run_id string or null
last_run_status string or null
next_run_at string (date-time) or null
last_run_at string (date-time) or null
last_run_failed boolean
last_failure_message string or null
created_at string (date-time)
updated_at string (date-time) or null
tasks array of TaskResponse
tasks[].id integer
tasks[].sequence_id integer
tasks[].action string
tasks[].payload Payload
tasks[].time_offset integer
tasks[].continue_on_failure boolean
tasks[].is_queued boolean

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/server-icon

The server's /server-icon.png: the picture as a data URI, and whether the game shows it (valid) or why not (problems).

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/server-icon

Convert the uploaded file to a 64×64 PNG with the chosen fit and write it to /server-icon.png. Audited as server.icon.set.

Name In Type Required
uuid path string yes
org_slug path string yes

multipart/form-data (required)

Field Type Required Description
file string (binary) yes
fit string no cover, contain or stretch.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/server-icon

Delete /server-icon.png. Audited as server.icon.remove.

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Sleep and start-queue state of a free server; policy: none for a paid one

Section titled Sleep and start-queue state of a free server; policy: none for a paid one

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/sleep

Sleep and start-queue state of a free server; policy: none for a paid one.

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots

This server's snapshots, or every snapshot the owning account holds judged for restoring onto this server.

Name In Type Required Description
uuid path string yes
org_slug path string yes
scope query string no Default: this.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots

Name In Type Required
uuid path string yes
org_slug path string yes

application/json

Field Type Required
name string yes
ignored_files array of string or null no
is_locked boolean no
Status Meaning
201 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots/estimate

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots/{snapshot_uuid}

Name In Type Required
uuid path string yes
snapshot_uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Cancel a snapshot of this server that is still being taken

Section titled Cancel a snapshot of this server that is still being taken

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots/{snapshot_uuid}/cancel

Cancel a snapshot of this server that is still being taken.

Support work, like taking one: a snapshot in flight is no copy of anything yet, so cancelling it removes nothing the customer had. Delete stays admin-only. Answers 409 once the snapshot has finished or failed.

Name In Type Required
uuid path string yes
snapshot_uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots/{snapshot_uuid}/download

Name In Type Required
uuid path string yes
snapshot_uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots/{snapshot_uuid}/lock

Name In Type Required
uuid path string yes
snapshot_uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/snapshots/{snapshot_uuid}/restore

Name In Type Required
uuid path string yes
snapshot_uuid path string yes
org_slug path string yes

application/json

Field Type Required
target_server_uuid string or null no
truncate boolean no
allow_mismatch boolean no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Turn Bedrock crossplay on or off for one of the organization's Java servers

Section titled Turn Bedrock crossplay on or off for one of the organization's Java servers

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/bedrock

Turn Bedrock crossplay on or off for one of the organization's Java servers.

The same switch as the customer's own. {"enabled": true} installs Geyser and Floodgate before this answers and gives Geyser a port of its own. {"enabled": false} deletes both and returns the port. A body without enabled turns crossplay off, and an enabled that is not true or false answers 422. The answer is the crossplay state.

It answers 400 with the reason, and nothing changes, when the server cannot run Geyser, when GeyserMC's downloads do not answer, or when a plugin cannot be installed. Needs Tier 3 support or a role above it. Audited as server.bedrock_bridge.set, a refused request too.

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required Description
enabled boolean no true turns Bedrock crossplay on: Geyser and Floodgate are installed before the request answers. false turns it off and removes both. A body without enabled turns crossplay off.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Choose where a server's Bedrock crossplay takes Geyser from: release or development

Section titled Choose where a server's Bedrock crossplay takes Geyser from: release or development

PUT /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/bedrock/channel

Choose where a server's Bedrock crossplay takes Geyser from: release or development.

release is GeyserMC's newest release. development is the newest build of GeyserMC's GitHub build workflow, for a Minecraft version no release supports yet. With crossplay on, the chosen Geyser is installed before this answers. With crossplay off, the choice applies when crossplay is turned on. The answer is the crossplay state, with geyser_channel.

It answers 400 with the reason, and nothing changes, when the builds cannot be downloaded. Needs Tier 3 support or a role above it. Audited as server.bedrock_bridge.channel, a refused request too.

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required Description
channel string, one of release, development yes Where Bedrock crossplay takes Geyser from. release is GeyserMC's newest release, the default. development is the newest build of GeyserMC's GitHub build workflow, which supports a new Minecraft version before a release does and has had less testing.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/catalog

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Staff software catalog versions

Section titled Staff software catalog versions

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/catalog/{key}/versions

Name In Type Required Description
uuid path string yes
key path string yes
org_slug path string yes
limit query integer no Default: 200.
include_unsupported query boolean no Default: False.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/change

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Type: Body.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/context

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/installs

Name In Type Required
uuid path string yes
org_slug path string yes
status query string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/installs/{install_uuid}/cancel

Name In Type Required
uuid path string yes
install_uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/software/installs/{install_uuid}/retry

Name In Type Required
uuid path string yes
install_uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

How the server starts: runtime, command (override and default), variables

Section titled How the server starts: runtime, command (override and default), variables

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/startup

How the server starts: runtime, command (override and default), variables.

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Change the runtime, the startup command or the variables

Section titled Change the runtime, the startup command or the variables

PATCH /api/v1/orgs/{org_slug}/staff/servers/{uuid}/startup

Change the runtime, the startup command or the variables. Admin, stepped up.

Applies on the next start; nothing here stops or starts the server.

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
runtime_template_slug string or null no
startup_command string or null no
reset_startup_command boolean no
variables object or null no
remove_variables array of string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Change, add or remove the server's startup variables, for its owner

Section titled Change, add or remove the server's startup variables, for its owner

PATCH /api/v1/orgs/{org_slug}/staff/servers/{uuid}/startup-variables

Change, add or remove the server's startup variables, for its owner.

Support follows the owner's rule (startup_variables.validate_owner_changes): variables sets or adds, remove_variables takes away, and 400 names the variable the rule refuses. The audit row names the keys and never the values, since one may be a password.

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
variables Variables no
remove_variables array of string no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

PATCH /api/v1/orgs/{org_slug}/staff/servers/{uuid}/subdomain

Name In Type Required
uuid path string yes
org_slug path string yes

application/json (required)

Field Type Required
subdomain string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/users

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

PUT /api/v1/orgs/{org_slug}/staff/servers/{uuid}/users/{subuser_id}

Name In Type Required
uuid path string yes
subuser_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
permissions array of string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/staff/servers/{uuid}/users/{subuser_id}

Name In Type Required
uuid path string yes
subuser_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Start a sleeping free server on the customer's behalf

Section titled Start a sleeping free server on the customer's behalf

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/wake

Start a sleeping free server on the customer's behalf.

No Turnstile: the risk challenge exists to slow down a scripted customer, and a signed-in staff member is neither.

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/staff/servers/{uuid}/wake-queue/kick

Get a free server's stuck start moving: settle it against the daemon now and, if it is still not up, admit it past the admission gate and start it. Scoped to the brand's own servers.

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/staff/servers/{uuid}/websocket

The live console. Below Tier 3 the relay lets it be watched, not typed into (STAFF_WATCH_PERMISSIONS in the console relay).

Name In Type Required
uuid path string yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
token string
socket string