API
REST API reference
Every tRPC procedure is also a REST endpoint. The same surface powers the dashboard, Swagger UI, @nixploy/cli, and MCP.
Authentication
Create a key under Settings → Profile on your panel. Send it on every request:
x-api-key: nxp_...Keys are scoped (read, deploy, write or admin) and bound to one organization. The effective permission set is the scope intersected with the key owner's own capabilities, so a write key held by a viewer still cannot write. New keys expire after 90 days by default.
URL conventions
- Queries →
GET /api/<router>.<procedure> - Mutations →
POST /api/<router>.<procedure> - Nested input → URL-encoded JSON
?input=...on GET - No /api/v1 prefix
1# List projects
2curl -sS -H "x-api-key: $NIXPLOY_API_KEY" \
3 "https://panel.example.com/api/project.all"
4
5# Create a project
6curl -sS -X POST \
7 -H "x-api-key: $NIXPLOY_API_KEY" \
8 -H "content-type: application/json" \
9 -d '{"name":"my-app"}' \
10 "https://panel.example.com/api/project.create"Interactive docs on your panel
Live OpenAPI lives on the installed panel (not mirrored here):
- UI:
https://<panel>/swagger - Spec:
https://<panel>/api/openapi.json
Use the Authorize button with your x-api-key.
CLI
1npm i -g @nixploy/cli
2echo "$NIXPLOY_API_KEY" | nixploy auth login --url https://panel.example.com
3nixploy doctor
4nixploy app list --project-id <id>Endpoint catalog
All 438 endpoints across 49 routers, generated from the router itself. The Requires column lists the organization capabilities the key's user must hold; “instance admin” marks the operations that additionally need the platform owner. Full descriptions and input/output schemas live on your own panel's Swagger, which always matches the version you run.
Deploy CopilotDeploy Copilot: explain failures, chat, generate compose filesai · 7
| Method | Path | Summary | Requires |
|---|---|---|---|
| POST | /api/ai.applySuggestedPatch | Apply a suggested env patch | ai.use, secrets.write, service.deploy |
| POST | /api/ai.chat | Chat with the Copilot about a service | — |
| POST | /api/ai.explainDeployment | Explain a failed deployment | — |
| POST | /api/ai.generateCompose | Generate a compose file | ai.use |
| GET | /api/ai.getExplanation | Get a stored explanation | — |
| GET | /api/ai.getSettings | Get Copilot settings | — |
| POST | /api/ai.updateSettings | Update Copilot settings | — |
ApplicationsApplications: CRUD, source, build, deploy and Swarm runtimeapplication · 19
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/application.all | List applications in a project | — |
| POST | /api/application.cancelDeployment | Cancel a deployment | service.deploy |
| POST | /api/application.create | Create an application | project.write, service.create |
| POST | /api/application.delete | Delete an application | service.delete |
| POST | /api/application.deploy | Queue a build and rollout | service.deploy |
| POST | /api/application.duplicate | Duplicate an application | service.write, secrets.write |
| POST | /api/application.killBuild | Kill the running build | service.deploy |
| POST | /api/application.move | Move an application to another environment | service.write |
| GET | /api/application.one | Get one application | — |
| POST | /api/application.redeploy | Re-roll the current build | service.deploy |
| POST | /api/application.redeployFromDeployment | Rebuild the commit a past deployment built | service.deploy |
| POST | /api/application.reload | Restart an application | service.runtime |
| POST | /api/application.rollback | Roll back to a stored image pin | service.deploy |
| POST | /api/application.saveBuildType | Choose the builder | service.write |
| POST | /api/application.saveEnvironment | Replace the application env vars | secrets.write |
| POST | /api/application.saveSource | Set the application source | service.write, secrets.write |
| POST | /api/application.start | Start an application | service.runtime |
| POST | /api/application.stop | Stop an application | service.runtime |
| POST | /api/application.update | Update application settings | service.write, secrets.write |
Audit logOrganization audit trailaudit · 3
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/audit.all | List audit events | audit.read |
| GET | /api/audit.export | Export the audit trail as CSV | audit.read |
| GET | /api/audit.facets | List audit filter facets | audit.read |
Database backupsDatabase backup schedules, runs, restore and verificationbackup · 10
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/backup.all | List backup schedules | — |
| POST | /api/backup.create | Create a backup schedule | backups.manage, instance admin |
| GET | /api/backup.listBackups | List stored dumps | — |
| GET | /api/backup.one | Get one backup schedule | — |
| POST | /api/backup.remove | Delete a backup schedule | backups.manage, instance admin |
| POST | /api/backup.restore | Restore a dump | backups.manage |
| POST | /api/backup.runManually | Run a backup now | backups.manage, instance admin |
| GET | /api/backup.runs | List backup runs | — |
| POST | /api/backup.update | Update a backup schedule | backups.manage, instance admin |
| POST | /api/backup.verify | Verify a dump | backups.manage, instance admin |
BitbucketBitbucket connections, repositories and branchesbitbucket · 9
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/bitbucket.all | List connected Bitbucket providers | — |
| POST | /api/bitbucket.create | Connect a Bitbucket provider | git_providers.manage |
| GET | /api/bitbucket.listBranches | List branches of a Bitbucket repository | service.create |
| GET | /api/bitbucket.listRepositories | List repositories visible to a Bitbucket connection | service.create |
| GET | /api/bitbucket.one | Get one Bitbucket connection | — |
| POST | /api/bitbucket.remove | Delete a Bitbucket connection | git_providers.manage |
| GET | /api/bitbucket.revealWebhookSecret | Reveal a Bitbucket webhook secret | git_providers.manage |
| POST | /api/bitbucket.testConnection | Test a Bitbucket connection | git_providers.manage |
| POST | /api/bitbucket.update | Update a Bitbucket connection | git_providers.manage |
WhitelabelInstance and organization whitelabel: name, logo, accent and assetsbranding · 4
| Method | Path | Summary | Requires |
|---|---|---|---|
| POST | /api/branding.clearAsset | Remove an uploaded branding asset | — |
| GET | /api/branding.public | Read the instance branding | — |
| GET | /api/branding.settings | Read the branding settings | — |
| POST | /api/branding.update | Update the instance branding | — |
CertificatesCustom TLS certificatescertificate · 5
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/certificate.all | List custom TLS certificates | — |
| POST | /api/certificate.create | Upload a custom certificate | certificates.manage, instance admin |
| POST | /api/certificate.delete | Delete a custom certificate | certificates.manage, instance admin |
| GET | /api/certificate.one | Get one custom certificate | — |
| POST | /api/certificate.update | Replace a custom certificate | certificates.manage, instance admin |
Compose & stacksCompose and Swarm-stack servicescompose · 19
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/compose.all | List compose services in a project | — |
| GET | /api/compose.containers | List running containers of a stack | — |
| POST | /api/compose.create | Create a compose service | service.create |
| POST | /api/compose.createFromUrl | Create a compose service from a URL | service.create |
| POST | /api/compose.delete | Delete a compose service | service.delete |
| POST | /api/compose.deploy | Deploy a compose stack | service.deploy |
| POST | /api/compose.duplicate | Duplicate a compose service | service.write, secrets.write |
| GET | /api/compose.exportTemplate | Export a compose service as a template | secrets.read |
| GET | /api/compose.loadServices | List service names in the compose file | — |
| POST | /api/compose.move | Move a compose service to another environment | service.write |
| GET | /api/compose.one | Get one compose service | — |
| POST | /api/compose.redeploy | Redeploy a compose stack | service.deploy |
| POST | /api/compose.rollback | Roll a compose stack back to a snapshot | service.deploy, secrets.write |
| GET | /api/compose.rollbackTargets | List compose rollback points | — |
| POST | /api/compose.saveComposeFile | Replace the compose file | service.write, instance admin |
| POST | /api/compose.saveEnvironment | Replace the compose service env vars | secrets.write |
| POST | /api/compose.start | Start a compose stack | service.runtime |
| POST | /api/compose.stop | Stop a compose stack | service.runtime |
| POST | /api/compose.update | Update a compose service | service.write, instance admin |
DeploymentsDeployment history and build logsdeployment · 8
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/deployment.byApplication | List deployments of an application | — |
| GET | /api/deployment.byCompose | List deployments of a compose service | — |
| GET | /api/deployment.byProject | List deployments of a project | — |
| GET | /api/deployment.daily | Daily deployment counts | — |
| GET | /api/deployment.getLogs | Read a deployment log | — |
| GET | /api/deployment.recent | List recent deployments | — |
| GET | /api/deployment.statsByProject | Deployment statistics for a project | — |
| GET | /api/deployment.wait | Wait for a deployment and read its outcome | — |
Backup destinationsBackup storage destinations (S3-compatible or local disk)destination · 6
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/destination.all | List backup destinations | — |
| POST | /api/destination.create | Create a backup destination | destinations.manage, instance admin |
| GET | /api/destination.one | Get one backup destination | — |
| POST | /api/destination.remove | Delete a backup destination | destinations.manage |
| POST | /api/destination.testConnection | Test a backup destination | destinations.manage |
| POST | /api/destination.update | Update a backup destination | destinations.manage |
Docker control centerDocker control centre: containers, images, networks, volumes, Swarmdocker · 16
| Method | Path | Summary | Requires |
|---|---|---|---|
| POST | /api/docker.containerAction | Start, stop, restart or remove a container | docker.manage |
| GET | /api/docker.containers | List containers | docker.manage |
| POST | /api/docker.imagePull | Pull an image | docker.manage |
| POST | /api/docker.imageRemove | Remove an image | docker.manage |
| GET | /api/docker.images | List images | docker.manage |
| POST | /api/docker.imagesPrune | Prune dangling images | docker.manage |
| POST | /api/docker.networkRemove | Remove a Docker network | docker.manage |
| GET | /api/docker.networks | List Docker networks | docker.manage |
| GET | /api/docker.nodes | List Swarm nodes | docker.manage, instance admin |
| POST | /api/docker.nodeUpdate | Update a Swarm node | docker.manage, instance admin |
| GET | /api/docker.swarmServices | List Swarm services | docker.manage, instance admin |
| GET | /api/docker.systemInfo | Get Docker system info | docker.manage |
| POST | /api/docker.systemPrune | Prune the Docker system | docker.manage, instance admin |
| POST | /api/docker.volumeRemove | Remove a Docker volume | docker.manage |
| GET | /api/docker.volumes | List Docker volumes | docker.manage |
| POST | /api/docker.volumesPrune | Prune unused volumes | docker.manage |
DomainsTraefik domains, TLS and middleware chainsdomain · 14
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/domain.all | List domains | — |
| GET | /api/domain.byApplication | List domains of an application | — |
| GET | /api/domain.byCompose | List domains of a compose service | — |
| GET | /api/domain.checkDns | Check a host's DNS | — |
| POST | /api/domain.create | Attach a domain | domains.manage |
| POST | /api/domain.delete | Delete a domain | domains.manage |
| GET | /api/domain.diagnose | Diagnose a domain's route | service.runtime |
| POST | /api/domain.ensureDnsRecord | Create the domain's DNS record | domains.manage |
| GET | /api/domain.generateDomain | Generate a free traefik.me host | — |
| GET | /api/domain.middlewares | List the middleware chain of a domain | — |
| GET | /api/domain.one | Get one domain | — |
| POST | /api/domain.saveMiddlewares | Replace the middleware chain of a domain | domains.manage |
| POST | /api/domain.update | Update a domain | domains.manage |
| GET | /api/domain.validateHost | Check whether a host is available | — |
EnvironmentsProject environmentsenvironment · 7
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/environment.byProject | List environments of a project | — |
| POST | /api/environment.clone | Clone an environment with its services | project.write, secrets.write |
| POST | /api/environment.create | Create an environment | project.write, secrets.write |
| POST | /api/environment.delete | Delete an environment | project.delete |
| POST | /api/environment.duplicate | Duplicate an environment | project.write, secrets.write |
| POST | /api/environment.saveEnvironment | Replace the environment env vars | secrets.write |
| POST | /api/environment.update | Update an environment | project.write, secrets.write |
GiteaGitea connections, repositories and branchesgitea · 9
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/gitea.all | List connected Gitea providers | — |
| POST | /api/gitea.create | Connect a Gitea provider | git_providers.manage |
| GET | /api/gitea.listBranches | List branches of a Gitea repository | service.create |
| GET | /api/gitea.listRepositories | List repositories visible to a Gitea connection | service.create |
| GET | /api/gitea.one | Get one Gitea connection | — |
| POST | /api/gitea.remove | Delete a Gitea connection | git_providers.manage |
| GET | /api/gitea.revealWebhookSecret | Reveal a Gitea webhook secret | git_providers.manage |
| POST | /api/gitea.testConnection | Test a Gitea connection | git_providers.manage |
| POST | /api/gitea.update | Update a Gitea connection | git_providers.manage |
GitHubGitHub App connections, repositories and branchesgithub · 9
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/github.all | List connected GitHub providers | — |
| POST | /api/github.create | Connect a GitHub provider | git_providers.manage |
| POST | /api/github.createAppManifest | Start the GitHub App manifest flow | git_providers.manage |
| GET | /api/github.listBranches | List branches of a GitHub repository | service.create |
| GET | /api/github.listRepositories | List repositories visible to a GitHub connection | service.create |
| GET | /api/github.one | Get one GitHub connection | — |
| POST | /api/github.remove | Delete a GitHub connection | git_providers.manage |
| POST | /api/github.syncInstallation | Sync a GitHub App installation | git_providers.manage |
| POST | /api/github.update | Update a GitHub connection | git_providers.manage |
GitLabGitLab connections, repositories and branchesgitlab · 8
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/gitlab.all | List connected GitLab providers | — |
| POST | /api/gitlab.create | Connect a GitLab provider | git_providers.manage |
| GET | /api/gitlab.listBranches | List branches of a GitLab repository | service.create |
| GET | /api/gitlab.listRepositories | List repositories visible to a GitLab connection | service.create |
| GET | /api/gitlab.one | Get one GitLab connection | — |
| POST | /api/gitlab.remove | Delete a GitLab connection | git_providers.manage |
| POST | /api/gitlab.testConnection | Test a GitLab connection | git_providers.manage |
| POST | /api/gitlab.update | Update a GitLab connection | git_providers.manage |
GitOpsDesired-state export, plan and apply for `nixploy.yaml`gitops · 7
| Method | Path | Summary | Requires |
|---|---|---|---|
| POST | /api/gitops.applySecrets | Write a sealed secrets bundle onto an environment | gitops.manage, secrets.write |
| POST | /api/gitops.exportSecrets | Seal an environment's env values with a passphrase | gitops.manage, secrets.read |
| GET | /api/gitops.exportStack | Export an environment as nixploy.yaml | gitops.manage |
| POST | /api/gitops.plan | Plan a nixploy.yaml apply | gitops.manage |
| POST | /api/gitops.runApply | Apply a nixploy.yaml | gitops.manage |
| POST | /api/gitops.syncFromGit | Apply a nixploy.yaml sent in the request body | gitops.manage |
| POST | /api/gitops.syncFromUrl | Apply a nixploy.yaml fetched from an https URL | gitops.manage |
Import from another panelRead projects and services from another panel's API and map them hereimport · 3
| Method | Path | Summary | Requires |
|---|---|---|---|
| POST | /api/import.inspect | List what a source panel's API key can see | gitops.manage |
| POST | /api/import.plan | Translate one source environment and diff it against the target | gitops.manage |
| POST | /api/import.runApply | Import one source environment: rows, then env values, no deploy | gitops.manage, secrets.write |
MariaDBMariaDB database servicesmariadb · 18
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/mariadb.all | List MariaDB services in a project | — |
| POST | /api/mariadb.create | Create a MariaDB service | service.create, secrets.write |
| POST | /api/mariadb.createLogicalDatabase | Create an additional MariaDB database | service.write, secrets.write |
| POST | /api/mariadb.deleteLogicalDatabase | Delete an additional MariaDB database | service.delete |
| POST | /api/mariadb.duplicate | Duplicate a MariaDB service | service.write, secrets.write |
| GET | /api/mariadb.engineVersions | List curated MariaDB versions | — |
| GET | /api/mariadb.getConnectionUrl | Get the MariaDB connection URL | secrets.read |
| GET | /api/mariadb.getStatus | Get MariaDB container status | — |
| GET | /api/mariadb.listLogicalDatabases | List additional MariaDB databases | — |
| POST | /api/mariadb.move | Move a MariaDB service to another environment | service.write |
| GET | /api/mariadb.one | Get one MariaDB service | — |
| POST | /api/mariadb.reload | Recreate the MariaDB container | service.runtime |
| POST | /api/mariadb.remove | Delete a MariaDB service | service.delete |
| POST | /api/mariadb.saveEnvironment | Replace the MariaDB service env vars | secrets.write |
| POST | /api/mariadb.saveExternalPort | Publish the MariaDB service on a host port | service.write |
| POST | /api/mariadb.start | Start a MariaDB service | service.deploy |
| POST | /api/mariadb.stop | Stop a MariaDB service | service.runtime |
| POST | /api/mariadb.update | Update a MariaDB service | service.write |
MongoDBMongoDB database servicesmongo · 18
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/mongo.all | List MongoDB services in a project | — |
| POST | /api/mongo.create | Create a MongoDB service | service.create, secrets.write |
| POST | /api/mongo.createLogicalDatabase | Create an additional MongoDB database | service.write, secrets.write |
| POST | /api/mongo.deleteLogicalDatabase | Delete an additional MongoDB database | service.delete |
| POST | /api/mongo.duplicate | Duplicate a MongoDB service | service.write, secrets.write |
| GET | /api/mongo.engineVersions | List curated MongoDB versions | — |
| GET | /api/mongo.getConnectionUrl | Get the MongoDB connection URL | secrets.read |
| GET | /api/mongo.getStatus | Get MongoDB container status | — |
| GET | /api/mongo.listLogicalDatabases | List additional MongoDB databases | — |
| POST | /api/mongo.move | Move a MongoDB service to another environment | service.write |
| GET | /api/mongo.one | Get one MongoDB service | — |
| POST | /api/mongo.reload | Recreate the MongoDB container | service.runtime |
| POST | /api/mongo.remove | Delete a MongoDB service | service.delete |
| POST | /api/mongo.saveEnvironment | Replace the MongoDB service env vars | secrets.write |
| POST | /api/mongo.saveExternalPort | Publish the MongoDB service on a host port | service.write |
| POST | /api/mongo.start | Start a MongoDB service | service.deploy |
| POST | /api/mongo.stop | Stop a MongoDB service | service.runtime |
| POST | /api/mongo.update | Update a MongoDB service | service.write |
MonitoringLive and historical metrics, fleet overviewmonitoring · 5
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/monitoring.fleetOverview | List every service with its latest metrics | — |
| GET | /api/monitoring.history | Get sampled service metrics | — |
| GET | /api/monitoring.replicaStats | Get live per-replica stats | — |
| GET | /api/monitoring.serverHistory | Get sampled server metrics | — |
| GET | /api/monitoring.serverStats | Get host stats | instance admin |
MountsService mounts (bind, volume, file)mount · 6
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/mount.byApplication | List mounts of an application | — |
| GET | /api/mount.byCompose | List mounts of a compose stack | — |
| POST | /api/mount.create | Create a mount | service.write, secrets.write, instance admin |
| POST | /api/mount.delete | Delete a mount | service.write |
| GET | /api/mount.one | Get one mount | — |
| POST | /api/mount.update | Update a mount | service.write, secrets.write, instance admin |
MySQLMySQL database servicesmysql · 18
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/mysql.all | List MySQL services in a project | — |
| POST | /api/mysql.create | Create a MySQL service | service.create, secrets.write |
| POST | /api/mysql.createLogicalDatabase | Create an additional MySQL database | service.write, secrets.write |
| POST | /api/mysql.deleteLogicalDatabase | Delete an additional MySQL database | service.delete |
| POST | /api/mysql.duplicate | Duplicate a MySQL service | service.write, secrets.write |
| GET | /api/mysql.engineVersions | List curated MySQL versions | — |
| GET | /api/mysql.getConnectionUrl | Get the MySQL connection URL | secrets.read |
| GET | /api/mysql.getStatus | Get MySQL container status | — |
| GET | /api/mysql.listLogicalDatabases | List additional MySQL databases | — |
| POST | /api/mysql.move | Move a MySQL service to another environment | service.write |
| GET | /api/mysql.one | Get one MySQL service | — |
| POST | /api/mysql.reload | Recreate the MySQL container | service.runtime |
| POST | /api/mysql.remove | Delete a MySQL service | service.delete |
| POST | /api/mysql.saveEnvironment | Replace the MySQL service env vars | secrets.write |
| POST | /api/mysql.saveExternalPort | Publish the MySQL service on a host port | service.write |
| POST | /api/mysql.start | Start a MySQL service | service.deploy |
| POST | /api/mysql.stop | Stop a MySQL service | service.runtime |
| POST | /api/mysql.update | Update a MySQL service | service.write |
NotificationsNotification channelsnotification · 6
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/notification.all | List notification channels | — |
| POST | /api/notification.create | Create a notification channel | notifications.manage |
| GET | /api/notification.one | Get one notification channel | — |
| POST | /api/notification.remove | Delete a notification channel | notifications.manage |
| POST | /api/notification.test | Send a test notification | notifications.manage |
| POST | /api/notification.update | Update a notification channel | notifications.manage |
Incidents & uptimeIncidents, alert rules, uptime probes, log searchobservability · 17
| Method | Path | Summary | Requires |
|---|---|---|---|
| POST | /api/observability.acknowledgeIncident | Acknowledge an incident | project.write |
| GET | /api/observability.alertRules | List alert rules of a service | — |
| POST | /api/observability.applyRemediation | Apply a proposed remediation | service.deploy, secrets.write |
| POST | /api/observability.deleteAlertRule | Delete an alert rule | project.write |
| POST | /api/observability.disableStatusPage | Unpublish the status page | settings.manage |
| POST | /api/observability.dismissRemediation | Dismiss a proposed remediation | project.write |
| POST | /api/observability.enableStatusPage | Publish a public status page | settings.manage |
| GET | /api/observability.incidents | List incidents | — |
| POST | /api/observability.resolveIncident | Resolve an incident | project.write |
| POST | /api/observability.rotateStatusPageToken | Rotate the status page token | settings.manage |
| GET | /api/observability.runtimeLogs | Search runtime log history | service.runtime |
| GET | /api/observability.searchLogs | Search persisted service logs | — |
| GET | /api/observability.serviceEvents | List a service's event timeline | — |
| POST | /api/observability.setUptimeProbe | Configure an uptime probe | project.write |
| GET | /api/observability.statusPage | Get the public status page settings | — |
| POST | /api/observability.upsertAlertRule | Create or update an alert rule | project.write |
| GET | /api/observability.uptimeProbes | List uptime probes | — |
OrganizationOrganization settings, members, capabilities and shared envorganization · 10
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/organization.capabilityCatalog | List the capability catalog | — |
| GET | /api/organization.environment | Get the shared (organization) env vars | — |
| POST | /api/organization.inviteMember | Invite a member | members.manage |
| GET | /api/organization.list | List the caller's organizations | — |
| GET | /api/organization.memberCapabilities | List a member's capabilities | members.manage |
| GET | /api/organization.myCapabilities | List the caller's capabilities | — |
| POST | /api/organization.saveEnvironment | Replace the shared env vars | settings.manage, secrets.write |
| POST | /api/organization.setMemberCapabilities | Set a member's capability overrides | members.manage |
| GET | /api/organization.settings | Get organization settings | — |
| POST | /api/organization.updateSettings | Update organization settings | settings.manage |
Published portsPublished Swarm portsport · 5
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/port.byApplication | List published ports of a service | — |
| POST | /api/port.create | Publish a port | service.write |
| POST | /api/port.delete | Unpublish a port | service.write |
| GET | /api/port.one | Get one published port | — |
| POST | /api/port.update | Update a published port | service.write |
PostgreSQLPostgreSQL database servicespostgres · 18
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/postgres.all | List PostgreSQL services in a project | — |
| POST | /api/postgres.create | Create a PostgreSQL service | service.create, secrets.write |
| POST | /api/postgres.createLogicalDatabase | Create an additional PostgreSQL database | service.write, secrets.write |
| POST | /api/postgres.deleteLogicalDatabase | Delete an additional PostgreSQL database | service.delete |
| POST | /api/postgres.duplicate | Duplicate a PostgreSQL service | service.write, secrets.write |
| GET | /api/postgres.engineVersions | List curated PostgreSQL versions | — |
| GET | /api/postgres.getConnectionUrl | Get the PostgreSQL connection URL | secrets.read |
| GET | /api/postgres.getStatus | Get PostgreSQL container status | — |
| GET | /api/postgres.listLogicalDatabases | List additional PostgreSQL databases | — |
| POST | /api/postgres.move | Move a PostgreSQL service to another environment | service.write |
| GET | /api/postgres.one | Get one PostgreSQL service | — |
| POST | /api/postgres.reload | Recreate the PostgreSQL container | service.runtime |
| POST | /api/postgres.remove | Delete a PostgreSQL service | service.delete |
| POST | /api/postgres.saveEnvironment | Replace the PostgreSQL service env vars | secrets.write |
| POST | /api/postgres.saveExternalPort | Publish the PostgreSQL service on a host port | service.write |
| POST | /api/postgres.start | Start a PostgreSQL service | service.deploy |
| POST | /api/postgres.stop | Stop a PostgreSQL service | service.runtime |
| POST | /api/postgres.update | Update a PostgreSQL service | service.write |
Preview deploymentsPull-request preview deploymentspreviewDeployment · 9
| Method | Path | Summary | Requires |
|---|---|---|---|
| POST | /api/previewDeployment.approve | Approve a fork preview | service.deploy |
| GET | /api/previewDeployment.byApplication | List an application's pull-request previews | — |
| POST | /api/previewDeployment.create | Create a preview deployment | service.deploy |
| GET | /api/previewDeployment.databaseTargets | Database services a parent may use for per-preview databases | — |
| POST | /api/previewDeployment.delete | Delete a preview deployment | service.deploy |
| POST | /api/previewDeployment.deny | Deny a fork preview | service.deploy |
| GET | /api/previewDeployment.list | List pull-request previews | — |
| GET | /api/previewDeployment.one | Get one preview deployment | — |
| POST | /api/previewDeployment.redeploy | Redeploy a preview | service.deploy |
ProjectsProjects and project-level environment variablesproject · 10
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/project.all | List projects | — |
| POST | /api/project.create | Create a project | project.write |
| POST | /api/project.delete | Delete a project | project.delete |
| GET | /api/project.getResolvedEnvironment | Preview the merged env of an environment | secrets.read |
| GET | /api/project.onboarding | Onboarding checklist state | — |
| GET | /api/project.one | Get one project | — |
| GET | /api/project.overview | Organization counters | — |
| POST | /api/project.saveEnvironment | Replace the project env vars | secrets.write |
| GET | /api/project.search | Search services by name | — |
| POST | /api/project.update | Update a project | project.write, secrets.write |
RedirectsTraefik redirect middlewaresredirect · 6
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/redirect.byApplication | List redirects of an application | — |
| GET | /api/redirect.byCompose | List redirects of a compose service | — |
| POST | /api/redirect.create | Create a redirect | service.write |
| POST | /api/redirect.delete | Delete a redirect | service.write |
| GET | /api/redirect.one | Get one redirect | — |
| POST | /api/redirect.update | Update a redirect | service.write |
RedisRedis database servicesredis · 18
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/redis.all | List Redis services in a project | — |
| POST | /api/redis.create | Create a Redis service | service.create, secrets.write |
| POST | /api/redis.createLogicalDatabase | Create an additional Redis database | service.write, secrets.write |
| POST | /api/redis.deleteLogicalDatabase | Delete an additional Redis database | service.delete |
| POST | /api/redis.duplicate | Duplicate a Redis service | service.write, secrets.write |
| GET | /api/redis.engineVersions | List curated Redis versions | — |
| GET | /api/redis.getConnectionUrl | Get the Redis connection URL | secrets.read |
| GET | /api/redis.getStatus | Get Redis container status | — |
| GET | /api/redis.listLogicalDatabases | List additional Redis databases | — |
| POST | /api/redis.move | Move a Redis service to another environment | service.write |
| GET | /api/redis.one | Get one Redis service | — |
| POST | /api/redis.reload | Recreate the Redis container | service.runtime |
| POST | /api/redis.remove | Delete a Redis service | service.delete |
| POST | /api/redis.saveEnvironment | Replace the Redis service env vars | secrets.write |
| POST | /api/redis.saveExternalPort | Publish the Redis service on a host port | service.write |
| POST | /api/redis.start | Start a Redis service | service.deploy |
| POST | /api/redis.stop | Stop a Redis service | service.runtime |
| POST | /api/redis.update | Update a Redis service | service.write |
RegistriesPrivate container registriesregistry · 6
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/registry.all | List private registries | — |
| POST | /api/registry.create | Add a private registry | registries.manage |
| GET | /api/registry.one | Get one registry | — |
| POST | /api/registry.remove | Delete a private registry | registries.manage |
| POST | /api/registry.test | Test a registry login | registries.manage, instance admin |
| POST | /api/registry.update | Update a private registry | registries.manage |
RollbacksStored rollback image pinsrollback · 3
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/rollback.all | List rollback points of an application | — |
| POST | /api/rollback.delete | Delete a rollback point | service.deploy |
| GET | /api/rollback.one | Get one rollback point | — |
SchedulesCron schedules for services, servers and the panelschedule · 10
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/schedule.all | List cron schedules | instance admin |
| GET | /api/schedule.byService | List schedules of one service | instance admin |
| POST | /api/schedule.create | Create a cron schedule | schedules.manage |
| POST | /api/schedule.disable | Disable a schedule | schedules.manage |
| POST | /api/schedule.enable | Enable a schedule | schedules.manage |
| GET | /api/schedule.one | Get one schedule | — |
| POST | /api/schedule.remove | Delete a schedule | schedules.manage |
| POST | /api/schedule.runManually | Run a schedule now | schedules.manage |
| POST | /api/schedule.runOnce | Run a command once from an image | schedules.manage, secrets.read |
| POST | /api/schedule.update | Update a schedule | schedules.manage |
Basic authHTTP basic-auth users guarding routessecurity · 6
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/security.byApplication | List basic-auth users of an application | — |
| GET | /api/security.byCompose | List basic-auth users of a compose service | — |
| POST | /api/security.create | Add a basic-auth user | service.write, secrets.write |
| POST | /api/security.delete | Remove a basic-auth user | service.write |
| GET | /api/security.one | Get one basic-auth user | — |
| POST | /api/security.update | Update a basic-auth user | service.write, secrets.write |
ServersRemote Docker Swarm serversserver · 10
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/server.all | List managed servers | — |
| POST | /api/server.create | Register a remote server | servers.manage, instance admin |
| GET | /api/server.getStats | Get server stats | — |
| GET | /api/server.getStatsBatch | Get stats for several servers | — |
| GET | /api/server.one | Get one managed server | — |
| POST | /api/server.remove | Remove a managed server | servers.manage |
| POST | /api/server.setup | Provision a server and join the Swarm | servers.manage, instance admin |
| POST | /api/server.testConnection | Test SSH reachability | servers.manage |
| GET | /api/server.transportState | Get SSH transport health | — |
| POST | /api/server.update | Update a managed server | servers.manage, instance admin |
Setup (public)First-boot setup and invitation preview (public)setup · 3
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/setup.authConfig | Get the public auth configuration | — |
| GET | /api/setup.invitationPreview | Preview an invitation | — |
| GET | /api/setup.needsSetup | Check whether first-boot setup is pending | — |
SSH keysSSH keys for git and server accesssshKey · 6
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/sshKey.all | List SSH keys | — |
| POST | /api/sshKey.create | Add an SSH key | ssh_keys.manage |
| POST | /api/sshKey.generate | Generate an SSH key pair | ssh_keys.manage |
| GET | /api/sshKey.one | Get one SSH key | — |
| POST | /api/sshKey.remove | Delete an SSH key | ssh_keys.manage |
| POST | /api/sshKey.update | Rename an SSH key | ssh_keys.manage |
Single sign-onOIDC and SAML identity providers, shown on the login pagesso · 8
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/sso.all | List SSO providers | — |
| POST | /api/sso.create | Add an SSO provider | — |
| POST | /api/sso.delete | Remove an SSO provider | — |
| GET | /api/sso.presets | List identity-provider presets | — |
| GET | /api/sso.redirectUri | Redirect URI for a provider id | — |
| GET | /api/sso.requirement | Read this organization's SSO requirement | — |
| POST | /api/sso.setRequirement | Require SSO for this organization | — |
| POST | /api/sso.update | Update an SSO provider | — |
TagsOrganization tags and service assignmentstag · 6
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/tag.all | List organization tags | — |
| POST | /api/tag.create | Create a tag | tags.manage |
| POST | /api/tag.delete | Delete a tag | tags.manage |
| GET | /api/tag.forServices | List tags of several services | — |
| POST | /api/tag.setServiceTags | Replace the tags of a service | tags.manage |
| POST | /api/tag.update | Rename or recolour a tag | tags.manage |
TeamsTeams: which projects a member may reach (members.manage)team · 8
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/team.all | List teams | members.manage |
| POST | /api/team.create | Create a team | members.manage |
| POST | /api/team.delete | Delete a team | members.manage |
| GET | /api/team.memberScopes | List members with their project scope | members.manage |
| POST | /api/team.setMembers | Replace a team's members | members.manage |
| POST | /api/team.setMemberScope | Set a member's project scope | members.manage |
| POST | /api/team.setProjects | Replace a team's projects | members.manage |
| POST | /api/team.update | Rename a team | members.manage |
TemplatesOne-click template catalogtemplate · 8
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/template.all | List the template catalog | — |
| POST | /api/template.deploy | Deploy a template | templates.deploy, secrets.write, domains.manage, instance admin |
| GET | /api/template.one | Get one template | — |
| POST | /api/template.sourcesCreate | Add a template source | — |
| POST | /api/template.sourcesDelete | Delete a template source | — |
| GET | /api/template.sourcesList | List template sources | — |
| POST | /api/template.sourcesSync | Sync a template source | — |
| POST | /api/template.sourcesUpdate | Update a template source | — |
Traefik entrypointsInstance-level Traefik entrypoints for TCP/UDP routing (instance admin; changing them restarts the proxy)traefik · 3
| Method | Path | Summary | Requires |
|---|---|---|---|
| POST | /api/traefik.createEntrypoint | Add a Traefik TCP/UDP entrypoint | instance admin |
| POST | /api/traefik.deleteEntrypoint | Remove a Traefik TCP/UDP entrypoint | instance admin |
| GET | /api/traefik.listEntrypoints | List Traefik TCP/UDP entrypoints | — |
UpdatesIn-app panel updates from GHCRupdates · 6
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/updates.banner | Get the update banner state | — |
| POST | /api/updates.check | Check for a panel update | instance admin |
| GET | /api/updates.getStatus | Get update status | instance admin |
| GET | /api/updates.preflight | Preflight an update | — |
| POST | /api/updates.runUpdate | Apply the panel update | instance admin |
| POST | /api/updates.updateSettings | Update the updater settings | instance admin |
External upstreamsOrigins outside the Swarm that Traefik fronts with the same domains and certificatesupstream · 6
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/upstream.all | List external upstreams | — |
| POST | /api/upstream.create | Create an external upstream | domains.manage |
| POST | /api/upstream.delete | Delete an external upstream | domains.manage |
| GET | /api/upstream.one | Get one external upstream | — |
| POST | /api/upstream.resync | Re-check and rewrite an external upstream's route | domains.manage |
| POST | /api/upstream.update | Update an external upstream | domains.manage |
Volume backupsNamed-volume backup schedulesvolumeBackup · 9
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/volumeBackup.all | List volume backup schedules | — |
| POST | /api/volumeBackup.create | Create a volume backup schedule | backups.manage |
| GET | /api/volumeBackup.listBackups | List stored volume archives | — |
| GET | /api/volumeBackup.one | Get one volume backup schedule | — |
| POST | /api/volumeBackup.remove | Delete a volume backup schedule | backups.manage |
| POST | /api/volumeBackup.restore | Restore a volume archive | backups.manage |
| POST | /api/volumeBackup.runManually | Run a volume backup now | backups.manage |
| GET | /api/volumeBackup.runs | List volume backup runs | — |
| POST | /api/volumeBackup.update | Update a volume backup schedule | backups.manage |
Volume filesBrowse, read, write and delete files inside a Docker volume (instance admin, docker.manage)volumeFiles · 5
| Method | Path | Summary | Requires |
|---|---|---|---|
| POST | /api/volumeFiles.delete | Delete a path in a Docker volume | docker.manage, instance admin |
| GET | /api/volumeFiles.list | List files in a Docker volume | docker.manage, instance admin |
| POST | /api/volumeFiles.mkdir | Create a directory in a Docker volume | docker.manage, instance admin |
| GET | /api/volumeFiles.read | Read a text file from a Docker volume | docker.manage, instance admin |
| POST | /api/volumeFiles.write | Write a text file into a Docker volume | docker.manage, instance admin |
Panel & platformPanel access domain, Traefik and host maintenancewebServer · 8
| Method | Path | Summary | Requires |
|---|---|---|---|
| GET | /api/webServer.acmeDnsProviders | List supported ACME DNS providers | instance admin |
| GET | /api/webServer.checkDashboardDomain | Check the dashboard domain | instance admin |
| GET | /api/webServer.dnsZones | List the zones at the linked DNS provider | instance admin |
| POST | /api/webServer.dockerCleanupNow | Run Docker cleanup now | instance admin |
| GET | /api/webServer.getSettings | Get panel and Traefik settings | instance admin |
| GET | /api/webServer.getTraefikConfig | Read the Traefik static config | instance admin |
| POST | /api/webServer.restartTraefik | Restart Traefik | instance admin |
| POST | /api/webServer.updateSettings | Update panel and Traefik settings | instance admin |
Repository guide: docs/api.md · All docs
