Skip to Content
SeyloDocs
API referenceExposed ports

Open a timed expose

POST
/api/v1/exposures.openTimed

Opens a container port on node-ip:port for a limited time, only for the given IPs or CIDRs (default: the caller's IP). The agent closes it on time even if the panel is down. For local development and debugging.

Needs exposures.edit on the service (a grant on its project covers it). Available to MCP clients and the assistant.

Authorization

cookieseylo_session<token>

Request Body

application/json
  1. body
serviceId*string

Panel-issued id.

Match^[a-z0-9]{16}$
targetPort*integer

Port the container listens on.

Range1 <= value <= 65535
durationMinutes*integer
Range5 <= value <= 1440
allowedCidrs?array<>
Items1 <= items <= 20
port?integer
Range1024 <= value <= 65535
nodeId?string

Panel-issued id.

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

Response Body

Success.

application/json
  1. response
id*string

Panel-issued id.

Match^[a-z0-9]{16}$
serviceId*string

Panel-issued id.

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

Panel-issued id.

Match^[a-z0-9]{16}$
host*string
port*|null
targetPort*integer

Port the container listens on.

Range1 <= value <= 65535
allowedCidrs*array<>
Items1 <= items
expiresAt*string
Formatdate-time
firewallHint*string|null
openedBy*
createdAt*string
Formatdate-time
Example Request
curl -X POST 'https://example.com/api/v1/exposures.openTimed' \  -H 'Content-Type: application/json' \  -d '{  "serviceId": "string",  "targetPort": 1,  "durationMinutes": 5}'
Example Response
{  "id": "string",  "serviceId": "string",  "nodeId": "string",  "host": "string",  "port": 1,  "targetPort": 1,  "allowedCidrs": [    "string"  ],  "expiresAt": "2019-08-24T14:15:22Z",  "firewallHint": "string",  "openedBy": {    "kind": "user",    "name": "string"  },  "createdAt": "2019-08-24T14:15:22Z"}