Skip to Content
SeyloDocs
API referenceConsole and shell

Open a shell in a service

POST
/api/v1/terminals.shell

Returns a one-minute ticket for a WebSocket running a new shell (bash, else sh) inside a running container of the service. For databases, databaseClient opens the engine's client already logged in.

Needs terminals.shell on the service (a grant on its project covers it). Not available to MCP clients or the assistant.

Authorization

cookieseylo_session<token>

Request Body

application/json
  1. body
serviceId*string

Panel-issued id.

Match^[a-z0-9]{16}$
nodeId?string

Panel-issued id.

Match^[a-z0-9]{16}$
containerId?string
Lengthlength <= 128
command?array<>
Itemsitems <= 20
user?string
Lengthlength <= 64
databaseClient?boolean
Defaultfalse
columns?integer
Range1 <= value <= 1000
Default120
rows?integer
Range1 <= value <= 1000
Default32

Response Body

Success.

application/json
  1. response
url*string

WebSocket path on the panel with the ticket as ?t=; open it within a minute.

ticket*string
expiresAt*string
Formatdate-time
target*
idleTimeoutSeconds*integer
Range0 <= value
Example Request
curl -X POST 'https://example.com/api/v1/terminals.shell' \  -H 'Content-Type: application/json' \  -d '{  "serviceId": "string"}'
Example Response
{  "url": "string",  "ticket": "string",  "expiresAt": "2019-08-24T14:15:22Z",  "target": {    "nodeId": "string",    "nodeName": "string",    "containerId": "string",    "generation": 0  },  "idleTimeoutSeconds": 0}