Skip to main content

Create Application

Create a new application in a specific environment. This endpoint initializes an application with basic configuration that can be further customized with source providers and build settings.

Endpoint

POST /application.create

Request Body

name
string
required
Display name for the application
environmentId
string
required
ID of the environment where the application will be created
appName
string
Internal application name used for Docker containers and routing. If not provided, will be auto-generated from the display name.
description
string
Optional description of the application
serverId
string
Server ID where the application will be deployed (required for cloud deployments)

Response

Returns the created application object with generated applicationId and default configuration.
applicationId
string
Unique identifier for the created application
name
string
Display name of the application
appName
string
Internal application name
environmentId
string
ID of the parent environment
applicationStatus
string
Current status: idle, running, done, or error
sourceType
string
Default source type (initially github)
buildType
string
Default build type (initially nixpacks)
createdAt
string
ISO 8601 timestamp of creation

Example Request

curl -X POST https://your-dokploy-instance.com/api/application.create \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My Web App",
    "appName": "my-web-app",
    "description": "Production web application",
    "environmentId": "env_abc123",
    "serverId": "server_xyz789"
  }'

Example Response

{
  "applicationId": "app_def456",
  "name": "My Web App",
  "appName": "my-web-app",
  "description": "Production web application",
  "environmentId": "env_abc123",
  "serverId": "server_xyz789",
  "applicationStatus": "idle",
  "sourceType": "github",
  "buildType": "nixpacks",
  "createdAt": "2024-03-06T10:30:00.000Z",
  "env": null,
  "buildArgs": null,
  "memoryLimit": null,
  "cpuLimit": null
}

Get Application

Retrieve details of a specific application including its configuration, deployment status, and Git provider access status.

Endpoint

GET /application.one

Query Parameters

applicationId
string
required
ID of the application to retrieve

Response

Returns the complete application object with all configuration details.
applicationId
string
Unique identifier for the application
name
string
Display name of the application
appName
string
Internal application name
applicationStatus
string
Current status: idle, running, done, or error
sourceType
string
Source provider: github, gitlab, bitbucket, gitea, docker, git, or drop
buildType
string
Build system: dockerfile, nixpacks, heroku_buildpacks, paketo_buildpacks, railpack, or static
repository
string
Repository name (for Git-based sources)
owner
string
Repository owner or organization
branch
string
Git branch to deploy from
buildPath
string
Path within repository to build from
dockerfile
string
Path to Dockerfile (for dockerfile build type)
dockerImage
string
Docker image name (for docker source type)
env
string
Environment variables as key=value pairs
buildArgs
string
Build-time arguments
memoryLimit
string
Memory limit (e.g., “512m”, “1g”)
memoryReservation
string
Memory reservation
cpuLimit
string
CPU limit
cpuReservation
string
CPU reservation
hasGitProviderAccess
boolean
Whether the current user has access to the configured Git provider
unauthorizedProvider
string
Git provider name if access is not available
environment
object
Parent environment details
deployments
array
Array of deployment records

Example Request

curl -X GET "https://your-dokploy-instance.com/api/application.one?applicationId=app_def456" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Example Response

{
  "applicationId": "app_def456",
  "name": "My Web App",
  "appName": "my-web-app",
  "description": "Production web application",
  "applicationStatus": "done",
  "sourceType": "github",
  "buildType": "nixpacks",
  "repository": "my-repo",
  "owner": "my-org",
  "branch": "main",
  "buildPath": "/",
  "env": "NODE_ENV=production\nPORT=3000",
  "memoryLimit": "1g",
  "cpuLimit": "1",
  "hasGitProviderAccess": true,
  "unauthorizedProvider": null,
  "createdAt": "2024-03-06T10:30:00.000Z",
  "environment": {
    "environmentId": "env_abc123",
    "name": "Production",
    "project": {
      "projectId": "proj_123",
      "name": "My Project"
    }
  },
  "deployments": [
    {
      "deploymentId": "deploy_123",
      "status": "success",
      "createdAt": "2024-03-06T12:00:00.000Z"
    }
  ]
}

Update Application

Update application configuration including name, description, resource limits, and various deployment settings.

Endpoint

POST /application.update

Request Body

applicationId
string
required
ID of the application to update
name
string
New display name
appName
string
New internal name
description
string
Updated description
env
string
Environment variables (newline-separated KEY=VALUE pairs)
memoryLimit
string
Memory limit (e.g., “512m”, “2g”)
memoryReservation
string
Memory reservation
cpuLimit
string
CPU limit (e.g., “0.5”, “2”)
cpuReservation
string
CPU reservation
command
string
Custom command to run
args
array
Command arguments
autoDeploy
boolean
Enable automatic deployments on Git push
cleanCache
boolean
Clear build cache on next deployment
replicas
number
Number of replicas (for Swarm mode)

Example Request

curl -X POST https://your-dokploy-instance.com/api/application.update \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "applicationId": "app_def456",
    "name": "My Updated Web App",
    "description": "Updated production application",
    "memoryLimit": "2g",
    "cpuLimit": "1.5",
    "autoDeploy": true
  }'

Example Response

{
  "success": true
}

Search Applications

Search and filter applications across your organization with pagination support.

Endpoint

GET /application.search

Query Parameters

q
string
Search term to match against name, appName, description, repository, owner, or dockerImage
name
string
Filter by application name
appName
string
Filter by internal app name
description
string
Filter by description
repository
string
Filter by repository name
owner
string
Filter by repository owner
dockerImage
string
Filter by Docker image name
projectId
string
Filter by project ID
environmentId
string
Filter by environment ID
limit
number
default:"20"
Maximum number of results (1-100)
offset
number
default:"0"
Number of results to skip

Response

items
array
Array of matching applications
total
number
Total number of matching applications

Example Request

curl -X GET "https://your-dokploy-instance.com/api/application.search?q=web&limit=10&offset=0" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Example Response

{
  "items": [
    {
      "applicationId": "app_def456",
      "name": "My Web App",
      "appName": "my-web-app",
      "description": "Production web application",
      "environmentId": "env_abc123",
      "applicationStatus": "done",
      "sourceType": "github",
      "createdAt": "2024-03-06T10:30:00.000Z"
    },
    {
      "applicationId": "app_ghi789",
      "name": "Web API",
      "appName": "web-api",
      "description": "REST API service",
      "environmentId": "env_abc123",
      "applicationStatus": "idle",
      "sourceType": "docker",
      "createdAt": "2024-03-05T14:20:00.000Z"
    }
  ],
  "total": 2
}

Build docs developers (and LLMs) love