API Reference
API Reference
Complete reference for every Workspace API endpoint. Each page shows both SDK and REST API syntax side by side.
Base URL
https://api.oblien.comAuthentication
All requests require one of:
| Method | Headers | Use case |
|---|---|---|
| API Key | X-Client-ID + X-Client-Secret | Server-side / SDK |
| Scoped Token | Authorization: Bearer <jwt> | Namespace or workspace scoped access |
| Workspace Token | Authorization: Bearer <token> | Client-side / single workspace access |
See Authentication for setup details.
Response format
Every response follows a consistent structure:
Success:
{
"success": true,
"workspace": { ... }
}Error:
{
"success": false,
"error": "validation_error",
"code": "validation_error",
"message": "Port must be between 1 and 65535",
"details": {
"field": "port"
}
}error / code are machine-readable. message is human-readable. details is optional.
Some endpoints return additional top-level fields (e.g., total, page, limit for paginated results).
Common HTTP status codes
| Code | Meaning |
|---|---|
200 | Success |
201 | Created (new resource) |
400 | Bad request - invalid parameters |
401 | Unauthorized - missing or invalid credentials |
402 | Payment required - quota exceeded |
403 | Forbidden - not your resource |
404 | Not found |
409 | Conflict - resource in wrong state |
422 | Unprocessable - validation failed |
429 | Rate limited - slow down |
500 | Server error |
503 | Service unavailable - VM backend down |
Endpoint map
Authentication
| Endpoint | Method | Description |
|---|---|---|
/tokens | POST | Issue a scoped token (namespace or workspace) |
Core
| Endpoint | Method | Description |
|---|---|---|
/workspace | POST | Create workspace |
/workspace | GET | List workspaces |
/workspace/:id | GET | Get workspace |
/workspace/:id | PUT | Update workspace |
/workspace/:id | DELETE | Delete workspace |
/workspace/:id/details | GET | Aggregated details |
/workspace/quota | GET | Resource quota |
/workspace/estimate | GET | Estimate monthly credits |
/workspace/archived | GET | List archived workspaces |
Lifecycle & Power
| Endpoint | Method | Description |
|---|---|---|
/workspace/:id/start | POST | Start workspace |
/workspace/:id/stop | POST | Stop workspace |
/workspace/:id/restart | POST | Restart workspace |
/workspace/:id/pause | POST | Pause workspace |
/workspace/:id/resume | POST | Resume workspace |
/workspace/:id/lifecycle | GET | Get lifecycle status |
/workspace/:id/lifecycle/permanent | POST | Make permanent |
/workspace/:id/lifecycle/temporary | POST | Make temporary |
/workspace/:id/lifecycle/ttl | PUT | Update TTL |
/workspace/:id/lifecycle | DELETE | Destroy workspace VM |
/workspace/:id/ping | POST | Keep-alive (renew TTL) |
Workspace Runtime
Command execution, terminal sessions, file operations, search, and file watchers run inside the workspace VM on a separate API surface. See the Workspace Runtime API docs for the full endpoint reference.
The Runtime API uses
workspace.oblien.com(gateway) or10.x.x.x:9990(direct) - notapi.oblien.com.
Network
| Endpoint | Method | Description |
|---|---|---|
/workspace/:id/network | GET | Get network config |
/workspace/:id/network | PATCH | Update network (firewall + private links) |
/workspace/:id/network/ip | POST | Apply outbound IP |
SSH
| Endpoint | Method | Description |
|---|---|---|
/workspace/:id/ssh | GET | SSH status |
/workspace/:id/ssh/enable | POST | Enable SSH |
/workspace/:id/ssh/disable | POST | Disable SSH |
/workspace/:id/ssh/password | POST | Set password |
/workspace/:id/ssh/key | POST | Set authorized key |
Public Access
| Endpoint | Method | Description |
|---|---|---|
/workspace/:id/public-access | GET | List exposed ports |
/workspace/:id/public-access | POST | Expose a port |
/workspace/:id/public-access/:port | PATCH | Update port slug |
/workspace/:id/public-access/:port | DELETE | Revoke a port |
Resources
| Endpoint | Method | Description |
|---|---|---|
/workspace/:id/resources | GET | Get resources |
/workspace/:id/resources | PUT | Update resources |
Snapshots & Archives
| Endpoint | Method | Description |
|---|---|---|
/workspace/:id/snapshot | POST | Create snapshot |
/workspace/:id/restore | POST | Restore snapshot |
/workspace/:id/archives | POST | Create archive |
/workspace/:id/archives | GET | List archives |
/workspace/:id/archives/:version | GET | Get archive |
/workspace/:id/archives/:version | DELETE | Delete archive |
/workspace/:id/archives | DELETE | Delete all archives |
Workloads
| Endpoint | Method | Description |
|---|---|---|
/workspace/:id/workloads | POST | Create workload |
/workspace/:id/workloads | GET | List workloads |
/workspace/:id/workloads/:wid | GET | Get workload |
/workspace/:id/workloads/:wid | PUT | Update workload |
/workspace/:id/workloads/:wid | DELETE | Delete workload |
/workspace/:id/workloads | DELETE | Delete all |
/workspace/:id/workloads/:wid/start | POST | Start workload |
/workspace/:id/workloads/:wid/stop | POST | Stop workload |
/workspace/:id/workloads/:wid/status | GET | Workload status |
/workspace/:id/workloads/:wid/logs | GET | Workload logs |
/workspace/:id/workloads/:wid/logs/stream | GET | Stream logs (SSE) |
/workspace/:id/workloads/:wid/stats | GET | Workload stats |
/workspace/:id/workloads/:wid/stats/stream | GET | Stream stats (SSE) |
/workspace/:id/workloads/stats/stream | GET | Stream all workloads stats (SSE) |
Monitoring
| Endpoint | Method | Description |
|---|---|---|
/analytics/home/summary | GET | Analytics: all domains summary |
/analytics/:domain | GET | Analytics: unified (overview + timeseries + geo + requests) |
/analytics/:domain/timeseries | GET | Analytics: time-bucketed metrics |
/analytics/:domain/geo | GET | Analytics: country breakdown |
/analytics/:domain/requests | GET | Analytics: raw request logs |
/analytics/:domain/live/token | POST | Analytics: SSE stream token |
/workspace/:id/stats | GET | Current stats |
/workspace/:id/stats/stream | GET | Stream stats (SSE) |
/workspace/:id/info | GET | VM info |
/workspace/:id/config | GET | VM config |
/workspace/usage | GET | Global usage |
/workspace/activity | GET | Activity history |
/workspace/:id/usage | GET | Workspace usage |
/workspace/:id/usage/totals | GET | Usage totals |
/workspace/:id/usage/credits/chart | GET | Credits chart |
/workspace/:id/usage/tracking/start | POST | Start tracking |
/workspace/:id/usage/tracking/stop | POST | Stop tracking |
/workspace/:id/usage | DELETE | Wipe usage data |
Logs
| Endpoint | Method | Description |
|---|---|---|
/workspace/:id/logs | GET | Get logs |
/workspace/:id/logs | DELETE | Clear logs |
/workspace/:id/logs/list | GET | List log files |
/workspace/:id/logs/file/:name | GET | Get log file |
/workspace/:id/logs/stream/boot | GET | Stream boot logs (SSE) |
/workspace/:id/logs/stream/cmd | GET | Stream cmd logs (SSE) |
Metadata
| Endpoint | Method | Description |
|---|---|---|
/workspace/:id/metadata | GET | Get metadata |
/workspace/:id/metadata | PUT | Update metadata |
Runtime API Access
| Endpoint | Method | Description |
|---|---|---|
/workspace/:id/runtime-api-access | GET | Server status |
/workspace/:id/runtime-api-access/enable | POST | Enable server |
/workspace/:id/runtime-api-access/disable | POST | Disable server |
/workspace/:id/runtime-api-access/token | GET | Get gateway JWT |
/workspace/:id/runtime-api-access/token | POST | Rotate token |
/workspace/:id/runtime-api-access/token/raw | GET | Raw token + VM IP |
Custom Domains
| Endpoint | Method | Description |
|---|---|---|
/workspace/:id/domain | GET | Get domain config |
/workspace/:id/domain | POST | Connect custom domain |
/workspace/:id/domain | DELETE | Disconnect domain |
/workspace/:id/domain/check | POST | Check DNS |
/workspace/:id/domain/ssl/renew | POST | Renew SSL |
/domain/check-slug | POST | Check slug availability |
/domain/verify | POST | Verify domain DNS |
Images
| Endpoint | Method | Description |
|---|---|---|
/workspace/images | GET | Image catalog |
Namespaces
| Endpoint | Method | Description |
|---|---|---|
/namespaces | POST | Create namespace |
/namespaces | GET | List namespaces |
/namespaces/:identifier | GET | Get namespace |
/namespaces/:id | PUT | Update namespace |
/namespaces/:id | DELETE | Delete namespace |
/namespaces/:id/suspend | POST | Suspend namespace |
/namespaces/:id/activate | POST | Activate namespace |
/namespaces/:id/stop-workspaces | POST | Stop all workspaces |
/namespaces/:id/activity | GET | Namespace activity |
/namespaces/:id/usage | GET | Namespace usage |
Pages
| Endpoint | Method | Description |
|---|---|---|
/pages | GET | List pages |
/pages | POST | Create page |
/pages/:slug | GET | Get page |
/pages/:slug | PUT | Update page |
/pages/:slug | DELETE | Delete page |
/pages/:slug/deploy | POST | Re-deploy files |
/pages/:slug/enable | POST | Enable page |
/pages/:slug/disable | POST | Disable page |
/pages/:slug/domain | GET | Get domain config |
/pages/:slug/domain | POST | Connect custom domain |
/pages/:slug/domain | DELETE | Disconnect domain |
/pages/:slug/domain/check | POST | Check DNS |
/pages/:slug/domain/ssl/renew | POST | Renew SSL |
Edge Proxy
| Endpoint | Method | Description |
|---|---|---|
/edge/proxies | GET | List proxies |
/edge/proxies | POST | Create proxy |
/edge/proxies/:id | GET | Get proxy |
/edge/proxies/:id | PUT | Update proxy |
/edge/proxies/:id | DELETE | Delete proxy |
/edge/proxies/:id/enable | POST | Enable proxy |
/edge/proxies/:id/disable | POST | Disable proxy |