REST API reference
The platform REST API lives at https://api.orkestr.eu/api/v1. Everything the console does is also reachable here - create projects, manage environments, trigger deployments, read logs, attach add-ons, and rotate API tokens. For the sandbox runtime (LLM-isolated VM execution) see the separate Sandboxes REST API at api.orkestr.eu/v1/sandboxes.
Authentication
All requests require a Bearer token in the Authorization header. Generate tokens from Settings -> API in the console (Pro and Team plans).
curl -X GET https://api.orkestr.eu/api/v1/projects \
-H "Authorization: Bearer ork_your_token_here" \
-H "Content-Type: application/json"Base URL
https://api.orkestr.eu/api/v1All endpoints return JSON. Successful responses use 2xx status codes. Errors return {"detail": "error message"}.
Rate limits
Limits are per-token, applied to the API surface (not the console).
- Starter (free) - no API access
- Pro - 100 requests / minute, 5 active tokens
- Team - 500 requests / minute, 20 active tokens
Token format
API tokens look like ork_<random>. The ork_ prefix makes them easy to spot in logs and secret scanners.
- Tokens are hashed (SHA-256) - we never store the raw value
- Shown once on creation - copy immediately
- Optional expiry: 30, 90, 180, or 365 days, or never
Projects
Create, manage, and analyze your projects.
/projectsList all projects.
/projectsCreate a new project.
/projects/{project_id}Get project details.
/projects/{project_id}Update project settings.
/projects/{project_id}Delete a project and destroy its containers.
/projects/{project_id}/analyzeAnalyze repo - detect framework, generate Dockerfile.
/projects/{project_id}/env-varsReturn decrypted project-level env vars.
/projects/{project_id}/webhookWebhook info: provider, URL, last delivery.
/projects/{project_id}/webhook/toggleEnable or disable auto-deploy on git push.
/projects/check-name/{name}Check whether a project slug is available.
Environments
Manage per-project environments (production, staging, dev) - each with its own branch, env vars, and deploy history.
/projects/{project_id}/environmentsList environments.
/projects/{project_id}/environmentsCreate an environment.
/projects/{project_id}/environments/{env_id}Update environment.
/projects/{project_id}/environments/{env_id}Delete an environment (production cannot be deleted).
/projects/{project_id}/environments/{env_id}/env-varsReturn decrypted env vars for an environment.
Deployments
Trigger deployments, fetch logs, and roll back.
/projects/{project_id}/deploymentsTrigger a deployment. Optional ?environment_id=uuid.
/projects/{project_id}/deploymentsList deployments.
/deployments/{deployment_id}Deployment details + pipeline steps.
/deployments/{deployment_id}/logsAll deployment logs by step.
/deployments/{deployment_id}/build-logFull builder output (Kaniko stderr) - useful when a build fails.
/deployments/{deployment_id}/rollbackRollback to a previous deployment (Pro+).
Monitoring
Container stats, logs, health, request metrics, sleep / wake.
/projects/{project_id}/statsContainer CPU, memory, and network stats.
/projects/{project_id}/logsApplication runtime logs (stdout/stderr).
/projects/{project_id}/healthContainer health: status, uptime, restart count.
/projects/{project_id}/app-healthLive app health badge from request traffic, with deploy-step fallback.
/projects/{project_id}/request-metricsRequest rate, error rate, p50 / p95 / p99 latency.
/projects/{project_id}/deployment-statsSuccess rate, average deploy duration, last deploy timestamp.
/projects/{project_id}/sleepManually put a container to sleep.
/projects/{project_id}/wakeWake a sleeping container.
Functions
Serverless handlers - paste code, pick a runtime (Node.js or Python), get a public URL. Scale-to-zero, wake-on-request, optional API-key auth.
/functionsList your functions.
/functionsCreate a new function.
/functions/{function_id}Function details (handler code, runtime, URL, node placement).
/functions/{function_id}Update handler code, auth mode, idle timeout, or env vars.
/functions/{function_id}Destroy the function container, image, and DNS record.
/functions/{function_id}/deployBuild and deploy the function - pulls the latest handler code from the DB.
/functions/{function_id}/invokeProxy an invocation through the backend (auto-injects API key if set).
/functions/{function_id}/logsRecent container stdout / stderr.
/functions/{function_id}/env-varsReturn decrypted env vars for the function.
/functions/{function_id}/metricsFunction request metrics: requests / min, error rate, latency.
/functions/{function_id}/rotate-api-keyGenerate a new API key (full key returned once).
/functions/check-name/{name}Check whether a function slug is available.
Add-ons
Postgres and Redis add-ons. Pro+ required.
/projects/{project_id}/addonsList add-ons for a project.
/projects/{project_id}/addonsProvision a new add-on (postgres or redis).
/projects/{project_id}/addons/{addon_id}Get a single add-on with connection URL.
/projects/{project_id}/addons/{addon_id}Destroy an add-on and its data (irreversible).
/projects/{project_id}/addons/{addon_id}/auto-backupToggle daily auto-backup on / off.
/projects/{project_id}/addons/{addon_id}/backup-infoBackup plan info: retention days, daily quota, next run.
Backups
Manual and automatic backups for Postgres and Redis add-ons.
/projects/{project_id}/addons/{addon_id}/backupsList backups for an add-on.
/projects/{project_id}/addons/{addon_id}/backupsTrigger a manual backup.
/projects/{project_id}/addons/{addon_id}/backups/{backup_id}/downloadGet a presigned download URL for a backup.
/projects/{project_id}/addons/{addon_id}/backups/{backup_id}Delete a backup.
Domains
Custom domains (CNAME to your project subdomain on orkestr.run).
/domainsList your projects with their custom domain status.
/domains/{project_id}/verifyRe-check that the project domain DNS points to orkestr.
Registry
Docker registry images per project. The currently-live image is protected from deletion.
/projects/{project_id}/imagesList images stored in the registry.
/projects/{project_id}/images/{tag}/scanTrigger an on-demand security scan.
/projects/{project_id}/images/{tag}Delete an image tag from the registry.
Activity
Audit log + dashboard summary.
/activityRecent activity for the current user.
/dashboard/summaryProject count, plan usage, recent deployments.
Notifications
In-product notifications.
/notifications50 most recent notifications.
/notifications/{notification_id}/readMark a notification as read.
/notifications/read-allMark all notifications as read.
API tokens
Self-service API token management.
/api-tokensList your tokens (hashes only).
/api-tokensCreate a new token. Plaintext returned once.
/api-tokens/{token_id}Revoke a token.
Project groups
Workspaces that bundle related projects together.
/groupsList your project groups.
/groupsCreate a project group.
/groups/{group_id}Get a group with its assigned projects.
/groups/{group_id}Update a group.
/groups/{group_id}Delete a group (projects are not deleted).
/groups/{group_id}/projects/{project_id}Assign a project to a group.
/groups/{group_id}/projects/{project_id}Remove a project from a group.
Response codes
| Status | Meaning |
|---|---|
| 200 | Success. |
| 201 | Created. |
| 204 | Deleted - no content. |
| 400 | Bad request - invalid input. |
| 401 | Unauthorized - invalid or expired token. |
| 403 | Forbidden - plan limit or insufficient permissions. |
| 404 | Resource not found. |
| 409 | Conflict - name taken or deployment in progress. |
| 429 | Rate limit exceeded. |
--help mirrors the underlying REST call. Per-endpoint reference docs land in a future revision of this page.Next steps
- CLI - terminal-driven workflows on top of the same API
- MCP server - the same endpoints exposed as tool calls for AI agents
- Workflow examples - PR preview, CI/CD, rollback scripts, batch operations