# Applications

| Method | Path | What it does | Permission | Sudo | Approval |
|---|---|---|---|---|---|
| GET | `/api/apps` | List Apps | `apps.read` |  |  |
| POST | `/api/apps` | Create App | `apps.manage` |  | yes |
| POST | `/api/apps/adopt` | Adopt App | `apps.manage` | yes |  |
| POST | `/api/apps/adopt-site` | Adopt Site | `apps.manage` | yes |  |
| POST | `/api/apps/import` | Import App | `apps.manage` | yes |  |
| POST | `/api/apps/inspect` | Inspect App Source | `apps.manage` |  |  |
| GET | `/api/apps/native-sites` | List Native Sites | `apps.manage` |  |  |
| GET | `/api/apps/types` | List App Types | `apps.read` |  |  |
| GET | `/api/apps/{domain}` | Get App | `apps.read` |  |  |
| DELETE | `/api/apps/{domain}` | Delete App | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/adoption` | Get Adoption | `apps.read` |  |  |
| POST | `/api/apps/{domain}/apply` | Apply | `root_equivalent` | yes | yes |
| PATCH | `/api/apps/{domain}/backup-before-update` | Patch Backup Before Update | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/backup-required` | Get Backup Required | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/backup-required` | Put Backup Required | `apps.manage` | yes |  |
| PATCH | `/api/apps/{domain}/branch` | Update App Branch | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/build` | Get App Build | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/build` | Put App Build | `root_equivalent` | yes | yes |
| DELETE | `/api/apps/{domain}/build` | Delete App Build | `apps.manage` |  |  |
| GET | `/api/apps/{domain}/build-cache` | Get Build Cache | `apps.read` |  |  |
| DELETE | `/api/apps/{domain}/build-cache` | Delete Build Cache | `apps.deploy` |  |  |
| POST | `/api/apps/{domain}/clone` | Clone App | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/compose` | Get Compose Settings | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/compose` | Put Compose Settings | `apps.manage` | yes |  |
| DELETE | `/api/apps/{domain}/compose` | Delete Compose Settings | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/compose/document` | Get Compose Document | `secrets.reveal` |  |  |
| PUT | `/api/apps/{domain}/compose/document` | Put Compose Document | `apps.manage` | yes |  |
| POST | `/api/apps/{domain}/compose/document/check` | Check Compose Document | `apps.manage` |  |  |
| GET | `/api/apps/{domain}/compose/variables` | Get Compose Variables | `apps.read` |  |  |
| GET | `/api/apps/{domain}/container` | Get App Container | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/container` | Put App Container | `apps.manage` |  |  |
| POST | `/api/apps/{domain}/container/check` | Check App Image | `apps.deploy` |  |  |
| GET | `/api/apps/{domain}/declaration` | Get Declaration | `secrets.reveal` |  |  |
| GET | `/api/apps/{domain}/deletion` | Get Deletion Plan | `apps.read` |  |  |
| POST | `/api/apps/{domain}/deploy` | Deploy App | `apps.deploy` |  |  |
| GET | `/api/apps/{domain}/deploy-key` | Get Deploy Key | `apps.read` |  |  |
| POST | `/api/apps/{domain}/deploy-key` | Create Deploy Key | `apps.manage` |  |  |
| DELETE | `/api/apps/{domain}/deploy-key` | Delete Deploy Key | `apps.manage` | yes |  |
| POST | `/api/apps/{domain}/deploy-key/import` | Import Deploy Key | `apps.manage` | yes |  |
| POST | `/api/apps/{domain}/deploy-key/rotate` | Start Rotation | `apps.manage` |  |  |
| DELETE | `/api/apps/{domain}/deploy-key/rotate` | Cancel Rotation | `apps.manage` |  |  |
| POST | `/api/apps/{domain}/deploy-key/test` | Test Deploy Key | `apps.manage` |  |  |
| GET | `/api/apps/{domain}/diagnose` | Diagnose App | `apps.read` |  |  |
| GET | `/api/apps/{domain}/disk` | Get Disk | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/disk` | Put Disk | `apps.manage` |  |  |
| PUT | `/api/apps/{domain}/disk/kernel` | Put Disk Kernel | `apps.manage` | yes |  |
| POST | `/api/apps/{domain}/disk/measure` | Post Disk Measure | `apps.operate` |  |  |
| GET | `/api/apps/{domain}/env` | Get App Env | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/env` | Update App Env | `apps.manage` | yes |  |
| PATCH | `/api/apps/{domain}/env` | Merge App Env | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/env/file` | Get App Env File | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/env/marks` | Update App Env Marks | `apps.manage` | yes |  |
| POST | `/api/apps/{domain}/env/resolve` | Resolve App Env | `apps.manage` | yes |  |
| POST | `/api/apps/{domain}/env/sync` | Sync App Env | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/export` | Get App Export | `secrets.reveal` |  |  |
| GET | `/api/apps/{domain}/files` | List Files | `apps.terminal` |  |  |
| DELETE | `/api/apps/{domain}/files` | Delete File | `apps.terminal` | yes |  |
| GET | `/api/apps/{domain}/files/content` | Read File | `apps.terminal` | yes |  |
| PUT | `/api/apps/{domain}/files/content` | Save File | `apps.terminal` | yes |  |
| POST | `/api/apps/{domain}/files/directory` | Make Directory | `apps.terminal` | yes |  |
| GET | `/api/apps/{domain}/files/download` | Download File | `apps.terminal` | yes |  |
| POST | `/api/apps/{domain}/files/move` | Move File | `apps.terminal` | yes |  |
| PUT | `/api/apps/{domain}/files/upload` | Upload File | `apps.terminal` | yes |  |
| PATCH | `/api/apps/{domain}/follow-tags` | Update App Follow Tags | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/git-credential` | Get Git Credential | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/git-credential` | Put Git Credential | `apps.manage` | yes |  |
| DELETE | `/api/apps/{domain}/git-credential` | Delete Git Credential | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/hardening` | Get Hardening | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/hardening` | Put Hardening | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/headless` | Get Headless | `apps.read` |  |  |
| POST | `/api/apps/{domain}/headless` | Post Headless | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/health` | Get App Health | `apps.read` |  |  |
| PATCH | `/api/apps/{domain}/health` | Update App Health | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/hooks` | Get App Hooks | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/hooks` | Put App Hooks | `root_equivalent` | yes | yes |
| DELETE | `/api/apps/{domain}/hooks` | Delete App Hooks | `apps.manage` |  |  |
| GET | `/api/apps/{domain}/identity` | Get Identity | `apps.read` |  |  |
| POST | `/api/apps/{domain}/identity/migrate` | Post Identity Migrate | `root_equivalent` | yes | yes |
| PATCH | `/api/apps/{domain}/limits` | Update App Limits | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/logs` | Get App Logs | `apps.read` |  |  |
| POST | `/api/apps/{domain}/migrate` | Migrate App | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/migrate/plan` | Get Migration Plan | `apps.read` |  |  |
| GET | `/api/apps/{domain}/mounts` | List Mounts | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/mounts` | Put Mount | `apps.manage` | yes |  |
| DELETE | `/api/apps/{domain}/mounts` | Delete Mount | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/mounts/content` | Read Mount | `secrets.reveal` | yes |  |
| GET | `/api/apps/{domain}/networks` | Get Networks | `apps.read` |  |  |
| GET | `/api/apps/{domain}/packages` | Get Packages | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/packages` | Put Packages | `root_equivalent` | yes | yes |
| POST | `/api/apps/{domain}/packages/install` | Install Packages | `root_equivalent` | yes | yes |
| GET | `/api/apps/{domain}/pending` | Get Pending | `apps.read` |  |  |
| GET | `/api/apps/{domain}/process-types` | Get Processes | `apps.read` |  |  |
| GET | `/api/apps/{domain}/processes` | List Processes | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/processes/{name}` | Put Process | `apps.manage` | yes |  |
| DELETE | `/api/apps/{domain}/processes/{name}` | Delete Process | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/processes/{name}/logs` | Process Logs | `apps.read` |  |  |
| POST | `/api/apps/{domain}/processes/{name}/scale` | Scale Process | `apps.manage` | yes |  |
| POST | `/api/apps/{domain}/promote` | Promote Release | `apps.deploy` | yes |  |
| GET | `/api/apps/{domain}/promotion` | Get Promotion | `apps.read` |  |  |
| GET | `/api/apps/{domain}/push` | Get App Push | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/push` | Put App Push | `apps.manage` | yes |  |
| DELETE | `/api/apps/{domain}/push` | Delete App Push | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/push/keys` | List App Push Keys | `apps.read` |  |  |
| POST | `/api/apps/{domain}/push/keys` | Add App Push Key | `apps.manage` | yes |  |
| DELETE | `/api/apps/{domain}/push/keys/{label}` | Remove App Push Key | `apps.manage` | yes |  |
| POST | `/api/apps/{domain}/push/refresh` | Refresh App Push | `apps.manage` |  |  |
| POST | `/api/apps/{domain}/reclaim` | Post Reclaim | `apps.operate` | yes |  |
| GET | `/api/apps/{domain}/registry-logins` | Get App Registry Logins | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/registry-logins` | Set App Registry Logins | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/releases` | Get App Releases | `apps.read` |  |  |
| POST | `/api/apps/{domain}/releases/bundle` | Build Bundle | `apps.deploy` |  |  |
| GET | `/api/apps/{domain}/releases/bundles` | List Bundles | `apps.deploy` |  |  |
| GET | `/api/apps/{domain}/releases/bundles/{bundle_id}` | Bundle Info | `apps.deploy` |  |  |
| DELETE | `/api/apps/{domain}/releases/bundles/{bundle_id}` | Discard Bundle | `apps.deploy` |  |  |
| GET | `/api/apps/{domain}/releases/bundles/{bundle_id}/data` | Bundle Data | `apps.deploy` |  |  |
| POST | `/api/apps/{domain}/releases/receive` | Receive Bundle | `apps.deploy` |  |  |
| PATCH | `/api/apps/{domain}/releases/retention` | Update Release Retention | `apps.manage` | yes |  |
| POST | `/api/apps/{domain}/releases/stage` | Stage Release | `apps.deploy` |  |  |
| POST | `/api/apps/{domain}/releases/uploads` | Start Bundle Upload | `apps.deploy` |  |  |
| GET | `/api/apps/{domain}/releases/uploads/{upload_id}` | Bundle Upload Status | `apps.deploy` |  |  |
| PUT | `/api/apps/{domain}/releases/uploads/{upload_id}` | Send Bundle Chunk | `apps.deploy` |  |  |
| DELETE | `/api/apps/{domain}/releases/uploads/{upload_id}` | Discard Bundle Upload | `apps.deploy` |  |  |
| POST | `/api/apps/{domain}/releases/uploads/{upload_id}/complete` | Complete Bundle Upload | `apps.deploy` |  |  |
| POST | `/api/apps/{domain}/releases/{release_id}/activate` | Activate App Release | `apps.deploy` |  |  |
| POST | `/api/apps/{domain}/releases/{release_id}/promote` | Promote Release | `apps.deploy` |  |  |
| GET | `/api/apps/{domain}/replicas` | Get Replicas | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/replicas` | Put Replicas | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/replication` | Get Replication | `apps.read` |  |  |
| POST | `/api/apps/{domain}/restart` | Restart App | `apps.operate` |  |  |
| GET | `/api/apps/{domain}/rollback-points` | List Rollback Points | `apps.read` |  |  |
| GET | `/api/apps/{domain}/rollout` | Get Rollout | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/rollout` | Put Rollout | `apps.manage` |  |  |
| POST | `/api/apps/{domain}/rollout/pause` | Pause Deploys | `apps.deploy` |  |  |
| POST | `/api/apps/{domain}/rollout/resume` | Resume Deploys | `apps.deploy` |  |  |
| GET | `/api/apps/{domain}/sandbox` | Get Sandbox | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/sandbox/compose-exception` | Put Compose Exception | `root_equivalent` | yes | yes |
| DELETE | `/api/apps/{domain}/sandbox/compose-exception` | Delete Compose Exception | `apps.manage` |  |  |
| POST | `/api/apps/{domain}/sandbox/disable` | Post Sandbox Disable | `root_equivalent` | yes | yes |
| POST | `/api/apps/{domain}/sandbox/enable` | Post Sandbox Enable | `apps.manage` |  |  |
| POST | `/api/apps/{domain}/sandbox/test` | Post Sandbox Test | `apps.deploy` |  |  |
| GET | `/api/apps/{domain}/site-logs` | Get Site Logs | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/source` | Put Source | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/source-options` | Get Source Options | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/source-options` | Put Source Options | `apps.manage` |  |  |
| DELETE | `/api/apps/{domain}/source-options` | Delete Source Options | `apps.manage` |  |  |
| POST | `/api/apps/{domain}/source/plan` | Plan Source Change | `apps.manage` |  |  |
| GET | `/api/apps/{domain}/sqlite` | List App Sqlite | `apps.read` |  |  |
| POST | `/api/apps/{domain}/sqlite/check` | Check App Sqlite | `apps.operate` |  |  |
| POST | `/api/apps/{domain}/start` | Start App | `apps.operate` |  |  |
| POST | `/api/apps/{domain}/stop` | Stop App | `apps.operate` |  |  |
| GET | `/api/apps/{domain}/tuning` | Get Tuning | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/tuning` | Put Tuning | `apps.manage` | yes |  |
| GET | `/api/apps/{domain}/update-schedule` | Get Update Schedule | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/update-schedule` | Put Update Schedule | `apps.manage` |  |  |
| DELETE | `/api/apps/{domain}/update-schedule` | Delete Update Schedule | `apps.manage` |  |  |
| GET | `/api/apps/{domain}/zero-downtime` | Get Zero Downtime | `apps.read` |  |  |
| PUT | `/api/apps/{domain}/zero-downtime` | Put Zero Downtime | `apps.manage` | yes |  |
| POST | `/api/deploy` | Deploy Apps | `apps.deploy` |  |  |
| POST | `/api/import/applications` | List Remote Applications | `apps.manage` | yes |  |
| POST | `/api/import/proposal` | Read Remote Application | `apps.manage` | yes |  |
| POST | `/api/uploads` | Start Upload | `apps.manage` |  |  |
| POST | `/api/uploads/dockerfile` | Paste Dockerfile | `apps.manage` |  |  |
| GET | `/api/uploads/{upload_id}` | Upload Status | `apps.manage` |  |  |
| PUT | `/api/uploads/{upload_id}` | Send Chunk | `apps.manage` |  |  |
| DELETE | `/api/uploads/{upload_id}` | Discard Upload | `apps.manage` |  |  |
| POST | `/api/uploads/{upload_id}/complete` | Complete Upload | `apps.manage` |  |  |
| POST | `/api/workspaces/deploy` | Deploy Workspaces | `apps.manage` | yes |  |
| POST | `/api/workspaces/inspect` | Inspect Workspace Source | `apps.manage` |  |  |

