Skip to content
All docs

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
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
curl
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

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>

CLI guide · MCP for agents

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
Deploy Copilot endpoints
MethodPathSummaryRequires
POST/api/ai.applySuggestedPatchApply a suggested env patchai.use, secrets.write, service.deploy
POST/api/ai.chatChat with the Copilot about a service—
POST/api/ai.explainDeploymentExplain a failed deployment—
POST/api/ai.generateComposeGenerate a compose fileai.use
GET/api/ai.getExplanationGet a stored explanation—
GET/api/ai.getSettingsGet Copilot settings—
POST/api/ai.updateSettingsUpdate Copilot settings—
ApplicationsApplications: CRUD, source, build, deploy and Swarm runtimeapplication · 19
Applications endpoints
MethodPathSummaryRequires
GET/api/application.allList applications in a project—
POST/api/application.cancelDeploymentCancel a deploymentservice.deploy
POST/api/application.createCreate an applicationproject.write, service.create
POST/api/application.deleteDelete an applicationservice.delete
POST/api/application.deployQueue a build and rolloutservice.deploy
POST/api/application.duplicateDuplicate an applicationservice.write, secrets.write
POST/api/application.killBuildKill the running buildservice.deploy
POST/api/application.moveMove an application to another environmentservice.write
GET/api/application.oneGet one application—
POST/api/application.redeployRe-roll the current buildservice.deploy
POST/api/application.redeployFromDeploymentRebuild the commit a past deployment builtservice.deploy
POST/api/application.reloadRestart an applicationservice.runtime
POST/api/application.rollbackRoll back to a stored image pinservice.deploy
POST/api/application.saveBuildTypeChoose the builderservice.write
POST/api/application.saveEnvironmentReplace the application env varssecrets.write
POST/api/application.saveSourceSet the application sourceservice.write, secrets.write
POST/api/application.startStart an applicationservice.runtime
POST/api/application.stopStop an applicationservice.runtime
POST/api/application.updateUpdate application settingsservice.write, secrets.write
Audit logOrganization audit trailaudit · 3
Audit log endpoints
MethodPathSummaryRequires
GET/api/audit.allList audit eventsaudit.read
GET/api/audit.exportExport the audit trail as CSVaudit.read
GET/api/audit.facetsList audit filter facetsaudit.read
Database backupsDatabase backup schedules, runs, restore and verificationbackup · 10
Database backups endpoints
MethodPathSummaryRequires
GET/api/backup.allList backup schedules—
POST/api/backup.createCreate a backup schedulebackups.manage, instance admin
GET/api/backup.listBackupsList stored dumps—
GET/api/backup.oneGet one backup schedule—
POST/api/backup.removeDelete a backup schedulebackups.manage, instance admin
POST/api/backup.restoreRestore a dumpbackups.manage
POST/api/backup.runManuallyRun a backup nowbackups.manage, instance admin
GET/api/backup.runsList backup runs—
POST/api/backup.updateUpdate a backup schedulebackups.manage, instance admin
POST/api/backup.verifyVerify a dumpbackups.manage, instance admin
BitbucketBitbucket connections, repositories and branchesbitbucket · 9
Bitbucket endpoints
MethodPathSummaryRequires
GET/api/bitbucket.allList connected Bitbucket providers—
POST/api/bitbucket.createConnect a Bitbucket providergit_providers.manage
GET/api/bitbucket.listBranchesList branches of a Bitbucket repositoryservice.create
GET/api/bitbucket.listRepositoriesList repositories visible to a Bitbucket connectionservice.create
GET/api/bitbucket.oneGet one Bitbucket connection—
POST/api/bitbucket.removeDelete a Bitbucket connectiongit_providers.manage
GET/api/bitbucket.revealWebhookSecretReveal a Bitbucket webhook secretgit_providers.manage
POST/api/bitbucket.testConnectionTest a Bitbucket connectiongit_providers.manage
POST/api/bitbucket.updateUpdate a Bitbucket connectiongit_providers.manage
WhitelabelInstance and organization whitelabel: name, logo, accent and assetsbranding · 4
Whitelabel endpoints
MethodPathSummaryRequires
POST/api/branding.clearAssetRemove an uploaded branding asset—
GET/api/branding.publicRead the instance branding—
GET/api/branding.settingsRead the branding settings—
POST/api/branding.updateUpdate the instance branding—
CertificatesCustom TLS certificatescertificate · 5
Certificates endpoints
MethodPathSummaryRequires
GET/api/certificate.allList custom TLS certificates—
POST/api/certificate.createUpload a custom certificatecertificates.manage, instance admin
POST/api/certificate.deleteDelete a custom certificatecertificates.manage, instance admin
GET/api/certificate.oneGet one custom certificate—
POST/api/certificate.updateReplace a custom certificatecertificates.manage, instance admin
Compose & stacksCompose and Swarm-stack servicescompose · 19
Compose & stacks endpoints
MethodPathSummaryRequires
GET/api/compose.allList compose services in a project—
GET/api/compose.containersList running containers of a stack—
POST/api/compose.createCreate a compose serviceservice.create
POST/api/compose.createFromUrlCreate a compose service from a URLservice.create
POST/api/compose.deleteDelete a compose serviceservice.delete
POST/api/compose.deployDeploy a compose stackservice.deploy
POST/api/compose.duplicateDuplicate a compose serviceservice.write, secrets.write
GET/api/compose.exportTemplateExport a compose service as a templatesecrets.read
GET/api/compose.loadServicesList service names in the compose file—
POST/api/compose.moveMove a compose service to another environmentservice.write
GET/api/compose.oneGet one compose service—
POST/api/compose.redeployRedeploy a compose stackservice.deploy
POST/api/compose.rollbackRoll a compose stack back to a snapshotservice.deploy, secrets.write
GET/api/compose.rollbackTargetsList compose rollback points—
POST/api/compose.saveComposeFileReplace the compose fileservice.write, instance admin
POST/api/compose.saveEnvironmentReplace the compose service env varssecrets.write
POST/api/compose.startStart a compose stackservice.runtime
POST/api/compose.stopStop a compose stackservice.runtime
POST/api/compose.updateUpdate a compose serviceservice.write, instance admin
DeploymentsDeployment history and build logsdeployment · 8
Deployments endpoints
MethodPathSummaryRequires
GET/api/deployment.byApplicationList deployments of an application—
GET/api/deployment.byComposeList deployments of a compose service—
GET/api/deployment.byProjectList deployments of a project—
GET/api/deployment.dailyDaily deployment counts—
GET/api/deployment.getLogsRead a deployment log—
GET/api/deployment.recentList recent deployments—
GET/api/deployment.statsByProjectDeployment statistics for a project—
GET/api/deployment.waitWait for a deployment and read its outcome—
Backup destinationsBackup storage destinations (S3-compatible or local disk)destination · 6
Backup destinations endpoints
MethodPathSummaryRequires
GET/api/destination.allList backup destinations—
POST/api/destination.createCreate a backup destinationdestinations.manage, instance admin
GET/api/destination.oneGet one backup destination—
POST/api/destination.removeDelete a backup destinationdestinations.manage
POST/api/destination.testConnectionTest a backup destinationdestinations.manage
POST/api/destination.updateUpdate a backup destinationdestinations.manage
Docker control centerDocker control centre: containers, images, networks, volumes, Swarmdocker · 16
Docker control center endpoints
MethodPathSummaryRequires
POST/api/docker.containerActionStart, stop, restart or remove a containerdocker.manage
GET/api/docker.containersList containersdocker.manage
POST/api/docker.imagePullPull an imagedocker.manage
POST/api/docker.imageRemoveRemove an imagedocker.manage
GET/api/docker.imagesList imagesdocker.manage
POST/api/docker.imagesPrunePrune dangling imagesdocker.manage
POST/api/docker.networkRemoveRemove a Docker networkdocker.manage
GET/api/docker.networksList Docker networksdocker.manage
GET/api/docker.nodesList Swarm nodesdocker.manage, instance admin
POST/api/docker.nodeUpdateUpdate a Swarm nodedocker.manage, instance admin
GET/api/docker.swarmServicesList Swarm servicesdocker.manage, instance admin
GET/api/docker.systemInfoGet Docker system infodocker.manage
POST/api/docker.systemPrunePrune the Docker systemdocker.manage, instance admin
POST/api/docker.volumeRemoveRemove a Docker volumedocker.manage
GET/api/docker.volumesList Docker volumesdocker.manage
POST/api/docker.volumesPrunePrune unused volumesdocker.manage
DomainsTraefik domains, TLS and middleware chainsdomain · 14
Domains endpoints
MethodPathSummaryRequires
GET/api/domain.allList domains—
GET/api/domain.byApplicationList domains of an application—
GET/api/domain.byComposeList domains of a compose service—
GET/api/domain.checkDnsCheck a host's DNS—
POST/api/domain.createAttach a domaindomains.manage
POST/api/domain.deleteDelete a domaindomains.manage
GET/api/domain.diagnoseDiagnose a domain's routeservice.runtime
POST/api/domain.ensureDnsRecordCreate the domain's DNS recorddomains.manage
GET/api/domain.generateDomainGenerate a free traefik.me host—
GET/api/domain.middlewaresList the middleware chain of a domain—
GET/api/domain.oneGet one domain—
POST/api/domain.saveMiddlewaresReplace the middleware chain of a domaindomains.manage
POST/api/domain.updateUpdate a domaindomains.manage
GET/api/domain.validateHostCheck whether a host is available—
EnvironmentsProject environmentsenvironment · 7
Environments endpoints
MethodPathSummaryRequires
GET/api/environment.byProjectList environments of a project—
POST/api/environment.cloneClone an environment with its servicesproject.write, secrets.write
POST/api/environment.createCreate an environmentproject.write, secrets.write
POST/api/environment.deleteDelete an environmentproject.delete
POST/api/environment.duplicateDuplicate an environmentproject.write, secrets.write
POST/api/environment.saveEnvironmentReplace the environment env varssecrets.write
POST/api/environment.updateUpdate an environmentproject.write, secrets.write
GiteaGitea connections, repositories and branchesgitea · 9
Gitea endpoints
MethodPathSummaryRequires
GET/api/gitea.allList connected Gitea providers—
POST/api/gitea.createConnect a Gitea providergit_providers.manage
GET/api/gitea.listBranchesList branches of a Gitea repositoryservice.create
GET/api/gitea.listRepositoriesList repositories visible to a Gitea connectionservice.create
GET/api/gitea.oneGet one Gitea connection—
POST/api/gitea.removeDelete a Gitea connectiongit_providers.manage
GET/api/gitea.revealWebhookSecretReveal a Gitea webhook secretgit_providers.manage
POST/api/gitea.testConnectionTest a Gitea connectiongit_providers.manage
POST/api/gitea.updateUpdate a Gitea connectiongit_providers.manage
GitHubGitHub App connections, repositories and branchesgithub · 9
GitHub endpoints
MethodPathSummaryRequires
GET/api/github.allList connected GitHub providers—
POST/api/github.createConnect a GitHub providergit_providers.manage
POST/api/github.createAppManifestStart the GitHub App manifest flowgit_providers.manage
GET/api/github.listBranchesList branches of a GitHub repositoryservice.create
GET/api/github.listRepositoriesList repositories visible to a GitHub connectionservice.create
GET/api/github.oneGet one GitHub connection—
POST/api/github.removeDelete a GitHub connectiongit_providers.manage
POST/api/github.syncInstallationSync a GitHub App installationgit_providers.manage
POST/api/github.updateUpdate a GitHub connectiongit_providers.manage
GitLabGitLab connections, repositories and branchesgitlab · 8
GitLab endpoints
MethodPathSummaryRequires
GET/api/gitlab.allList connected GitLab providers—
POST/api/gitlab.createConnect a GitLab providergit_providers.manage
GET/api/gitlab.listBranchesList branches of a GitLab repositoryservice.create
GET/api/gitlab.listRepositoriesList repositories visible to a GitLab connectionservice.create
GET/api/gitlab.oneGet one GitLab connection—
POST/api/gitlab.removeDelete a GitLab connectiongit_providers.manage
POST/api/gitlab.testConnectionTest a GitLab connectiongit_providers.manage
POST/api/gitlab.updateUpdate a GitLab connectiongit_providers.manage
GitOpsDesired-state export, plan and apply for `nixploy.yaml`gitops · 7
GitOps endpoints
MethodPathSummaryRequires
POST/api/gitops.applySecretsWrite a sealed secrets bundle onto an environmentgitops.manage, secrets.write
POST/api/gitops.exportSecretsSeal an environment's env values with a passphrasegitops.manage, secrets.read
GET/api/gitops.exportStackExport an environment as nixploy.yamlgitops.manage
POST/api/gitops.planPlan a nixploy.yaml applygitops.manage
POST/api/gitops.runApplyApply a nixploy.yamlgitops.manage
POST/api/gitops.syncFromGitApply a nixploy.yaml sent in the request bodygitops.manage
POST/api/gitops.syncFromUrlApply a nixploy.yaml fetched from an https URLgitops.manage
Import from another panelRead projects and services from another panel's API and map them hereimport · 3
Import from another panel endpoints
MethodPathSummaryRequires
POST/api/import.inspectList what a source panel's API key can seegitops.manage
POST/api/import.planTranslate one source environment and diff it against the targetgitops.manage
POST/api/import.runApplyImport one source environment: rows, then env values, no deploygitops.manage, secrets.write
MariaDBMariaDB database servicesmariadb · 18
MariaDB endpoints
MethodPathSummaryRequires
GET/api/mariadb.allList MariaDB services in a project—
POST/api/mariadb.createCreate a MariaDB serviceservice.create, secrets.write
POST/api/mariadb.createLogicalDatabaseCreate an additional MariaDB databaseservice.write, secrets.write
POST/api/mariadb.deleteLogicalDatabaseDelete an additional MariaDB databaseservice.delete
POST/api/mariadb.duplicateDuplicate a MariaDB serviceservice.write, secrets.write
GET/api/mariadb.engineVersionsList curated MariaDB versions—
GET/api/mariadb.getConnectionUrlGet the MariaDB connection URLsecrets.read
GET/api/mariadb.getStatusGet MariaDB container status—
GET/api/mariadb.listLogicalDatabasesList additional MariaDB databases—
POST/api/mariadb.moveMove a MariaDB service to another environmentservice.write
GET/api/mariadb.oneGet one MariaDB service—
POST/api/mariadb.reloadRecreate the MariaDB containerservice.runtime
POST/api/mariadb.removeDelete a MariaDB serviceservice.delete
POST/api/mariadb.saveEnvironmentReplace the MariaDB service env varssecrets.write
POST/api/mariadb.saveExternalPortPublish the MariaDB service on a host portservice.write
POST/api/mariadb.startStart a MariaDB serviceservice.deploy
POST/api/mariadb.stopStop a MariaDB serviceservice.runtime
POST/api/mariadb.updateUpdate a MariaDB serviceservice.write
MongoDBMongoDB database servicesmongo · 18
MongoDB endpoints
MethodPathSummaryRequires
GET/api/mongo.allList MongoDB services in a project—
POST/api/mongo.createCreate a MongoDB serviceservice.create, secrets.write
POST/api/mongo.createLogicalDatabaseCreate an additional MongoDB databaseservice.write, secrets.write
POST/api/mongo.deleteLogicalDatabaseDelete an additional MongoDB databaseservice.delete
POST/api/mongo.duplicateDuplicate a MongoDB serviceservice.write, secrets.write
GET/api/mongo.engineVersionsList curated MongoDB versions—
GET/api/mongo.getConnectionUrlGet the MongoDB connection URLsecrets.read
GET/api/mongo.getStatusGet MongoDB container status—
GET/api/mongo.listLogicalDatabasesList additional MongoDB databases—
POST/api/mongo.moveMove a MongoDB service to another environmentservice.write
GET/api/mongo.oneGet one MongoDB service—
POST/api/mongo.reloadRecreate the MongoDB containerservice.runtime
POST/api/mongo.removeDelete a MongoDB serviceservice.delete
POST/api/mongo.saveEnvironmentReplace the MongoDB service env varssecrets.write
POST/api/mongo.saveExternalPortPublish the MongoDB service on a host portservice.write
POST/api/mongo.startStart a MongoDB serviceservice.deploy
POST/api/mongo.stopStop a MongoDB serviceservice.runtime
POST/api/mongo.updateUpdate a MongoDB serviceservice.write
MonitoringLive and historical metrics, fleet overviewmonitoring · 5
Monitoring endpoints
MethodPathSummaryRequires
GET/api/monitoring.fleetOverviewList every service with its latest metrics—
GET/api/monitoring.historyGet sampled service metrics—
GET/api/monitoring.replicaStatsGet live per-replica stats—
GET/api/monitoring.serverHistoryGet sampled server metrics—
GET/api/monitoring.serverStatsGet host statsinstance admin
MountsService mounts (bind, volume, file)mount · 6
Mounts endpoints
MethodPathSummaryRequires
GET/api/mount.byApplicationList mounts of an application—
GET/api/mount.byComposeList mounts of a compose stack—
POST/api/mount.createCreate a mountservice.write, secrets.write, instance admin
POST/api/mount.deleteDelete a mountservice.write
GET/api/mount.oneGet one mount—
POST/api/mount.updateUpdate a mountservice.write, secrets.write, instance admin
MySQLMySQL database servicesmysql · 18
MySQL endpoints
MethodPathSummaryRequires
GET/api/mysql.allList MySQL services in a project—
POST/api/mysql.createCreate a MySQL serviceservice.create, secrets.write
POST/api/mysql.createLogicalDatabaseCreate an additional MySQL databaseservice.write, secrets.write
POST/api/mysql.deleteLogicalDatabaseDelete an additional MySQL databaseservice.delete
POST/api/mysql.duplicateDuplicate a MySQL serviceservice.write, secrets.write
GET/api/mysql.engineVersionsList curated MySQL versions—
GET/api/mysql.getConnectionUrlGet the MySQL connection URLsecrets.read
GET/api/mysql.getStatusGet MySQL container status—
GET/api/mysql.listLogicalDatabasesList additional MySQL databases—
POST/api/mysql.moveMove a MySQL service to another environmentservice.write
GET/api/mysql.oneGet one MySQL service—
POST/api/mysql.reloadRecreate the MySQL containerservice.runtime
POST/api/mysql.removeDelete a MySQL serviceservice.delete
POST/api/mysql.saveEnvironmentReplace the MySQL service env varssecrets.write
POST/api/mysql.saveExternalPortPublish the MySQL service on a host portservice.write
POST/api/mysql.startStart a MySQL serviceservice.deploy
POST/api/mysql.stopStop a MySQL serviceservice.runtime
POST/api/mysql.updateUpdate a MySQL serviceservice.write
NotificationsNotification channelsnotification · 6
Notifications endpoints
MethodPathSummaryRequires
GET/api/notification.allList notification channels—
POST/api/notification.createCreate a notification channelnotifications.manage
GET/api/notification.oneGet one notification channel—
POST/api/notification.removeDelete a notification channelnotifications.manage
POST/api/notification.testSend a test notificationnotifications.manage
POST/api/notification.updateUpdate a notification channelnotifications.manage
Incidents & uptimeIncidents, alert rules, uptime probes, log searchobservability · 17
Incidents & uptime endpoints
MethodPathSummaryRequires
POST/api/observability.acknowledgeIncidentAcknowledge an incidentproject.write
GET/api/observability.alertRulesList alert rules of a service—
POST/api/observability.applyRemediationApply a proposed remediationservice.deploy, secrets.write
POST/api/observability.deleteAlertRuleDelete an alert ruleproject.write
POST/api/observability.disableStatusPageUnpublish the status pagesettings.manage
POST/api/observability.dismissRemediationDismiss a proposed remediationproject.write
POST/api/observability.enableStatusPagePublish a public status pagesettings.manage
GET/api/observability.incidentsList incidents—
POST/api/observability.resolveIncidentResolve an incidentproject.write
POST/api/observability.rotateStatusPageTokenRotate the status page tokensettings.manage
GET/api/observability.runtimeLogsSearch runtime log historyservice.runtime
GET/api/observability.searchLogsSearch persisted service logs—
GET/api/observability.serviceEventsList a service's event timeline—
POST/api/observability.setUptimeProbeConfigure an uptime probeproject.write
GET/api/observability.statusPageGet the public status page settings—
POST/api/observability.upsertAlertRuleCreate or update an alert ruleproject.write
GET/api/observability.uptimeProbesList uptime probes—
OrganizationOrganization settings, members, capabilities and shared envorganization · 10
Organization endpoints
MethodPathSummaryRequires
GET/api/organization.capabilityCatalogList the capability catalog—
GET/api/organization.environmentGet the shared (organization) env vars—
POST/api/organization.inviteMemberInvite a membermembers.manage
GET/api/organization.listList the caller's organizations—
GET/api/organization.memberCapabilitiesList a member's capabilitiesmembers.manage
GET/api/organization.myCapabilitiesList the caller's capabilities—
POST/api/organization.saveEnvironmentReplace the shared env varssettings.manage, secrets.write
POST/api/organization.setMemberCapabilitiesSet a member's capability overridesmembers.manage
GET/api/organization.settingsGet organization settings—
POST/api/organization.updateSettingsUpdate organization settingssettings.manage
Published portsPublished Swarm portsport · 5
Published ports endpoints
MethodPathSummaryRequires
GET/api/port.byApplicationList published ports of a service—
POST/api/port.createPublish a portservice.write
POST/api/port.deleteUnpublish a portservice.write
GET/api/port.oneGet one published port—
POST/api/port.updateUpdate a published portservice.write
PostgreSQLPostgreSQL database servicespostgres · 18
PostgreSQL endpoints
MethodPathSummaryRequires
GET/api/postgres.allList PostgreSQL services in a project—
POST/api/postgres.createCreate a PostgreSQL serviceservice.create, secrets.write
POST/api/postgres.createLogicalDatabaseCreate an additional PostgreSQL databaseservice.write, secrets.write
POST/api/postgres.deleteLogicalDatabaseDelete an additional PostgreSQL databaseservice.delete
POST/api/postgres.duplicateDuplicate a PostgreSQL serviceservice.write, secrets.write
GET/api/postgres.engineVersionsList curated PostgreSQL versions—
GET/api/postgres.getConnectionUrlGet the PostgreSQL connection URLsecrets.read
GET/api/postgres.getStatusGet PostgreSQL container status—
GET/api/postgres.listLogicalDatabasesList additional PostgreSQL databases—
POST/api/postgres.moveMove a PostgreSQL service to another environmentservice.write
GET/api/postgres.oneGet one PostgreSQL service—
POST/api/postgres.reloadRecreate the PostgreSQL containerservice.runtime
POST/api/postgres.removeDelete a PostgreSQL serviceservice.delete
POST/api/postgres.saveEnvironmentReplace the PostgreSQL service env varssecrets.write
POST/api/postgres.saveExternalPortPublish the PostgreSQL service on a host portservice.write
POST/api/postgres.startStart a PostgreSQL serviceservice.deploy
POST/api/postgres.stopStop a PostgreSQL serviceservice.runtime
POST/api/postgres.updateUpdate a PostgreSQL serviceservice.write
Preview deploymentsPull-request preview deploymentspreviewDeployment · 9
Preview deployments endpoints
MethodPathSummaryRequires
POST/api/previewDeployment.approveApprove a fork previewservice.deploy
GET/api/previewDeployment.byApplicationList an application's pull-request previews—
POST/api/previewDeployment.createCreate a preview deploymentservice.deploy
GET/api/previewDeployment.databaseTargetsDatabase services a parent may use for per-preview databases—
POST/api/previewDeployment.deleteDelete a preview deploymentservice.deploy
POST/api/previewDeployment.denyDeny a fork previewservice.deploy
GET/api/previewDeployment.listList pull-request previews—
GET/api/previewDeployment.oneGet one preview deployment—
POST/api/previewDeployment.redeployRedeploy a previewservice.deploy
ProjectsProjects and project-level environment variablesproject · 10
Projects endpoints
MethodPathSummaryRequires
GET/api/project.allList projects—
POST/api/project.createCreate a projectproject.write
POST/api/project.deleteDelete a projectproject.delete
GET/api/project.getResolvedEnvironmentPreview the merged env of an environmentsecrets.read
GET/api/project.onboardingOnboarding checklist state—
GET/api/project.oneGet one project—
GET/api/project.overviewOrganization counters—
POST/api/project.saveEnvironmentReplace the project env varssecrets.write
GET/api/project.searchSearch services by name—
POST/api/project.updateUpdate a projectproject.write, secrets.write
RedirectsTraefik redirect middlewaresredirect · 6
Redirects endpoints
MethodPathSummaryRequires
GET/api/redirect.byApplicationList redirects of an application—
GET/api/redirect.byComposeList redirects of a compose service—
POST/api/redirect.createCreate a redirectservice.write
POST/api/redirect.deleteDelete a redirectservice.write
GET/api/redirect.oneGet one redirect—
POST/api/redirect.updateUpdate a redirectservice.write
RedisRedis database servicesredis · 18
Redis endpoints
MethodPathSummaryRequires
GET/api/redis.allList Redis services in a project—
POST/api/redis.createCreate a Redis serviceservice.create, secrets.write
POST/api/redis.createLogicalDatabaseCreate an additional Redis databaseservice.write, secrets.write
POST/api/redis.deleteLogicalDatabaseDelete an additional Redis databaseservice.delete
POST/api/redis.duplicateDuplicate a Redis serviceservice.write, secrets.write
GET/api/redis.engineVersionsList curated Redis versions—
GET/api/redis.getConnectionUrlGet the Redis connection URLsecrets.read
GET/api/redis.getStatusGet Redis container status—
GET/api/redis.listLogicalDatabasesList additional Redis databases—
POST/api/redis.moveMove a Redis service to another environmentservice.write
GET/api/redis.oneGet one Redis service—
POST/api/redis.reloadRecreate the Redis containerservice.runtime
POST/api/redis.removeDelete a Redis serviceservice.delete
POST/api/redis.saveEnvironmentReplace the Redis service env varssecrets.write
POST/api/redis.saveExternalPortPublish the Redis service on a host portservice.write
POST/api/redis.startStart a Redis serviceservice.deploy
POST/api/redis.stopStop a Redis serviceservice.runtime
POST/api/redis.updateUpdate a Redis serviceservice.write
RegistriesPrivate container registriesregistry · 6
Registries endpoints
MethodPathSummaryRequires
GET/api/registry.allList private registries—
POST/api/registry.createAdd a private registryregistries.manage
GET/api/registry.oneGet one registry—
POST/api/registry.removeDelete a private registryregistries.manage
POST/api/registry.testTest a registry loginregistries.manage, instance admin
POST/api/registry.updateUpdate a private registryregistries.manage
RollbacksStored rollback image pinsrollback · 3
Rollbacks endpoints
MethodPathSummaryRequires
GET/api/rollback.allList rollback points of an application—
POST/api/rollback.deleteDelete a rollback pointservice.deploy
GET/api/rollback.oneGet one rollback point—
SchedulesCron schedules for services, servers and the panelschedule · 10
Schedules endpoints
MethodPathSummaryRequires
GET/api/schedule.allList cron schedulesinstance admin
GET/api/schedule.byServiceList schedules of one serviceinstance admin
POST/api/schedule.createCreate a cron scheduleschedules.manage
POST/api/schedule.disableDisable a scheduleschedules.manage
POST/api/schedule.enableEnable a scheduleschedules.manage
GET/api/schedule.oneGet one schedule—
POST/api/schedule.removeDelete a scheduleschedules.manage
POST/api/schedule.runManuallyRun a schedule nowschedules.manage
POST/api/schedule.runOnceRun a command once from an imageschedules.manage, secrets.read
POST/api/schedule.updateUpdate a scheduleschedules.manage
Basic authHTTP basic-auth users guarding routessecurity · 6
Basic auth endpoints
MethodPathSummaryRequires
GET/api/security.byApplicationList basic-auth users of an application—
GET/api/security.byComposeList basic-auth users of a compose service—
POST/api/security.createAdd a basic-auth userservice.write, secrets.write
POST/api/security.deleteRemove a basic-auth userservice.write
GET/api/security.oneGet one basic-auth user—
POST/api/security.updateUpdate a basic-auth userservice.write, secrets.write
ServersRemote Docker Swarm serversserver · 10
Servers endpoints
MethodPathSummaryRequires
GET/api/server.allList managed servers—
POST/api/server.createRegister a remote serverservers.manage, instance admin
GET/api/server.getStatsGet server stats—
GET/api/server.getStatsBatchGet stats for several servers—
GET/api/server.oneGet one managed server—
POST/api/server.removeRemove a managed serverservers.manage
POST/api/server.setupProvision a server and join the Swarmservers.manage, instance admin
POST/api/server.testConnectionTest SSH reachabilityservers.manage
GET/api/server.transportStateGet SSH transport health—
POST/api/server.updateUpdate a managed serverservers.manage, instance admin
Setup (public)First-boot setup and invitation preview (public)setup · 3
Setup (public) endpoints
MethodPathSummaryRequires
GET/api/setup.authConfigGet the public auth configuration—
GET/api/setup.invitationPreviewPreview an invitation—
GET/api/setup.needsSetupCheck whether first-boot setup is pending—
SSH keysSSH keys for git and server accesssshKey · 6
SSH keys endpoints
MethodPathSummaryRequires
GET/api/sshKey.allList SSH keys—
POST/api/sshKey.createAdd an SSH keyssh_keys.manage
POST/api/sshKey.generateGenerate an SSH key pairssh_keys.manage
GET/api/sshKey.oneGet one SSH key—
POST/api/sshKey.removeDelete an SSH keyssh_keys.manage
POST/api/sshKey.updateRename an SSH keyssh_keys.manage
Single sign-onOIDC and SAML identity providers, shown on the login pagesso · 8
Single sign-on endpoints
MethodPathSummaryRequires
GET/api/sso.allList SSO providers—
POST/api/sso.createAdd an SSO provider—
POST/api/sso.deleteRemove an SSO provider—
GET/api/sso.presetsList identity-provider presets—
GET/api/sso.redirectUriRedirect URI for a provider id—
GET/api/sso.requirementRead this organization's SSO requirement—
POST/api/sso.setRequirementRequire SSO for this organization—
POST/api/sso.updateUpdate an SSO provider—
TagsOrganization tags and service assignmentstag · 6
Tags endpoints
MethodPathSummaryRequires
GET/api/tag.allList organization tags—
POST/api/tag.createCreate a tagtags.manage
POST/api/tag.deleteDelete a tagtags.manage
GET/api/tag.forServicesList tags of several services—
POST/api/tag.setServiceTagsReplace the tags of a servicetags.manage
POST/api/tag.updateRename or recolour a tagtags.manage
TeamsTeams: which projects a member may reach (members.manage)team · 8
Teams endpoints
MethodPathSummaryRequires
GET/api/team.allList teamsmembers.manage
POST/api/team.createCreate a teammembers.manage
POST/api/team.deleteDelete a teammembers.manage
GET/api/team.memberScopesList members with their project scopemembers.manage
POST/api/team.setMembersReplace a team's membersmembers.manage
POST/api/team.setMemberScopeSet a member's project scopemembers.manage
POST/api/team.setProjectsReplace a team's projectsmembers.manage
POST/api/team.updateRename a teammembers.manage
TemplatesOne-click template catalogtemplate · 8
Templates endpoints
MethodPathSummaryRequires
GET/api/template.allList the template catalog—
POST/api/template.deployDeploy a templatetemplates.deploy, secrets.write, domains.manage, instance admin
GET/api/template.oneGet one template—
POST/api/template.sourcesCreateAdd a template source—
POST/api/template.sourcesDeleteDelete a template source—
GET/api/template.sourcesListList template sources—
POST/api/template.sourcesSyncSync a template source—
POST/api/template.sourcesUpdateUpdate a template source—
Traefik entrypointsInstance-level Traefik entrypoints for TCP/UDP routing (instance admin; changing them restarts the proxy)traefik · 3
Traefik entrypoints endpoints
MethodPathSummaryRequires
POST/api/traefik.createEntrypointAdd a Traefik TCP/UDP entrypointinstance admin
POST/api/traefik.deleteEntrypointRemove a Traefik TCP/UDP entrypointinstance admin
GET/api/traefik.listEntrypointsList Traefik TCP/UDP entrypoints—
UpdatesIn-app panel updates from GHCRupdates · 6
Updates endpoints
MethodPathSummaryRequires
GET/api/updates.bannerGet the update banner state—
POST/api/updates.checkCheck for a panel updateinstance admin
GET/api/updates.getStatusGet update statusinstance admin
GET/api/updates.preflightPreflight an update—
POST/api/updates.runUpdateApply the panel updateinstance admin
POST/api/updates.updateSettingsUpdate the updater settingsinstance admin
External upstreamsOrigins outside the Swarm that Traefik fronts with the same domains and certificatesupstream · 6
External upstreams endpoints
MethodPathSummaryRequires
GET/api/upstream.allList external upstreams—
POST/api/upstream.createCreate an external upstreamdomains.manage
POST/api/upstream.deleteDelete an external upstreamdomains.manage
GET/api/upstream.oneGet one external upstream—
POST/api/upstream.resyncRe-check and rewrite an external upstream's routedomains.manage
POST/api/upstream.updateUpdate an external upstreamdomains.manage
Volume backupsNamed-volume backup schedulesvolumeBackup · 9
Volume backups endpoints
MethodPathSummaryRequires
GET/api/volumeBackup.allList volume backup schedules—
POST/api/volumeBackup.createCreate a volume backup schedulebackups.manage
GET/api/volumeBackup.listBackupsList stored volume archives—
GET/api/volumeBackup.oneGet one volume backup schedule—
POST/api/volumeBackup.removeDelete a volume backup schedulebackups.manage
POST/api/volumeBackup.restoreRestore a volume archivebackups.manage
POST/api/volumeBackup.runManuallyRun a volume backup nowbackups.manage
GET/api/volumeBackup.runsList volume backup runs—
POST/api/volumeBackup.updateUpdate a volume backup schedulebackups.manage
Volume filesBrowse, read, write and delete files inside a Docker volume (instance admin, docker.manage)volumeFiles · 5
Volume files endpoints
MethodPathSummaryRequires
POST/api/volumeFiles.deleteDelete a path in a Docker volumedocker.manage, instance admin
GET/api/volumeFiles.listList files in a Docker volumedocker.manage, instance admin
POST/api/volumeFiles.mkdirCreate a directory in a Docker volumedocker.manage, instance admin
GET/api/volumeFiles.readRead a text file from a Docker volumedocker.manage, instance admin
POST/api/volumeFiles.writeWrite a text file into a Docker volumedocker.manage, instance admin
Panel & platformPanel access domain, Traefik and host maintenancewebServer · 8
Panel & platform endpoints
MethodPathSummaryRequires
GET/api/webServer.acmeDnsProvidersList supported ACME DNS providersinstance admin
GET/api/webServer.checkDashboardDomainCheck the dashboard domaininstance admin
GET/api/webServer.dnsZonesList the zones at the linked DNS providerinstance admin
POST/api/webServer.dockerCleanupNowRun Docker cleanup nowinstance admin
GET/api/webServer.getSettingsGet panel and Traefik settingsinstance admin
GET/api/webServer.getTraefikConfigRead the Traefik static configinstance admin
POST/api/webServer.restartTraefikRestart Traefikinstance admin
POST/api/webServer.updateSettingsUpdate panel and Traefik settingsinstance admin

Repository guide: docs/api.md · All docs

Rent the box. Keep the rest.

One command, three services, and the first account is yours.