Skip to content

Servers

SSH and RDP targets: create, update, health, bootstrap links, provisioning and bulk operations.

GET/api/servers
GET/api/servers/health/summary
POST/api/servers/bulk/environment
POST/api/servers/bulk
GET/api/servers/:id
PATCH/api/servers/:id/connection-ip
POST/api/servers
PUT/api/servers/:id
GET/api/servers/:id/delete-impact
DELETE/api/servers/:id
POST/api/servers/:id/host-key/reset
POST/api/servers/:id/health-check
POST/api/servers/:id/provision
POST/api/servers/bulk-install/plan
POST/api/servers/bulk-install

List servers ​

GET/api/servers

Authentication: bearer token.
Permission: servers.view.

bash
curl -X GET "https://shellius.example.com/api/servers" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

json
{ "success": true, "data": { … } }

Fleet health summary ​

GET/api/servers/health/summary

Authentication: bearer token.
Permission: servers.view.

bash
curl -X GET "https://shellius.example.com/api/servers/health/summary" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

json
{ "success": true, "data": { … } }

Bulk change environment ​

POST/api/servers/bulk/environment

Authentication: bearer token.
Permission: servers.change_environment.

Request body

NameTypeRequiredNotes
serverIdsarrayYesAt least 1.
environmentstringYes
bash
curl -X POST "https://shellius.example.com/api/servers/bulk/environment" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "serverIds": [],
    "environment": "…"
  }'

200 OK

json
{ "success": true, "data": { … } }

Bulk update environment/protocol/os/sshUser/isActive/customerId ​

POST/api/servers/bulk

Generalized bulk update — change any of a set of fields on many servers.

Authentication: bearer token.
Permission: servers.update.

Request body

NameTypeRequiredNotes
serverIdsarrayYesAt least 1.
patchobjectYesAt least 1.
bash
curl -X POST "https://shellius.example.com/api/servers/bulk" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "serverIds": [],
    "patch": {}
  }'

200 OK

json
{ "success": true, "data": { … } }

Get server ​

GET/api/servers/:id

Authentication: bearer token.
Permission: servers.view.

Path parameters

NameTypeNotes
idstring
bash
curl -X GET "https://shellius.example.com/api/servers/{id}" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

json
{ "success": true, "data": { … } }

Change IP of a dynamicIp server ​

PATCH/api/servers/:id/connection-ip

Update the connection IP of a non-static-IP server so a changed cloud IP doesn't lock people out (servers.update_connection_ip). An identity-auth server also needs servers.manage_credentials (see above).

Authentication: bearer token.
Permission: servers.update_connection_ip.

Path parameters

NameTypeNotes
idstring

Request body

NameTypeRequiredNotes
ipAddressstringYes
bash
curl -X PATCH "https://shellius.example.com/api/servers/{id}/connection-ip" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "ipAddress": "…"
  }'

200 OK

json
{ "success": true, "data": { … } }

Create server ​

POST/api/servers

Authentication: bearer token.
Permission: servers.create.

Request body

NameTypeRequiredNotes
customerIdstringYes
hostnamestringYes1–255 characters.
displayNamestringNoAt most 255 characters. May be null.
descriptionstringNoAt most 1000 characters. May be null.
dynamicIpbooleanNoDefault false.
ipAddressstringYesMay be null.
portnumberNoDefault 22. 1–65535.
protocolstringNoDefault ssh.
environmentstringNoDefault dev.
labelsarrayNo
osTypestringNoMay be null.
osVersionstringNoMay be null.
cloudProviderstringNoMay be null.
cloudInstanceIdstringNoMay be null.
cloudRegionstringNoMay be null.
cloudAccountIdstringNoMay be null.
sshUserstringNoDefault root.
sshKeyPathstringNoMay be null.
rdpUsernamestringNoAt most 255 characters. May be null.
rdpPasswordstringNoMay be null.
isActivebooleanNo
authModestringNoDefault certificate.
credentialIdstringYesMay be null.
bash
curl -X POST "https://shellius.example.com/api/servers" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "…",
    "hostname": "…",
    "ipAddress": "…",
    "credentialId": "…"
  }'

201 Created

json
{ "success": true, "data": { … } }

Update server ​

PUT/api/servers/:id

Authentication: bearer token.
Permission: servers.update.

Path parameters

NameTypeNotes
idstring

Request body

