Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Nettalco/dokploy/llms.txt

Use this file to discover all available pages before exploring further.

Dokploy’s API is built with tRPC and exposed as a fully documented REST API. Every resource in the platform — from applications and databases to servers and notifications — is accessible programmatically, enabling you to integrate Dokploy into CI/CD pipelines, internal tooling, or any automation workflow.

Base URL

All API endpoints share a single base URL rooted at your Dokploy instance:
https://your-dokploy-instance.com/api
Replace your-dokploy-instance.com with the actual hostname or IP address of your self-hosted Dokploy server. For local development installs the base URL is typically http://localhost:3000/api.

API Structure

Dokploy’s API is generated from tRPC procedures and exposed over HTTP using the trpc-openapi adapter. There are two procedure types:
  • Queries map to GET requests. Parameters are passed as JSON-encoded query string values.
  • Mutations map to POST requests. Parameters are passed as a JSON body.
Endpoints follow the pattern /resource.procedureName. For example:
ProcedureHTTP MethodEndpoint
project.allGET/api/project.all
application.deployPOST/api/application.deploy
user.createApiKeyPOST/api/user.createApiKey

Available Resource Groups

Applications

Create, configure, build, and deploy containerised applications.

Compose

Manage Docker Compose stacks and their lifecycle.

Deployments

Trigger deployments, inspect logs, and manage deployment history.

Databases

Provision and manage Postgres, MySQL, MariaDB, MongoDB, and Redis instances.

Backups

Configure automated database backups and backup destinations.

Servers

Register and manage remote Docker servers in your cluster.

Domains

Attach custom domains and configure TLS certificates.

Projects

Organise applications and services into projects.

Notifications

Configure Slack, Discord, email, and webhook notification channels.

Git Providers

Connect GitHub, GitLab, Gitea, and Bitbucket accounts.

Settings

Manage instance-level configuration, SSL, and traefik settings.

Request Format

Queries (GET) — pass input as a URL-encoded JSON string in the input query parameter:
# Query (GET)
curl -X GET 'https://your-instance.com/api/project.all' \
  -H 'x-api-key: YOUR_API_KEY'

# Mutation (POST)
curl -X POST 'https://your-instance.com/api/application.deploy' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"applicationId": "app_123"}'
The x-api-key header is the canonical way to authenticate all API requests. See the Authentication page for details on generating and managing API keys.

Response Format

All responses are JSON. Successful responses wrap the payload in a result.data envelope produced by the tRPC adapter:
{
  "result": {
    "data": {
      "applicationId": "app_123",
      "name": "my-app",
      "status": "running"
    }
  }
}
Errors return a top-level error object with a human-readable message and a machine-readable code:
{
  "error": {
    "message": "Application not found",
    "code": "NOT_FOUND"
  }
}
Common error codes returned by the API:
CodeMeaning
UNAUTHORIZEDMissing or invalid API key / session
FORBIDDENAuthenticated but lacking the required role or permission
NOT_FOUNDThe requested resource does not exist
BAD_REQUESTInput validation failed (check error.data.zodError for field-level details)
INTERNAL_SERVER_ERRORUnexpected server-side failure

OpenAPI Specification

A full OpenAPI 3.1 document is generated live from your instance and is available at:
GET /api/settings.getOpenApiDocument
You can also explore the API interactively in the built-in Swagger UI at:
https://your-instance.com/swagger
The OpenAPI spec can be imported directly into tools such as Postman, Insomnia, or any OpenAPI-compatible client generator.

Rate Limits

Dokploy is fully self-hosted and does not enforce rate limits by default. Rate limiting behaviour depends entirely on your own infrastructure configuration (reverse proxy rules, firewall settings, etc.). If you need to protect your instance from abuse, consider adding rate limiting at the Traefik or Nginx layer in front of Dokploy.
Every API endpoint requires a valid API key or an active browser session. Unauthenticated requests return a 401 UNAUTHORIZED error. See the Authentication page to learn how to generate and use API keys.

Build docs developers (and LLMs) love