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: nxlp_...

URL conventions

  • Queries → GET /api/<router>.<procedure>
  • Mutations → POST /api/<router>.<procedure>
  • Nested input → URL-encoded JSON ?input=... on GET
  • No /api/v1 prefix
# List projects
curl -sS -H "x-api-key: $NIXPLOY_API_KEY" \
  "https://panel.example.com/api/project.all"

# Create a project
curl -sS -X POST \
  -H "x-api-key: $NIXPLOY_API_KEY" \
  -H "content-type: application/json" \
  -d '{"name":"my-app"}' \
  "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

npm i -g @nixploy/cli
nixploy auth login --url https://panel.example.com --api-key nxlp_...
nixploy doctor
nixploy app list --project-id <id>

CLI guide · MCP for agents

Endpoint catalog

High-traffic procedures. Full schemas and every mutation are on panel Swagger.

Projects

Top-level project CRUD and environment variable inheritance.

router: project

MethodPathSummary
GET/api/project.allList projects
GET/api/project.oneGet one project
GET/api/project.overviewDashboard overview
GET/api/project.searchSearch projects/services
POST/api/project.createCreate project
POST/api/project.updateUpdate project
POST/api/project.deleteDelete project
POST/api/project.saveEnvironmentSave project env vars

Environments

Per-project environments (e.g. production / staging).

router: environment

MethodPathSummary
GET/api/environment.byProjectList environments
POST/api/environment.createCreate environment
POST/api/environment.updateRename / update
POST/api/environment.duplicateDuplicate environment
POST/api/environment.cloneClone services into env
POST/api/environment.deleteDelete environment

Applications

Git/image apps — deploy, env, source, Swarm options.

router: application

MethodPathSummary
GET/api/application.allList applications
GET/api/application.oneGet application
POST/api/application.createCreate application
POST/api/application.updateUpdate application
POST/api/application.deployDeploy
POST/api/application.redeployRedeploy
POST/api/application.startStart
POST/api/application.stopStop
POST/api/application.saveEnvironmentSave env vars
POST/api/application.saveSourceSave git/source
POST/api/application.rollbackRollback deploy
POST/api/application.deleteDelete application

Compose

Docker Compose / Swarm stacks.

router: compose

MethodPathSummary
GET/api/compose.allList compose services
GET/api/compose.oneGet compose service
POST/api/compose.createCreate
POST/api/compose.deployDeploy
POST/api/compose.saveComposeFileSave compose YAML
POST/api/compose.saveEnvironmentSave env vars
POST/api/compose.startStart
POST/api/compose.stopStop

Templates

One-click catalog deploy.

router: template

MethodPathSummary
GET/api/template.allList templates
GET/api/template.oneTemplate details
POST/api/template.deployDeploy template

Domains

Traefik hosts, TLS, and free smoke domains.

router: domain

MethodPathSummary
GET/api/domain.byApplicationDomains for an app
GET/api/domain.byComposeDomains for compose
POST/api/domain.createCreate domain
POST/api/domain.updateUpdate domain
POST/api/domain.deleteDelete domain
GET/api/domain.generateDomainGenerate traefik.me host

Deployments

History, logs, and stats.

router: deployment

MethodPathSummary
GET/api/deployment.byApplicationApp deployments
GET/api/deployment.byComposeCompose deployments
GET/api/deployment.getLogsDeployment log text
GET/api/deployment.recentRecent across org

Preview deployments

PR previews — create, approve fork gates, delete.

router: previewDeployment

MethodPathSummary
GET/api/previewDeployment.byApplicationList previews
POST/api/previewDeployment.createCreate preview
POST/api/previewDeployment.approveApprove fork PR
POST/api/previewDeployment.denyDeny fork PR
POST/api/previewDeployment.deleteDelete preview

Databases

Same CRUD pattern per engine: *.all, *.one, *.create, *.update, *.delete, start/stop, saveEnvironment.

router: postgres / mysql / mariadb / mongo / redis

MethodPathSummary
GET/api/postgres.allList Postgres (same for mysql, …)
POST/api/postgres.createCreate database service
POST/api/postgres.deployDeploy / start service

Backups

DB dumps, volume archives, S3 destinations, instance backup via webServer schedules.

router: backup / volumeBackup / destination

MethodPathSummary
GET/api/backup.allList DB backup schedules
POST/api/backup.runManuallyRun backup now
POST/api/backup.restoreRestore from key
GET/api/volumeBackup.allVolume backup schedules
GET/api/destination.allS3 destinations
POST/api/destination.testConnectionTest destination

GitOps

Export / plan / apply nixploy.yaml.

router: gitops

MethodPathSummary
POST/api/gitops.exportStackExport YAML
POST/api/gitops.planPlan changes
POST/api/gitops.runApplyApply plan
POST/api/gitops.syncFromUrlSync from HTTPS URL

Infra & observe

Remote servers, Docker control center, metrics, alerts.

router: server / docker / monitoring / observability

MethodPathSummary
GET/api/server.allList servers
POST/api/server.setupJoin Swarm
GET/api/docker.containersList containers
GET/api/monitoring.historyMetrics history
GET/api/observability.incidentsIncidents
POST/api/observability.upsertAlertRuleUpsert alert rule

Org & platform

Members, capabilities, notifications, Copilot, tags, cron schedules.

router: organization / notification / ai / tag / schedule

MethodPathSummary
GET/api/organization.settingsOrg settings
POST/api/organization.inviteMemberInvite member
GET/api/organization.capabilityCatalogCapability list
GET/api/notification.allNotification channels
POST/api/ai.explainDeploymentExplain failed deploy
POST/api/ai.generateComposeGenerate compose YAML
GET/api/schedule.allSchedules
GET/api/tag.allTags

Git providers

Connect providers, list repos/branches, webhook secrets.

router: github / gitlab / gitea / bitbucket

MethodPathSummary
GET/api/github.allList GitHub apps
POST/api/github.listRepositoriesList repos
GET/api/gitlab.allList GitLab providers
GET/api/gitea.allList Gitea providers
GET/api/bitbucket.allList Bitbucket providers

Repository guide: docs/api.md · All docs

Docs menu