Overview
Rexec supports two forwarding modes:- HTTP Proxy: Access container services via browser at
/p/:forwardId/ - WebSocket Tunnel: Binary tunnel for non-HTTP protocols (SSH, databases, etc.)
Port forwards are tied to container lifecycle and deleted when the container stops.
Create port forward
POST/api/containers/:containerId/port-forwards
Create a new port forward.
Port inside container (1-65535)
Port on Rexec host (auto-assigned if omitted)
Friendly name for this forward
curl
Port forward ID
Port inside container
Assigned port on host
HTTP proxy URL:
https://api.rexec.sh/p/{id}/WebSocket tunnel URL:
wss://api.rexec.sh/ws/port-forward/{id}Forward name
ISO timestamp
List port forwards
GET/api/containers/:containerId/port-forwards
List all forwards for a container.
curl
Delete port forward
DELETE/api/containers/:containerId/port-forwards/:forwardId
Close and remove a port forward.
curl
HTTP proxy access
Access HTTP services via the proxy URL:- Preserves paths, query strings, and headers
- Supports WebSocket upgrades
- Authenticated (requires valid session)
WebSocket tunnel
For non-HTTP protocols (databases, SSH, etc.), use the WebSocket tunnel:Use cases
Web application preview
Database access
Limitations
- Maximum 10 forwards per container
- Forwards are deleted when container stops
- HTTP proxy has 100MB request/response limit
- WebSocket tunnel has 10MB/s throughput limit
- Pro/Enterprise tiers support custom domains
Error codes
| Code | Message | Description |
|---|---|---|
| 400 | Invalid port | Port must be 1-65535 |
| 403 | Port already forwarded | Duplicate container_port |
| 404 | Container not found | Invalid container ID |
| 409 | Container not running | Must be in running state |
| 429 | Limit exceeded | Max 10 forwards per container |
Related
- Container Management - Container operations
- WebSocket API - Terminal WebSocket protocol