Documentation
Documentation
https://coolify.io/docs/api-reference/authorization
Authentication
https://coolify.io/docs/api-reference/authorization
openapi: 3.1.0
info:
title: Coolify Applications API
version: '0.1'
description: Applications
servers:
- url: https://app.coolify.io/api/v1
description: Coolify Cloud API. Change the host to your own instance if you are self-hosting.
tags:
- name: Applications
description: Applications
paths:
/applications:
get:
tags:
- Applications
summary: List
description: List all applications.
operationId: list-applications
parameters:
- name: tag
in: query
description: Filter applications by tag name.
required: false
schema:
type: string
responses:
'200':
description: Get all applications.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Application'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
- bearerAuth: []
/applications/public:
post:
tags:
- Applications
summary: Create (Public)
description: Create new application based on a public git repository.
operationId: create-public-application
requestBody:
description: Application object that needs to be created.
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- environment_uuid
- git_repository
- git_branch
- build_pack
- ports_exposes
properties:
project_uuid:
type: string
description: The project UUID.
server_uuid:
type: string
description: The server UUID.
environment_name:
type: string
description: The environment name. You need to provide at least one of environment_name or environment_uuid.
environment_uuid:
type: string
description: The environment UUID. You need to provide at least one of environment_name or environment_uuid.
git_repository:
type: string
description: The git repository URL.
git_branch:
type: string
description: The git branch.
build_pack:
type: string
enum:
- nixpacks
- railpack
- static
- dockerfile
- dockercompose
description: The build pack type.
ports_exposes:
type: string
description: The ports to expose.
destination_uuid:
type: string
description: The destination UUID.
name:
type: string
description: The application name.
description:
type: string
description: The application description.
domains:
type: string
description: The application URLs in a comma-separated list.
git_commit_sha:
type: string
description: The git commit SHA.
docker_registry_image_name:
type: string
description: The docker registry image name.
docker_registry_image_tag:
type: string
description: The docker registry image tag.
is_static:
type: boolean
description: The flag to indicate if the application is static.
is_spa:
type: boolean
description: The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.
is_auto_deploy_enabled:
type: boolean
description: The flag to indicate if auto-deploy is enabled on git push. Defaults to true.
is_force_https_enabled:
type: boolean
description: The flag to indicate if HTTPS is forced. Defaults to true.
static_image:
type: string
enum:
- nginx:alpine
description: The static image.
install_command:
type: string
description: The install command.
build_command:
type: string
description: The build command.
start_command:
type: string
description: The start command.
ports_mappings:
type: string
description: The ports mappings.
base_directory:
type: string
description: The base directory for all commands.
publish_directory:
type: string
description: The publish directory.
health_check_enabled:
type: boolean
description: Health check enabled.
health_check_path:
type: string
description: Health check path.
health_check_port:
type: string
nullable: true
description: Health check port.
health_check_host:
type: string
nullable: true
description: Health check host.
health_check_method:
type: string
description: Health check method.
health_check_return_code:
type: integer
description: Health check return code.
health_check_scheme:
type: string
description: Health check scheme.
health_check_response_text:
type: string
nullable: true
description: Health check response text.
health_check_interval:
type: integer
description: Health check interval in seconds.
health_check_timeout:
type: integer
description: Health check timeout in seconds.
health_check_retries:
type: integer
description: Health check retries count.
health_check_start_period:
type: integer
description: Health check start period in seconds.
limits_memory:
type: string
description: Memory limit.
limits_memory_swap:
type: string
description: Memory swap limit.
limits_memory_swappiness:
type: integer
description: Memory swappiness.
limits_memory_reservation:
type: string
description: Memory reservation.
limits_cpus:
type: string
description: CPU limit.
limits_cpuset:
type: string
nullable: true
description: CPU set.
limits_cpu_shares:
type: integer
description: CPU shares.
custom_labels:
type: string
description: Custom labels.
custom_docker_run_options:
type: string
description: Custom docker run options.
post_deployment_command:
type: string
description: Post deployment command.
post_deployment_command_container:
type: string
description: Post deployment command container.
pre_deployment_command:
type: string
description: Pre deployment command.
pre_deployment_command_container:
type: string
description: Pre deployment command container.
manual_webhook_secret_github:
type: string
description: Manual webhook secret for Github.
manual_webhook_secret_gitlab:
type: string
description: Manual webhook secret for Gitlab.
manual_webhook_secret_bitbucket:
type: string
description: Manual webhook secret for Bitbucket.
manual_webhook_secret_gitea:
type: string
description: Manual webhook secret for Gitea.
redirect:
type: string
nullable: true
description: How to set redirect with Traefik / Caddy. www<->non-www.
enum:
- www
- non-www
- both
instant_deploy:
type: boolean
description: The flag to indicate if the application should be deployed instantly.
dockerfile:
type: string
description: The Dockerfile content.
dockerfile_location:
type: string
description: The Dockerfile location in the repository.
docker_compose_location:
type: string
description: The Docker Compose location.
docker_compose_custom_start_command:
type: string
description: The Docker Compose custom start command.
docker_compose_custom_build_command:
type: string
description: The Docker Compose custom build command.
docker_compose_domains:
type: array
description: Array of URLs to be applied to containers of a dockercompose application.
items:
properties:
name:
type: string
description: The service name as defined in docker-compose.
domain:
type: string
description: Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io")
type: object
watch_paths:
type: string
description: The watch paths.
use_build_server:
type: boolean
nullable: true
description: Use build server.
is_http_basic_auth_enabled:
type: boolean
description: HTTP Basic Authentication enabled.
http_basic_auth_username:
type: string
nullable: true
description: Username for HTTP Basic Authentication
http_basic_auth_password:
type: string
nullable: true
description: Password for HTTP Basic Authentication
connect_to_docker_network:
type: boolean
description: The flag to connect the service to the predefined Docker network.
force_domain_override:
type: boolean
description: Force domain usage even if conflicts are detected. Default is false.
autogenerate_domain:
type: boolean
default: true
description: 'If true and domains is empty, auto-generate a domain using the server''s wildcard domain or sslip.io fallback. Default: true.'
is_container_label_escape_enabled:
type: boolean
default: true
description: Escape special characters in labels. By default, $ (and other chars) is escaped. So if you write $ in the labels, it will be saved as $$. If you want to use env variables inside the labels, turn this off.
is_preserve_repository_enabled:
type: boolean
default: false
description: Preserve repository during deployment.
type: object
responses:
'201':
description: Application created successfully.
content:
application/json:
schema:
properties:
uuid:
type: string
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'409':
description: Domain conflicts detected.
content:
application/json:
schema:
properties:
message:
type: string
example: Domain conflicts detected. Use force_domain_override=true to proceed.
warning:
type: string
example: Using the same domain for multiple resources can cause routing conflicts and unpredictable behavior.
conflicts:
type: array
items:
properties:
domain:
type: string
example: example.com
resource_name:
type: string
example: My Application
resource_uuid:
type: string
nullable: true
example: abc123-def456
resource_type:
type: string
enum:
- application
- service
- instance
example: application
message:
type: string
example: Domain example.com is already in use by application 'My Application'
type: object
type: object
security:
- bearerAuth: []
/applications/private-github-app:
post:
tags:
- Applications
summary: Create (Private - GH App)
description: Create new application based on a private repository through a Github App.
operationId: create-private-github-app-application
requestBody:
description: Application object that needs to be created.
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- environment_uuid
- github_app_uuid
- git_repository
- git_branch
- build_pack
- ports_exposes
properties:
project_uuid:
type: string
description: The project UUID.
server_uuid:
type: string
description: The server UUID.
environment_name:
type: string
description: The environment name. You need to provide at least one of environment_name or environment_uuid.
environment_uuid:
type: string
description: The environment UUID. You need to provide at least one of environment_name or environment_uuid.
github_app_uuid:
type: string
description: The Github App UUID.
git_repository:
type: string
description: The git repository URL.
git_branch:
type: string
description: The git branch.
ports_exposes:
type: string
description: The ports to expose.
destination_uuid:
type: string
description: The destination UUID.
build_pack:
type: string
enum:
- nixpacks
- railpack
- static
- dockerfile
- dockercompose
description: The build pack type.
name:
type: string
description: The application name.
description:
type: string
description: The application description.
domains:
type: string
description: The application URLs in a comma-separated list.
git_commit_sha:
type: string
description: The git commit SHA.
docker_registry_image_name:
type: string
description: The docker registry image name.
docker_registry_image_tag:
type: string
description: The docker registry image tag.
is_static:
type: boolean
description: The flag to indicate if the application is static.
is_spa:
type: boolean
description: The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.
is_auto_deploy_enabled:
type: boolean
description: The flag to indicate if auto-deploy is enabled on git push. Defaults to true.
is_force_https_enabled:
type: boolean
description: The flag to indicate if HTTPS is forced. Defaults to true.
static_image:
type: string
enum:
- nginx:alpine
description: The static image.
install_command:
type: string
description: The install command.
build_command:
type: string
description: The build command.
start_command:
type: string
description: The start command.
ports_mappings:
type: string
description: The ports mappings.
base_directory:
type: string
description: The base directory for all commands.
publish_directory:
type: string
description: The publish directory.
health_check_enabled:
type: boolean
description: Health check enabled.
health_check_path:
type: string
description: Health check path.
health_check_port:
type: string
nullable: true
description: Health check port.
health_check_host:
type: string
nullable: true
description: Health check host.
health_check_method:
type: string
description: Health check method.
health_check_return_code:
type: integer
description: Health check return code.
health_check_scheme:
type: string
description: Health check scheme.
health_check_response_text:
type: string
nullable: true
description: Health check response text.
health_check_interval:
type: integer
description: Health check interval in seconds.
health_check_timeout:
type: integer
description: Health check timeout in seconds.
health_check_retries:
type: integer
description: Health check retries count.
health_check_start_period:
type: integer
description: Health check start period in seconds.
limits_memory:
type: string
description: Memory limit.
limits_memory_swap:
type: string
description: Memory swap limit.
limits_memory_swappiness:
type: integer
description: Memory swappiness.
limits_memory_reservation:
type: string
description: Memory reservation.
limits_cpus:
type: string
description: CPU limit.
limits_cpuset:
type: string
nullable: true
description: CPU set.
limits_cpu_shares:
type: integer
description: CPU shares.
custom_labels:
type: string
description: Custom labels.
custom_docker_run_options:
type: string
description: Custom docker run options.
post_deployment_command:
type: string
description: Post deployment command.
post_deployment_command_container:
type: string
description: Post deployment command container.
pre_deployment_command:
type: string
description: Pre deployment command.
pre_deployment_command_container:
type: string
description: Pre deployment command container.
manual_webhook_secret_github:
type: string
description: Manual webhook secret for Github.
manual_webhook_secret_gitlab:
type: string
description: Manual webhook secret for Gitlab.
manual_webhook_secret_bitbucket:
type: string
description: Manual webhook secret for Bitbucket.
manual_webhook_secret_gitea:
type: string
description: Manual webhook secret for Gitea.
redirect:
type: string
nullable: true
description: How to set redirect with Traefik / Caddy. www<->non-www.
enum:
- www
- non-www
- both
instant_deploy:
type: boolean
description: The flag to indicate if the application should be deployed instantly.
dockerfile:
type: string
description: The Dockerfile content.
dockerfile_location:
type: string
description: The Dockerfile location in the repository
docker_compose_location:
type: string
description: The Docker Compose location.
docker_compose_custom_start_command:
type: string
description: The Docker Compose custom start command.
docker_compose_custom_build_command:
type: string
description: The Docker Compose custom build command.
docker_compose_domains:
type: array
description: Array of URLs to be applied to containers of a dockercompose application.
items:
properties:
name:
type: string
description: The service name as defined in docker-compose.
domain:
type: string
description: Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io")
type: object
watch_paths:
type: string
description: The watch paths.
use_build_server:
type: boolean
nullable: true
description: Use build server.
is_http_basic_auth_enabled:
type: boolean
description: HTTP Basic Authentication enabled.
http_basic_auth_username:
type: string
nullable: true
description: Username for HTTP Basic Authentication
http_basic_auth_password:
type: string
nullable: true
description: Password for HTTP Basic Authentication
connect_to_docker_network:
type: boolean
description: The flag to connect the service to the predefined Docker network.
force_domain_override:
type: boolean
description: Force domain usage even if conflicts are detected. Default is false.
autogenerate_domain:
type: boolean
default: true
description: 'If true and domains is empty, auto-generate a domain using the server''s wildcard domain or sslip.io fallback. Default: true.'
is_container_label_escape_enabled:
type: boolean
default: true
description: Escape special characters in labels. By default, $ (and other chars) is escaped. So if you write $ in the labels, it will be saved as $$. If you want to use env variables inside the labels, turn this off.
is_preserve_repository_enabled:
type: boolean
default: false
description: Preserve repository during deployment.
type: object
responses:
'201':
description: Application created successfully.
content:
application/json:
schema:
properties:
uuid:
type: string
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'409':
description: Domain conflicts detected.
content:
application/json:
schema:
properties:
message:
type: string
example: Domain conflicts detected. Use force_domain_override=true to proceed.
warning:
type: string
example: Using the same domain for multiple resources can cause routing conflicts and unpredictable behavior.
conflicts:
type: array
items:
properties:
domain:
type: string
example: example.com
resource_name:
type: string
example: My Application
resource_uuid:
type: string
nullable: true
example: abc123-def456
resource_type:
type: string
enum:
- application
- service
- instance
example: application
message:
type: string
example: Domain example.com is already in use by application 'My Application'
type: object
type: object
security:
- bearerAuth: []
/applications/private-deploy-key:
post:
tags:
- Applications
summary: Create (Private - Deploy Key)
description: Create new application based on a private repository through a Deploy Key.
operationId: create-private-deploy-key-application
requestBody:
description: Application object that needs to be created.
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- environment_uuid
- private_key_uuid
- git_repository
- git_branch
- build_pack
- ports_exposes
properties:
project_uuid:
type: string
description: The project UUID.
server_uuid:
type: string
description: The server UUID.
environment_name:
type: string
description: The environment name. You need to provide at least one of environment_name or environment_uuid.
environment_uuid:
type: string
description: The environment UUID. You need to provide at least one of environment_name or environment_uuid.
private_key_uuid:
type: string
description: The private key UUID.
git_repository:
type: string
description: The git repository URL.
git_branch:
type: string
description: The git branch.
ports_exposes:
type: string
description: The ports to expose.
destination_uuid:
type: string
description: The destination UUID.
build_pack:
type: string
enum:
- nixpacks
- railpack
- static
- dockerfile
- dockercompose
description: The build pack type.
name:
type: string
description: The application name.
description:
type: string
description: The application description.
domains:
type: string
description: The application URLs in a comma-separated list.
git_commit_sha:
type: string
description: The git commit SHA.
docker_registry_image_name:
type: string
description: The docker registry image name.
docker_registry_image_tag:
type: string
description: The docker registry image tag.
is_static:
type: boolean
description: The flag to indicate if the application is static.
is_spa:
type: boolean
description: The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.
is_auto_deploy_enabled:
type: boolean
description: The flag to indicate if auto-deploy is enabled on git push. Defaults to true.
is_force_https_enabled:
type: boolean
description: The flag to indicate if HTTPS is forced. Defaults to true.
static_image:
type: string
enum:
- nginx:alpine
description: The static image.
install_command:
type: string
description: The install command.
# --- truncated at 32 KB (109 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coolify/refs/heads/main/openapi/coolify-applications-api-openapi.yml