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.

Projects are the top-level organizational containers in Dokploy. Each project holds one or more environments (e.g., production, staging, preview), and each environment hosts applications, databases, and Compose stacks. The Projects API lets you create, update, duplicate, and remove projects, as well as manage the environments within them. Duplicating a project copies its entire service configuration into a new environment, making it simple to spin up staging clones.

Endpoints

MethodEndpointDescription
POST/project.createCreate a new project
GET/project.oneFetch a project by ID
GET/project.allList all projects
GET/project.allForPermissionsList projects with permission metadata
GET/project.searchSearch projects by name or description
POST/project.removeDelete a project
POST/project.updateUpdate a project
POST/project.duplicateDuplicate a project environment
POST/environment.createCreate an environment inside a project
GET/environment.oneFetch an environment by ID
GET/environment.byProjectIdList environments for a project
POST/environment.removeDelete an environment
POST/environment.updateUpdate an environment
POST/environment.duplicateDuplicate an environment
GET/environment.searchSearch environments

Key Endpoints

POST /project.create

Create a new project in your Dokploy organization.
name
string
required
Display name for the project.
description
string
Optional description of the project.
env
string
Default environment variables shared across all services in this project (newline-separated KEY=VALUE pairs).
projectId
string
Unique ID of the created project.
name
string
Display name of the project.
createdAt
string
ISO timestamp of project creation.
curl -X POST 'https://your-instance.com/api/project.create' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "My SaaS Platform",
    "description": "Production infrastructure for My SaaS"
  }'

POST /project.duplicate

Duplicate an environment from an existing project into a new or the same project. Optionally select which services to copy.
sourceEnvironmentId
string
required
ID of the environment to duplicate.
name
string
required
Name for the new environment.
description
string
Optional description.
includeServices
boolean
Copy all services into the new environment (default: true).
selectedServices
array
If includeServices is false, specify individual services to copy. Each item requires id (string) and type (application, postgres, mysql, mariadb, mongo, redis, or compose).
duplicateInSameProject
boolean
When true, duplicate into the same project instead of creating a new one (default: false).
curl -X POST 'https://your-instance.com/api/project.duplicate' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "sourceEnvironmentId": "env_prod_001",
    "name": "staging",
    "includeServices": true,
    "duplicateInSameProject": true
  }'

POST /environment.create

Create a new environment within an existing project. Environments are isolated namespaces for services.
name
string
required
Display name for the environment (e.g., production, staging).
projectId
string
required
ID of the parent project.
description
string
Optional description.
environmentId
string
Unique ID of the created environment.
curl -X POST 'https://your-instance.com/api/environment.create' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "staging",
    "projectId": "proj_abc123"
  }'

Search projects by name or description with pagination support.
q
string
Full-text search query matching name or description.
name
string
Filter by exact or partial project name.
limit
number
Maximum results to return (default: 20).
offset
number
Pagination offset (default: 0).
curl -G 'https://your-instance.com/api/project.search' \
  -H 'x-api-key: YOUR_API_KEY' \
  --data-urlencode 'q=saas' \
  --data-urlencode 'limit=10'

POST /project.remove

Delete a project and all its environments and services.
projectId
string
required
ID of the project to delete.
Removing a project is irreversible and will delete all environments, applications, databases, and Compose stacks within it.
curl -X POST 'https://your-instance.com/api/project.remove' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "projectId": "proj_abc123"
  }'

Notes

Use project.duplicate to create a staging environment from production in seconds. All service configurations are copied — just update the environment variables before deploying.
Every application, database, and Compose stack belongs to an environment, not directly to a project. Always create an environment first, then create services inside it.

Build docs developers (and LLMs) love