NameTypeRequiredNotes
hostnamestringNo1–255 characters.
displayNamestringNoAt most 255 characters. May be null.
descriptionstringNoAt most 1000 characters. May be null.
dynamicIpbooleanNo
ipAddressstringNoMay be null.
portnumberNo1–65535.
protocolstringNo
environmentstringNo
labelsarrayNo
osTypestringNoMay be null.
osVersionstringNoMay be null.
cloudProviderstringNoMay be null.
cloudInstanceIdstringNoMay be null.
cloudRegionstringNoMay be null.
cloudAccountIdstringNoMay be null.
sshUserstringNo
sshKeyPathstringNoMay be null.
rdpUsernamestringNoAt most 255 characters. May be null.
rdpPasswordstringNoMay be null.
isActivebooleanNo
authModestringNo
credentialIdstringNoMay be null.
bash
curl -X PUT "https://shellius.example.com/api/servers/{id}" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "hostname": "…",
    "displayName": "…",
    "description": "…"
  }'

200 OK

json
{ "success": true, "data": { … } }

Preview server delete impact ​

GET/api/servers/:id/delete-impact

Authentication: bearer token.
Permission: servers.delete.

Path parameters

NameTypeNotes
idstring
bash
curl -X GET "https://shellius.example.com/api/servers/{id}/delete-impact" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

json
{ "success": true, "data": { … } }

Hard-delete server ​

DELETE/api/servers/:id

Authentication: bearer token.
Permission: servers.delete.

Path parameters

NameTypeNotes
idstring
bash
curl -X DELETE "https://shellius.example.com/api/servers/{id}" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

json
{ "success": true, "data": { … } }

Clear pinned host key ​

POST/api/servers/:id/host-key/reset

Clears the pinned SSH host key (TOFU) so the next ssh2 connection re-pins on first contact.

Authentication: bearer token.
Permission: servers.reset_host_key.

Path parameters

NameTypeNotes
idstring
bash
curl -X POST "https://shellius.example.com/api/servers/{id}/host-key/reset" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

json
{ "success": true, "data": { … } }

Run health probe ​

POST/api/servers/:id/health-check

Authentication: bearer token.
Permission: servers.onboard.

Path parameters

NameTypeNotes
idstring
bash
curl -X POST "https://shellius.example.com/api/servers/{id}/health-check" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

json
{ "success": true, "data": { … } }

SSE: SSH in with caller-supplied creds and run bootstrap ​

POST/api/servers/:id/provision

SSE endpoint — streams bootstrap output to admin in real time. The private key and sudo password are used once in memory and never stored.

Authentication: bearer token.
Permission: servers.onboard.

Path parameters

NameTypeNotes
idstring

Request body

NameTypeRequiredNotes
modestringNoDefault full.
bash
curl -X POST "https://shellius.example.com/api/servers/{id}/provision" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "…"
  }'

200 OK

json
{ "success": true, "data": { … } }

Bulk install plan ​

POST/api/servers/bulk-install/plan

What a run would do, before it does any of it. Read-only.

Authentication: bearer token.
Permission: servers.onboard.

Request body

NameTypeRequiredNotes
serverIdsarrayNoDefault [].
modestringNoDefault posture.
hasFallbackCredentialsbooleanNoDefault false.
includeDonebooleanNoDefault false.
bash
curl -X POST "https://shellius.example.com/api/servers/bulk-install/plan" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "serverIds": [],
    "mode": "…",
    "hasFallbackCredentials": false
  }'

200 OK

json
{ "success": true, "data": { … } }

Bulk install ​

POST/api/servers/bulk-install

SSE. Runs the installer across many hosts, bounded concurrency, one event stream. Secrets are resolved in memory per host and never stored.

Authentication: bearer token.
Permission: servers.onboard.

Request body

NameTypeRequiredNotes
serverIdsarrayYesAt least 1.
modestringNoDefault posture.
concurrencynumberNoDefault 3. 1–8.
credentialIdstringNoMay be null.
sshUserstringNoMay be null.
privateKeystringNoMay be null.
passphrasestringNoMay be null.
passwordstringNoMay be null.
sudoPasswordstringNoMay be null.
useServerIdentitybooleanNoDefault true.
bash
curl -X POST "https://shellius.example.com/api/servers/bulk-install" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "serverIds": []
  }'

200 OK

json
{ "success": true, "data": { … } }
Was this page helpful?No, tell us why