2024-11-12 12:49:37 +00:00
{
2024-11-23 01:17:38 +00:00
"openapi" : "3.1.0" ,
2024-11-12 12:49:37 +00:00
"info" : {
"title" : "Coolify" ,
"version" : "0.1"
} ,
"servers" : [
{
"url" : "https:\/\/app.coolify.io\/api\/v1" ,
2025-04-22 09:12:30 +00:00
"description" : "Coolify Cloud API. Change the host to your own instance if you are self-hosting."
2024-11-12 12:49:37 +00:00
}
] ,
"paths" : {
"\/applications" : {
"get" : {
"tags" : [
"Applications"
] ,
"summary" : "List" ,
"description" : "List all applications." ,
"operationId" : "list-applications" ,
2026-01-10 19:22:29 +00:00
"parameters" : [
{
"name" : "tag" ,
"in" : "query" ,
"description" : "Filter applications by tag name." ,
"required" : false ,
"schema" : {
"type" : "string"
}
}
] ,
2024-11-12 12:49:37 +00:00
"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" ,
2024-12-17 12:42:16 +00:00
"environment_uuid" ,
2024-11-12 12:49:37 +00:00
"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" ,
2024-12-17 12:42:16 +00:00
"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."
2024-11-12 12:49:37 +00:00
} ,
"git_repository" : {
"type" : "string" ,
"description" : "The git repository URL."
} ,
"git_branch" : {
"type" : "string" ,
"description" : "The git branch."
} ,
"build_pack" : {
"type" : "string" ,
"enum" : [
"nixpacks" ,
"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" ,
2026-01-15 12:44:27 +00:00
"description" : "The application URLs in a comma-separated list."
2024-11-12 12:49:37 +00:00
} ,
"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."
} ,
2026-01-15 12:44:27 +00:00
"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."
} ,
2024-11-12 12:49:37 +00:00
"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."
} ,
2026-01-15 12:44:27 +00:00
"dockerfile_location" : {
"type" : "string" ,
"description" : "The Dockerfile location in the repository."
} ,
2024-11-12 12:49:37 +00:00
"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" ,
2026-01-12 20:42:46 +00:00
"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. \"http:\/\/app.coolify.io,https:\/\/app2.coolify.io\")"
}
} ,
"type" : "object"
}
2024-11-12 12:49:37 +00:00
} ,
"watch_paths" : {
"type" : "string" ,
"description" : "The watch paths."
} ,
"use_build_server" : {
"type" : "boolean" ,
"nullable" : true ,
"description" : "Use build server."
2025-04-23 11:22:01 +00:00
} ,
"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"
2025-05-27 13:10:20 +00:00
} ,
"connect_to_docker_network" : {
"type" : "boolean" ,
"description" : "The flag to connect the service to the predefined Docker network."
2025-08-28 09:21:30 +00:00
} ,
"force_domain_override" : {
"type" : "boolean" ,
"description" : "Force domain usage even if conflicts are detected. Default is false."
2025-12-09 15:26:08 +00:00
} ,
"autogenerate_domain" : {
"type" : "boolean" ,
2025-12-11 11:12:43 +00:00
"default" : true ,
2025-12-09 15:26:08 +00:00
"description" : "If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true."
2026-01-06 14:50:55 +00:00
} ,
"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."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
2024-12-14 01:58:11 +00:00
"201" : {
"description" : "Application created successfully." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
}
2024-11-12 12:49:37 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-08-28 09:21:30 +00:00
} ,
"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"
}
}
}
2024-11-12 12:49:37 +00:00
}
} ,
"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" ,
2024-12-17 12:42:16 +00:00
"environment_uuid" ,
2024-11-12 12:49:37 +00:00
"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" ,
2024-12-17 12:42:16 +00:00
"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."
2024-11-12 12:49:37 +00:00
} ,
"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" ,
"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" ,
2026-01-15 12:44:27 +00:00
"description" : "The application URLs in a comma-separated list."
2024-11-12 12:49:37 +00:00
} ,
"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."
} ,
2026-01-15 12:44:27 +00:00
"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."
} ,
2024-11-12 12:49:37 +00:00
"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."
} ,
2026-01-15 12:44:27 +00:00
"dockerfile_location" : {
"type" : "string" ,
"description" : "The Dockerfile location in the repository"
} ,
2024-11-12 12:49:37 +00:00
"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" ,
2026-01-12 20:42:46 +00:00
"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. \"http:\/\/app.coolify.io,https:\/\/app2.coolify.io\")"
}
} ,
"type" : "object"
}
2024-11-12 12:49:37 +00:00
} ,
"watch_paths" : {
"type" : "string" ,
"description" : "The watch paths."
} ,
"use_build_server" : {
"type" : "boolean" ,
"nullable" : true ,
"description" : "Use build server."
2025-04-23 11:22:01 +00:00
} ,
"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"
2025-05-27 13:10:20 +00:00
} ,
"connect_to_docker_network" : {
"type" : "boolean" ,
"description" : "The flag to connect the service to the predefined Docker network."
2025-08-28 09:21:30 +00:00
} ,
"force_domain_override" : {
"type" : "boolean" ,
"description" : "Force domain usage even if conflicts are detected. Default is false."
2025-12-09 15:26:08 +00:00
} ,
"autogenerate_domain" : {
"type" : "boolean" ,
2025-12-11 11:12:43 +00:00
"default" : true ,
2025-12-09 15:26:08 +00:00
"description" : "If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true."
2026-01-06 14:50:55 +00:00
} ,
"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."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
2024-12-14 01:58:11 +00:00
"201" : {
"description" : "Application created successfully." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
}
2024-11-12 12:49:37 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-08-28 09:21:30 +00:00
} ,
"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"
}
}
}
2024-11-12 12:49:37 +00:00
}
} ,
"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" ,
2024-12-17 12:42:16 +00:00
"environment_uuid" ,
2024-11-12 12:49:37 +00:00
"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" ,
2024-12-17 12:42:16 +00:00
"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."
2024-11-12 12:49:37 +00:00
} ,
"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" ,
"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" ,
2026-01-15 12:44:27 +00:00
"description" : "The application URLs in a comma-separated list."
2024-11-12 12:49:37 +00:00
} ,
"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."
} ,
2026-01-15 12:44:27 +00:00
"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."
} ,
2024-11-12 12:49:37 +00:00
"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."
} ,
2026-01-15 12:44:27 +00:00
"dockerfile_location" : {
"type" : "string" ,
"description" : "The Dockerfile location in the repository."
} ,
2024-11-12 12:49:37 +00:00
"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" ,
2026-01-12 20:42:46 +00:00
"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. \"http:\/\/app.coolify.io,https:\/\/app2.coolify.io\")"
}
} ,
"type" : "object"
}
2024-11-12 12:49:37 +00:00
} ,
"watch_paths" : {
"type" : "string" ,
"description" : "The watch paths."
} ,
"use_build_server" : {
"type" : "boolean" ,
"nullable" : true ,
"description" : "Use build server."
2025-04-23 11:22:01 +00:00
} ,
"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"
2025-05-27 13:10:20 +00:00
} ,
"connect_to_docker_network" : {
"type" : "boolean" ,
"description" : "The flag to connect the service to the predefined Docker network."
2025-08-28 09:21:30 +00:00
} ,
"force_domain_override" : {
"type" : "boolean" ,
"description" : "Force domain usage even if conflicts are detected. Default is false."
2025-12-09 15:26:08 +00:00
} ,
"autogenerate_domain" : {
"type" : "boolean" ,
2025-12-11 11:12:43 +00:00
"default" : true ,
2025-12-09 15:26:08 +00:00
"description" : "If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true."
2026-01-06 14:50:55 +00:00
} ,
"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."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
2024-12-14 01:58:11 +00:00
"201" : {
"description" : "Application created successfully." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
}
2024-11-12 12:49:37 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-08-28 09:21:30 +00:00
} ,
"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"
}
}
}
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/applications\/dockerfile" : {
"post" : {
"tags" : [
"Applications"
] ,
2026-01-12 20:42:46 +00:00
"summary" : "Create (Dockerfile without git)" ,
"description" : "Create new application based on a simple Dockerfile (without git)." ,
2024-11-12 12:49:37 +00:00
"operationId" : "create-dockerfile-application" ,
"requestBody" : {
"description" : "Application object that needs to be created." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"project_uuid" ,
"server_uuid" ,
"environment_name" ,
2024-12-17 12:42:16 +00:00
"environment_uuid" ,
2024-11-12 12:49:37 +00:00
"dockerfile"
] ,
"properties" : {
"project_uuid" : {
"type" : "string" ,
"description" : "The project UUID."
} ,
"server_uuid" : {
"type" : "string" ,
"description" : "The server UUID."
} ,
"environment_name" : {
"type" : "string" ,
2024-12-17 12:42:16 +00:00
"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."
2024-11-12 12:49:37 +00:00
} ,
"dockerfile" : {
"type" : "string" ,
"description" : "The Dockerfile content."
} ,
"build_pack" : {
"type" : "string" ,
"enum" : [
"nixpacks" ,
"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" ,
2026-01-15 12:44:27 +00:00
"description" : "The application URLs in a comma-separated list."
2024-11-12 12:49:37 +00:00
} ,
"docker_registry_image_name" : {
"type" : "string" ,
"description" : "The docker registry image name."
} ,
"docker_registry_image_tag" : {
"type" : "string" ,
"description" : "The docker registry image tag."
} ,
"ports_mappings" : {
"type" : "string" ,
"description" : "The ports mappings."
} ,
"base_directory" : {
"type" : "string" ,
"description" : "The base directory for all commands."
} ,
"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."
} ,
2026-01-15 12:44:27 +00:00
"is_force_https_enabled" : {
"type" : "boolean" ,
"description" : "The flag to indicate if HTTPS is forced. Defaults to true."
} ,
2024-11-12 12:49:37 +00:00
"use_build_server" : {
"type" : "boolean" ,
"nullable" : true ,
"description" : "Use build server."
2025-04-23 11:22:01 +00:00
} ,
"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"
2025-05-27 13:10:20 +00:00
} ,
"connect_to_docker_network" : {
"type" : "boolean" ,
"description" : "The flag to connect the service to the predefined Docker network."
2025-08-28 09:21:30 +00:00
} ,
"force_domain_override" : {
"type" : "boolean" ,
"description" : "Force domain usage even if conflicts are detected. Default is false."
2025-12-09 15:26:08 +00:00
} ,
"autogenerate_domain" : {
"type" : "boolean" ,
2025-12-11 11:12:43 +00:00
"default" : true ,
2025-12-09 15:26:08 +00:00
"description" : "If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true."
2026-01-06 14:50:55 +00:00
} ,
"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."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
2024-12-14 01:58:11 +00:00
"201" : {
"description" : "Application created successfully." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
}
2024-11-12 12:49:37 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-08-28 09:21:30 +00:00
} ,
"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"
}
}
}
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/applications\/dockerimage" : {
"post" : {
"tags" : [
"Applications"
] ,
2026-01-12 20:42:46 +00:00
"summary" : "Create (Docker Image without git)" ,
"description" : "Create new application based on a prebuilt docker image (without git)." ,
2024-11-12 12:49:37 +00:00
"operationId" : "create-dockerimage-application" ,
"requestBody" : {
"description" : "Application object that needs to be created." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"project_uuid" ,
"server_uuid" ,
"environment_name" ,
2024-12-17 12:42:16 +00:00
"environment_uuid" ,
2024-11-12 12:49:37 +00:00
"docker_registry_image_name" ,
"ports_exposes"
] ,
"properties" : {
"project_uuid" : {
"type" : "string" ,
"description" : "The project UUID."
} ,
"server_uuid" : {
"type" : "string" ,
"description" : "The server UUID."
} ,
"environment_name" : {
"type" : "string" ,
2024-12-17 12:42:16 +00:00
"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."
2024-11-12 12:49:37 +00:00
} ,
"docker_registry_image_name" : {
"type" : "string" ,
"description" : "The docker registry image name."
} ,
"docker_registry_image_tag" : {
"type" : "string" ,
"description" : "The docker registry image tag."
} ,
"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" ,
2026-01-15 12:44:27 +00:00
"description" : "The application URLs in a comma-separated list."
2024-11-12 12:49:37 +00:00
} ,
"ports_mappings" : {
"type" : "string" ,
"description" : "The ports mappings."
} ,
"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."
} ,
2026-01-15 12:44:27 +00:00
"is_force_https_enabled" : {
"type" : "boolean" ,
"description" : "The flag to indicate if HTTPS is forced. Defaults to true."
} ,
2024-11-12 12:49:37 +00:00
"use_build_server" : {
"type" : "boolean" ,
"nullable" : true ,
"description" : "Use build server."
2025-04-23 11:22:01 +00:00
} ,
"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"
2025-05-27 13:10:20 +00:00
} ,
"connect_to_docker_network" : {
"type" : "boolean" ,
"description" : "The flag to connect the service to the predefined Docker network."
2025-08-28 09:21:30 +00:00
} ,
"force_domain_override" : {
"type" : "boolean" ,
"description" : "Force domain usage even if conflicts are detected. Default is false."
2025-12-09 15:26:08 +00:00
} ,
"autogenerate_domain" : {
"type" : "boolean" ,
2025-12-11 11:12:43 +00:00
"default" : true ,
2025-12-09 15:26:08 +00:00
"description" : "If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true."
2026-01-06 14:50:55 +00:00
} ,
"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."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
2024-12-14 01:58:11 +00:00
"201" : {
"description" : "Application created successfully." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
}
2024-11-12 12:49:37 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-08-28 09:21:30 +00:00
} ,
"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"
}
}
}
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/applications\/dockercompose" : {
"post" : {
"tags" : [
"Applications"
] ,
2026-01-16 17:24:12 +00:00
"summary" : "Create (Docker Compose)" ,
"description" : "Deprecated: Use POST \/api\/v1\/services instead." ,
2024-11-12 12:49:37 +00:00
"operationId" : "create-dockercompose-application" ,
"requestBody" : {
"description" : "Application object that needs to be created." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"project_uuid" ,
"server_uuid" ,
"environment_name" ,
2024-12-17 12:42:16 +00:00
"environment_uuid" ,
2024-11-12 12:49:37 +00:00
"docker_compose_raw"
] ,
"properties" : {
"project_uuid" : {
"type" : "string" ,
"description" : "The project UUID."
} ,
"server_uuid" : {
"type" : "string" ,
"description" : "The server UUID."
} ,
"environment_name" : {
"type" : "string" ,
2024-12-17 12:42:16 +00:00
"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."
2024-11-12 12:49:37 +00:00
} ,
"docker_compose_raw" : {
"type" : "string" ,
"description" : "The Docker Compose raw content."
} ,
"destination_uuid" : {
"type" : "string" ,
"description" : "The destination UUID if the server has more than one destinations."
} ,
"name" : {
"type" : "string" ,
"description" : "The application name."
} ,
"description" : {
"type" : "string" ,
"description" : "The application description."
} ,
"instant_deploy" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the application should be deployed instantly."
} ,
"use_build_server" : {
"type" : "boolean" ,
"nullable" : true ,
"description" : "Use build server."
2025-05-27 13:10:20 +00:00
} ,
"connect_to_docker_network" : {
"type" : "boolean" ,
"description" : "The flag to connect the service to the predefined Docker network."
2025-08-28 09:21:30 +00:00
} ,
"force_domain_override" : {
"type" : "boolean" ,
"description" : "Force domain usage even if conflicts are detected. Default is false."
2026-01-06 14:50:55 +00:00
} ,
"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."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
2024-12-14 01:58:11 +00:00
"201" : {
"description" : "Application created successfully." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
}
2024-11-12 12:49:37 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-08-28 09:21:30 +00:00
} ,
"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"
}
}
}
2024-11-12 12:49:37 +00:00
}
} ,
2026-01-12 20:42:46 +00:00
"deprecated" : true ,
2024-11-12 12:49:37 +00:00
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/applications\/{uuid}" : {
"get" : {
"tags" : [
"Applications"
] ,
"summary" : "Get" ,
"description" : "Get application by UUID." ,
"operationId" : "get-application-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Get application by UUID." ,
"content" : {
"application\/json" : {
"schema" : {
"$ref" : "#\/components\/schemas\/Application"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"delete" : {
"tags" : [
"Applications"
] ,
"summary" : "Delete" ,
"description" : "Delete application by UUID." ,
"operationId" : "delete-application-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
} ,
{
"name" : "delete_configurations" ,
"in" : "query" ,
"description" : "Delete configurations." ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
} ,
{
"name" : "delete_volumes" ,
"in" : "query" ,
"description" : "Delete volumes." ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
} ,
{
"name" : "docker_cleanup" ,
"in" : "query" ,
"description" : "Run docker cleanup." ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
} ,
{
"name" : "delete_connected_networks" ,
"in" : "query" ,
"description" : "Delete connected networks." ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
}
] ,
"responses" : {
"200" : {
"description" : "Application deleted." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Application deleted."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"patch" : {
"tags" : [
"Applications"
] ,
"summary" : "Update" ,
"description" : "Update application by UUID." ,
"operationId" : "update-application-by-uuid" ,
2025-04-13 13:48:00 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-04-13 13:48:00 +00:00
}
}
] ,
2024-11-12 12:49:37 +00:00
"requestBody" : {
"description" : "Application updated." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"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."
} ,
"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" ,
"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" ,
2026-01-15 12:44:27 +00:00
"description" : "The application URLs in a comma-separated list."
2024-11-12 12:49:37 +00:00
} ,
"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."
} ,
2026-01-15 12:44:27 +00:00
"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."
} ,
2024-11-12 12:49:37 +00:00
"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."
} ,
2026-01-15 12:44:27 +00:00
"dockerfile_location" : {
"type" : "string" ,
"description" : "The Dockerfile location in the repository."
} ,
2024-11-12 12:49:37 +00:00
"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" ,
2026-01-12 20:42:46 +00:00
"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. \"http:\/\/app.coolify.io,https:\/\/app2.coolify.io\")"
}
} ,
"type" : "object"
}
2024-11-12 12:49:37 +00:00
} ,
"watch_paths" : {
"type" : "string" ,
"description" : "The watch paths."
} ,
"use_build_server" : {
"type" : "boolean" ,
"nullable" : true ,
"description" : "Use build server."
2025-05-27 13:10:20 +00:00
} ,
"connect_to_docker_network" : {
"type" : "boolean" ,
"description" : "The flag to connect the service to the predefined Docker network."
2025-08-28 09:21:30 +00:00
} ,
"force_domain_override" : {
"type" : "boolean" ,
"description" : "Force domain usage even if conflicts are detected. Default is false."
2026-01-06 14:50:55 +00:00
} ,
"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."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Application updated." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-08-28 09:21:30 +00:00
} ,
"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"
}
}
}
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-03-31 15:38:54 +00:00
"\/applications\/{uuid}\/logs" : {
"get" : {
"tags" : [
"Applications"
] ,
"summary" : "Get application logs." ,
"description" : "Get application logs by UUID." ,
"operationId" : "get-application-logs-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-03-31 15:38:54 +00:00
}
} ,
{
"name" : "lines" ,
"in" : "query" ,
"description" : "Number of lines to show from the end of the logs." ,
"required" : false ,
"schema" : {
"type" : "integer" ,
"format" : "int32" ,
"default" : 100
}
}
] ,
"responses" : {
"200" : {
"description" : "Get application logs by UUID." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"logs" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2024-11-12 12:49:37 +00:00
"\/applications\/{uuid}\/envs" : {
"get" : {
"tags" : [
"Applications"
] ,
"summary" : "List Envs" ,
"description" : "List all envs by application UUID." ,
"operationId" : "list-envs-by-application-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "All environment variables by application UUID." ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/EnvironmentVariable"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"post" : {
"tags" : [
"Applications"
] ,
"summary" : "Create Env" ,
"description" : "Create env by application UUID." ,
"operationId" : "create-env-by-application-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"requestBody" : {
"description" : "Env created." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"key" : {
"type" : "string" ,
"description" : "The key of the environment variable."
} ,
"value" : {
"type" : "string" ,
"description" : "The value of the environment variable."
} ,
"is_preview" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is used in preview deployments."
} ,
"is_literal" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is a literal, nothing espaced."
} ,
"is_multiline" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is multiline."
} ,
"is_shown_once" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable's value is shown on the UI."
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
"description" : "Environment variable created." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string" ,
"example" : "nc0k04gk8g0cgsk440g0koko"
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"patch" : {
"tags" : [
"Applications"
] ,
"summary" : "Update Env" ,
"description" : "Update env by application UUID." ,
"operationId" : "update-env-by-application-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"requestBody" : {
"description" : "Env updated." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"key" ,
"value"
] ,
"properties" : {
"key" : {
"type" : "string" ,
"description" : "The key of the environment variable."
} ,
"value" : {
"type" : "string" ,
"description" : "The value of the environment variable."
} ,
"is_preview" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is used in preview deployments."
} ,
"is_literal" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is a literal, nothing espaced."
} ,
"is_multiline" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is multiline."
} ,
"is_shown_once" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable's value is shown on the UI."
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
"description" : "Environment variable updated." ,
"content" : {
"application\/json" : {
"schema" : {
2026-02-09 13:48:16 +00:00
"$ref" : "#\/components\/schemas\/EnvironmentVariable"
2024-11-12 12:49:37 +00:00
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/applications\/{uuid}\/envs\/bulk" : {
"patch" : {
"tags" : [
"Applications"
] ,
"summary" : "Update Envs (Bulk)" ,
"description" : "Update multiple envs by application UUID." ,
"operationId" : "update-envs-by-application-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"requestBody" : {
"description" : "Bulk envs updated." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"data"
] ,
"properties" : {
"data" : {
"type" : "array" ,
"items" : {
"properties" : {
"key" : {
"type" : "string" ,
"description" : "The key of the environment variable."
} ,
"value" : {
"type" : "string" ,
"description" : "The value of the environment variable."
} ,
"is_preview" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is used in preview deployments."
} ,
"is_literal" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is a literal, nothing espaced."
} ,
"is_multiline" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is multiline."
} ,
"is_shown_once" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable's value is shown on the UI."
}
} ,
"type" : "object"
}
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
"description" : "Environment variables updated." ,
"content" : {
"application\/json" : {
"schema" : {
2026-01-06 11:52:32 +00:00
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/EnvironmentVariable"
}
2024-11-12 12:49:37 +00:00
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/applications\/{uuid}\/envs\/{env_uuid}" : {
"delete" : {
"tags" : [
"Applications"
] ,
"summary" : "Delete Env" ,
"description" : "Delete env by UUID." ,
"operationId" : "delete-env-by-application-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
} ,
{
"name" : "env_uuid" ,
"in" : "path" ,
"description" : "UUID of the environment variable." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Environment variable deleted." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Environment variable deleted."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/applications\/{uuid}\/start" : {
"get" : {
"tags" : [
"Applications"
] ,
"summary" : "Start" ,
"description" : "Start application. `Post` request is also accepted." ,
"operationId" : "start-application-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
} ,
{
"name" : "force" ,
"in" : "query" ,
"description" : "Force rebuild." ,
"schema" : {
"type" : "boolean" ,
"default" : false
}
} ,
{
"name" : "instant_deploy" ,
"in" : "query" ,
"description" : "Instant deploy (skip queuing)." ,
"schema" : {
"type" : "boolean" ,
"default" : false
}
}
] ,
"responses" : {
"200" : {
"description" : "Start application." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Deployment request queued." ,
"description" : "Message."
} ,
"deployment_uuid" : {
"type" : "string" ,
"example" : "doogksw" ,
"description" : "UUID of the deployment."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/applications\/{uuid}\/stop" : {
"get" : {
"tags" : [
"Applications"
] ,
"summary" : "Stop" ,
"description" : "Stop application. `Post` request is also accepted." ,
"operationId" : "stop-application-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Stop application." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Application stopping request queued."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/applications\/{uuid}\/restart" : {
"get" : {
"tags" : [
"Applications"
] ,
"summary" : "Restart" ,
"description" : "Restart application. `Post` request is also accepted." ,
"operationId" : "restart-application-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Restart application." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Restart request queued."
} ,
"deployment_uuid" : {
"type" : "string" ,
"example" : "doogksw" ,
"description" : "UUID of the deployment."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/cloud-tokens" : {
2025-09-30 09:19:39 +00:00
"get" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"Cloud Tokens"
2025-09-30 09:19:39 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "List Cloud Provider Tokens" ,
"description" : "List all cloud provider tokens for the authenticated team." ,
"operationId" : "list-cloud-tokens" ,
2025-09-30 09:19:39 +00:00
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Get all cloud provider tokens." ,
2025-09-30 09:19:39 +00:00
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "array" ,
"items" : {
"properties" : {
"uuid" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
"provider" : {
"type" : "string" ,
"enum" : [
"hetzner" ,
"digitalocean"
]
} ,
"team_id" : {
"type" : "integer"
} ,
"servers_count" : {
"type" : "integer"
} ,
"created_at" : {
"type" : "string"
} ,
"updated_at" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
2025-09-30 09:19:39 +00:00
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-10-20 11:57:43 +00:00
} ,
"post" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"Cloud Tokens"
2025-10-20 11:57:43 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Create Cloud Provider Token" ,
"description" : "Create a new cloud provider token. The token will be validated before being stored." ,
"operationId" : "create-cloud-token" ,
2025-10-20 11:57:43 +00:00
"requestBody" : {
2025-12-11 08:41:54 +00:00
"description" : "Cloud provider token details" ,
2025-10-20 11:57:43 +00:00
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
2025-12-11 08:41:54 +00:00
"provider" ,
"token" ,
"name"
2025-10-20 11:57:43 +00:00
] ,
"properties" : {
2025-12-11 08:41:54 +00:00
"provider" : {
2025-10-20 11:57:43 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"enum" : [
"hetzner" ,
"digitalocean"
] ,
"example" : "hetzner" ,
"description" : "The cloud provider."
2025-10-20 11:57:43 +00:00
} ,
2025-12-11 08:41:54 +00:00
"token" : {
2025-10-20 11:57:43 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "your-api-token-here" ,
"description" : "The API token for the cloud provider."
2025-10-20 11:57:43 +00:00
} ,
2025-12-11 08:41:54 +00:00
"name" : {
2025-10-20 11:57:43 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "My Hetzner Token" ,
"description" : "A friendly name for the token."
2025-10-20 11:57:43 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
2025-12-11 08:41:54 +00:00
"description" : "Cloud provider token created." ,
2025-10-20 11:57:43 +00:00
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "og888os" ,
"description" : "The UUID of the token."
2025-10-20 11:57:43 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-09-30 09:19:39 +00:00
}
} ,
2025-12-11 08:41:54 +00:00
"\/cloud-tokens\/{uuid}" : {
2024-11-12 12:49:37 +00:00
"get" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"Cloud Tokens"
2024-11-12 12:49:37 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Get Cloud Provider Token" ,
"description" : "Get cloud provider token by UUID." ,
"operationId" : "get-cloud-token-by-uuid" ,
2024-11-12 12:49:37 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
2025-12-11 08:41:54 +00:00
"description" : "Token UUID" ,
2024-11-12 12:49:37 +00:00
"required" : true ,
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Get cloud provider token by UUID" ,
2024-11-12 12:49:37 +00:00
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"properties" : {
"uuid" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
"provider" : {
"type" : "string"
} ,
"team_id" : {
"type" : "integer"
} ,
"servers_count" : {
"type" : "integer"
} ,
"created_at" : {
"type" : "string"
} ,
"updated_at" : {
"type" : "string"
}
} ,
"type" : "object"
}
2024-11-12 12:49:37 +00:00
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"delete" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"Cloud Tokens"
2024-11-12 12:49:37 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Delete Cloud Provider Token" ,
"description" : "Delete cloud provider token by UUID. Cannot delete if token is used by any servers." ,
"operationId" : "delete-cloud-token-by-uuid" ,
2024-11-12 12:49:37 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
2025-12-11 08:41:54 +00:00
"description" : "UUID of the cloud provider token." ,
2024-11-12 12:49:37 +00:00
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Cloud provider token deleted." ,
2024-11-12 12:49:37 +00:00
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "Cloud provider token deleted."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"patch" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"Cloud Tokens"
2024-11-12 12:49:37 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Update Cloud Provider Token" ,
"description" : "Update cloud provider token name." ,
"operationId" : "update-cloud-token-by-uuid" ,
2024-11-12 12:49:37 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
2025-12-11 08:41:54 +00:00
"description" : "Token UUID" ,
2024-11-12 12:49:37 +00:00
"required" : true ,
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"requestBody" : {
2025-12-11 08:41:54 +00:00
"description" : "Cloud provider token updated." ,
2024-11-12 12:49:37 +00:00
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"name" : {
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "The friendly name for the token."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Cloud provider token updated." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
}
2024-11-12 12:49:37 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/cloud-tokens\/{uuid}\/validate" : {
"post" : {
2025-09-30 09:19:39 +00:00
"tags" : [
2025-12-11 08:41:54 +00:00
"Cloud Tokens"
2025-09-30 09:19:39 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Validate Cloud Provider Token" ,
"description" : "Validate a cloud provider token against the provider API." ,
"operationId" : "validate-cloud-token-by-uuid" ,
2025-09-30 09:19:39 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
2025-12-11 08:41:54 +00:00
"description" : "Token UUID" ,
2025-09-30 09:19:39 +00:00
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Token validation result." ,
2025-09-30 09:19:39 +00:00
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
2025-12-11 08:41:54 +00:00
"valid" : {
"type" : "boolean" ,
"example" : true
} ,
2025-10-12 12:20:45 +00:00
"message" : {
2025-09-30 09:19:39 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "Token is valid."
2025-09-30 09:19:39 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
2025-12-11 08:41:54 +00:00
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
2025-09-30 09:19:39 +00:00
"404" : {
2025-12-11 08:41:54 +00:00
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/databases" : {
"get" : {
"tags" : [
"Databases"
] ,
"summary" : "List" ,
"description" : "List all databases." ,
"operationId" : "list-databases" ,
"responses" : {
"200" : {
"description" : "Get all databases" ,
2025-09-30 09:19:39 +00:00
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "string"
} ,
"example" : "Content is very complex. Will be implemented later."
2025-09-30 09:19:39 +00:00
}
}
2025-12-11 08:41:54 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-09-30 09:19:39 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-12-11 08:41:54 +00:00
}
} ,
"\/databases\/{uuid}\/backups" : {
"get" : {
2025-09-30 09:19:39 +00:00
"tags" : [
"Databases"
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Get" ,
"description" : "Get backups details by database UUID." ,
"operationId" : "get-database-backups-by-uuid" ,
2025-09-30 09:19:39 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the database." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-09-30 09:19:39 +00:00
}
2025-12-11 08:41:54 +00:00
}
] ,
"responses" : {
"200" : {
"description" : "Get all backups for a database" ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "string"
} ,
"example" : "Content is very complex. Will be implemented later."
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
2025-09-30 09:19:39 +00:00
{
2025-12-11 08:41:54 +00:00
"bearerAuth" : [ ]
}
]
} ,
"post" : {
"tags" : [
"Databases"
] ,
"summary" : "Create Backup" ,
"description" : "Create a new scheduled backup configuration for a database" ,
"operationId" : "create-database-backup" ,
"parameters" : [
{
"name" : "uuid" ,
2025-09-30 09:19:39 +00:00
"in" : "path" ,
2025-12-11 08:41:54 +00:00
"description" : "UUID of the database." ,
2025-09-30 09:19:39 +00:00
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-09-30 09:19:39 +00:00
}
}
] ,
"requestBody" : {
2025-12-11 08:41:54 +00:00
"description" : "Backup configuration data" ,
2025-09-30 09:19:39 +00:00
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"required" : [
"frequency"
] ,
2025-09-30 09:19:39 +00:00
"properties" : {
2025-12-11 08:41:54 +00:00
"frequency" : {
2025-09-30 09:19:39 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Backup frequency (cron expression or: every_minute, hourly, daily, weekly, monthly, yearly)"
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"enabled" : {
2025-09-30 09:19:39 +00:00
"type" : "boolean" ,
2025-12-11 08:41:54 +00:00
"description" : "Whether the backup is enabled" ,
"default" : true
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"save_s3" : {
2025-09-30 09:19:39 +00:00
"type" : "boolean" ,
2025-12-11 08:41:54 +00:00
"description" : "Whether to save backups to S3" ,
"default" : false
} ,
"s3_storage_uuid" : {
"type" : "string" ,
"description" : "S3 storage UUID (required if save_s3 is true)"
2025-09-30 09:19:39 +00:00
} ,
"databases_to_backup" : {
"type" : "string" ,
"description" : "Comma separated list of databases to backup"
} ,
"dump_all" : {
"type" : "boolean" ,
2025-12-11 08:41:54 +00:00
"description" : "Whether to dump all databases" ,
"default" : false
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"backup_now" : {
"type" : "boolean" ,
"description" : "Whether to trigger backup immediately after creation"
2025-09-30 09:19:39 +00:00
} ,
"database_backup_retention_amount_locally" : {
"type" : "integer" ,
2025-12-11 08:41:54 +00:00
"description" : "Number of backups to retain locally"
2025-09-30 09:19:39 +00:00
} ,
"database_backup_retention_days_locally" : {
"type" : "integer" ,
2025-12-11 08:41:54 +00:00
"description" : "Number of days to retain backups locally"
2025-09-30 09:19:39 +00:00
} ,
"database_backup_retention_max_storage_locally" : {
"type" : "integer" ,
2025-12-11 08:41:54 +00:00
"description" : "Max storage (MB) for local backups"
2025-09-30 09:19:39 +00:00
} ,
"database_backup_retention_amount_s3" : {
"type" : "integer" ,
2025-12-11 08:41:54 +00:00
"description" : "Number of backups to retain in S3"
2025-09-30 09:19:39 +00:00
} ,
"database_backup_retention_days_s3" : {
"type" : "integer" ,
2025-12-11 08:41:54 +00:00
"description" : "Number of days to retain backups in S3"
2025-09-30 09:19:39 +00:00
} ,
"database_backup_retention_max_storage_s3" : {
"type" : "integer" ,
2025-12-11 08:41:54 +00:00
"description" : "Max storage (MB) for S3 backups"
2025-09-30 09:19:39 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
2025-12-11 08:41:54 +00:00
"201" : {
"description" : "Backup configuration created successfully" ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string" ,
"format" : "uuid" ,
"example" : "550e8400-e29b-41d4-a716-446655440000"
} ,
"message" : {
"type" : "string" ,
"example" : "Backup configuration created successfully."
}
} ,
"type" : "object"
}
}
}
2025-09-30 09:19:39 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2025-09-30 09:19:39 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/databases\/{uuid}" : {
"get" : {
2024-11-12 12:49:37 +00:00
"tags" : [
"Databases"
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Get" ,
"description" : "Get database by UUID." ,
"operationId" : "get-database-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the database." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
2025-12-11 08:41:54 +00:00
] ,
2024-11-12 12:49:37 +00:00
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Get all databases" ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "string"
} ,
"example" : "Content is very complex. Will be implemented later."
}
}
2024-11-12 12:49:37 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-10-12 12:20:45 +00:00
} ,
2025-12-11 08:41:54 +00:00
"404" : {
"$ref" : "#\/components\/responses\/404"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-12-11 08:41:54 +00:00
} ,
"delete" : {
2024-11-12 12:49:37 +00:00
"tags" : [
"Databases"
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Delete" ,
"description" : "Delete database by UUID." ,
"operationId" : "delete-database-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the database." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-12-11 08:41:54 +00:00
}
} ,
{
"name" : "delete_configurations" ,
"in" : "query" ,
"description" : "Delete configurations." ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
} ,
{
"name" : "delete_volumes" ,
"in" : "query" ,
"description" : "Delete volumes." ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
} ,
{
"name" : "docker_cleanup" ,
"in" : "query" ,
"description" : "Run docker cleanup." ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
} ,
{
"name" : "delete_connected_networks" ,
"in" : "query" ,
"description" : "Delete connected networks." ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
}
] ,
"responses" : {
"200" : {
"description" : "Database deleted." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Database deleted."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"patch" : {
"tags" : [
"Databases"
] ,
"summary" : "Update" ,
"description" : "Update database by UUID." ,
"operationId" : "update-database-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the database." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-12-11 08:41:54 +00:00
}
}
] ,
2024-11-12 12:49:37 +00:00
"requestBody" : {
"description" : "Database data" ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"name" : {
"type" : "string" ,
"description" : "Name of the database"
} ,
"description" : {
"type" : "string" ,
"description" : "Description of the database"
} ,
"image" : {
"type" : "string" ,
"description" : "Docker Image of the database"
} ,
"is_public" : {
"type" : "boolean" ,
"description" : "Is the database public?"
} ,
"public_port" : {
"type" : "integer" ,
"description" : "Public port of the database"
} ,
"limits_memory" : {
"type" : "string" ,
"description" : "Memory limit of the database"
} ,
"limits_memory_swap" : {
"type" : "string" ,
"description" : "Memory swap limit of the database"
} ,
"limits_memory_swappiness" : {
"type" : "integer" ,
"description" : "Memory swappiness of the database"
} ,
"limits_memory_reservation" : {
"type" : "string" ,
"description" : "Memory reservation of the database"
} ,
"limits_cpus" : {
"type" : "string" ,
"description" : "CPU limit of the database"
} ,
"limits_cpuset" : {
"type" : "string" ,
"description" : "CPU set of the database"
} ,
"limits_cpu_shares" : {
"type" : "integer" ,
"description" : "CPU shares of the database"
} ,
2025-12-11 08:41:54 +00:00
"postgres_user" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "PostgreSQL user"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"postgres_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "PostgreSQL password"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"postgres_db" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "PostgreSQL database"
2024-12-17 12:42:16 +00:00
} ,
2025-12-11 08:41:54 +00:00
"postgres_initdb_args" : {
2024-12-17 12:42:16 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "PostgreSQL initdb args"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"postgres_host_auth_method" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "PostgreSQL host auth method"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"postgres_conf" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "PostgreSQL conf"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"clickhouse_admin_user" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Clickhouse admin user"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"clickhouse_admin_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Clickhouse admin password"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"dragonfly_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "DragonFly password"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"redis_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Redis password"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"redis_conf" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Redis conf"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"keydb_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "KeyDB password"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"keydb_conf" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "KeyDB conf"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mariadb_conf" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "MariaDB conf"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mariadb_root_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "MariaDB root password"
2024-12-17 12:42:16 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mariadb_user" : {
2024-12-17 12:42:16 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "MariaDB user"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mariadb_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "MariaDB password"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mariadb_database" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "MariaDB database"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mongo_conf" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Mongo conf"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mongo_initdb_root_username" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Mongo initdb root username"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mongo_initdb_root_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Mongo initdb root password"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mongo_initdb_database" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Mongo initdb init database"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mysql_root_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "MySQL root password"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mysql_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "MySQL password"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mysql_user" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "MySQL user"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mysql_database" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "MySQL database"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"mysql_conf" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "MySQL conf"
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Database updated"
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-10-12 12:20:45 +00:00
} ,
2025-12-11 08:41:54 +00:00
"404" : {
"$ref" : "#\/components\/responses\/404"
} ,
2025-10-12 12:20:45 +00:00
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/databases\/{uuid}\/backups\/{scheduled_backup_uuid}" : {
"delete" : {
2024-11-12 12:49:37 +00:00
"tags" : [
"Databases"
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Delete backup configuration" ,
"description" : "Deletes a backup configuration and all its executions." ,
"operationId" : "delete-backup-configuration-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the database" ,
"required" : true ,
"schema" : {
"type" : "string"
}
} ,
{
"name" : "scheduled_backup_uuid" ,
"in" : "path" ,
"description" : "UUID of the backup configuration to delete" ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-12-11 08:41:54 +00:00
}
} ,
{
"name" : "delete_s3" ,
"in" : "query" ,
"description" : "Whether to delete all backup files from S3" ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : false
}
}
] ,
"responses" : {
"200" : {
"description" : "Backup configuration deleted." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Backup configuration and all executions deleted."
}
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"type" : "object"
}
}
}
} ,
"404" : {
"description" : "Backup configuration not found." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Backup configuration not found."
}
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"type" : "object"
}
}
}
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"patch" : {
"tags" : [
"Databases"
] ,
"summary" : "Update" ,
"description" : "Update a specific backup configuration for a given database, identified by its UUID and the backup ID" ,
"operationId" : "update-database-backup" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the database." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-12-11 08:41:54 +00:00
}
} ,
{
"name" : "scheduled_backup_uuid" ,
"in" : "path" ,
"description" : "UUID of the backup configuration." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-12-11 08:41:54 +00:00
}
}
] ,
"requestBody" : {
"description" : "Database backup configuration data" ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"save_s3" : {
"type" : "boolean" ,
"description" : "Whether data is saved in s3 or not"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"s3_storage_uuid" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "S3 storage UUID"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"backup_now" : {
"type" : "boolean" ,
"description" : "Whether to take a backup now or not"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"enabled" : {
"type" : "boolean" ,
"description" : "Whether the backup is enabled or not"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"databases_to_backup" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Comma separated list of databases to backup"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"dump_all" : {
2024-11-12 12:49:37 +00:00
"type" : "boolean" ,
2025-12-11 08:41:54 +00:00
"description" : "Whether all databases are dumped or not"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"frequency" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Frequency of the backup"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"database_backup_retention_amount_locally" : {
2024-11-12 12:49:37 +00:00
"type" : "integer" ,
2025-12-11 08:41:54 +00:00
"description" : "Retention amount of the backup locally"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"database_backup_retention_days_locally" : {
"type" : "integer" ,
"description" : "Retention days of the backup locally"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"database_backup_retention_max_storage_locally" : {
"type" : "integer" ,
"description" : "Max storage of the backup locally"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"database_backup_retention_amount_s3" : {
"type" : "integer" ,
"description" : "Retention amount of the backup in s3"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"database_backup_retention_days_s3" : {
2024-11-12 12:49:37 +00:00
"type" : "integer" ,
2025-12-11 08:41:54 +00:00
"description" : "Retention days of the backup in s3"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"database_backup_retention_max_storage_s3" : {
"type" : "integer" ,
"description" : "Max storage of the backup in S3"
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Database backup configuration updated"
2024-11-12 12:49:37 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-10-12 12:20:45 +00:00
} ,
2025-12-11 08:41:54 +00:00
"404" : {
"$ref" : "#\/components\/responses\/404"
} ,
2025-10-12 12:20:45 +00:00
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/databases\/postgresql" : {
2024-11-12 12:49:37 +00:00
"post" : {
"tags" : [
"Databases"
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Create (PostgreSQL)" ,
"description" : "Create a new PostgreSQL database." ,
"operationId" : "create-database-postgresql" ,
2024-11-12 12:49:37 +00:00
"requestBody" : {
"description" : "Database data" ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"server_uuid" ,
"project_uuid" ,
2024-12-17 12:42:16 +00:00
"environment_name" ,
"environment_uuid"
2024-11-12 12:49:37 +00:00
] ,
"properties" : {
"server_uuid" : {
"type" : "string" ,
"description" : "UUID of the server"
} ,
"project_uuid" : {
"type" : "string" ,
"description" : "UUID of the project"
} ,
"environment_name" : {
"type" : "string" ,
2024-12-17 12:42:16 +00:00
"description" : "Name of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"environment_uuid" : {
"type" : "string" ,
"description" : "UUID of the environment. You need to provide at least one of environment_name or environment_uuid."
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"postgres_user" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "PostgreSQL user"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"postgres_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "PostgreSQL password"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"postgres_db" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "PostgreSQL database"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"postgres_initdb_args" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "PostgreSQL initdb args"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"postgres_host_auth_method" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "PostgreSQL host auth method"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"postgres_conf" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "PostgreSQL conf"
} ,
"destination_uuid" : {
"type" : "string" ,
"description" : "UUID of the destination if the server has multiple destinations"
2024-11-12 12:49:37 +00:00
} ,
"name" : {
"type" : "string" ,
"description" : "Name of the database"
} ,
"description" : {
"type" : "string" ,
"description" : "Description of the database"
} ,
"image" : {
"type" : "string" ,
"description" : "Docker Image of the database"
} ,
"is_public" : {
"type" : "boolean" ,
"description" : "Is the database public?"
} ,
"public_port" : {
"type" : "integer" ,
"description" : "Public port of the database"
} ,
"limits_memory" : {
"type" : "string" ,
"description" : "Memory limit of the database"
} ,
"limits_memory_swap" : {
"type" : "string" ,
"description" : "Memory swap limit of the database"
} ,
"limits_memory_swappiness" : {
"type" : "integer" ,
"description" : "Memory swappiness of the database"
} ,
"limits_memory_reservation" : {
"type" : "string" ,
"description" : "Memory reservation of the database"
} ,
"limits_cpus" : {
"type" : "string" ,
"description" : "CPU limit of the database"
} ,
"limits_cpuset" : {
"type" : "string" ,
"description" : "CPU set of the database"
} ,
"limits_cpu_shares" : {
"type" : "integer" ,
"description" : "CPU shares of the database"
} ,
"instant_deploy" : {
"type" : "boolean" ,
"description" : "Instant deploy the database"
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Database updated"
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/databases\/clickhouse" : {
2024-11-12 12:49:37 +00:00
"post" : {
"tags" : [
"Databases"
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Create (Clickhouse)" ,
"description" : "Create a new Clickhouse database." ,
"operationId" : "create-database-clickhouse" ,
2024-11-12 12:49:37 +00:00
"requestBody" : {
"description" : "Database data" ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"server_uuid" ,
"project_uuid" ,
2024-12-17 12:42:16 +00:00
"environment_name" ,
"environment_uuid"
2024-11-12 12:49:37 +00:00
] ,
"properties" : {
"server_uuid" : {
"type" : "string" ,
"description" : "UUID of the server"
} ,
"project_uuid" : {
"type" : "string" ,
"description" : "UUID of the project"
} ,
"environment_name" : {
"type" : "string" ,
2024-12-17 12:42:16 +00:00
"description" : "Name of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"environment_uuid" : {
"type" : "string" ,
"description" : "UUID of the environment. You need to provide at least one of environment_name or environment_uuid."
2024-11-12 12:49:37 +00:00
} ,
"destination_uuid" : {
"type" : "string" ,
"description" : "UUID of the destination if the server has multiple destinations"
} ,
2025-12-11 08:41:54 +00:00
"clickhouse_admin_user" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Clickhouse admin user"
2024-11-12 12:49:37 +00:00
} ,
2025-12-11 08:41:54 +00:00
"clickhouse_admin_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Clickhouse admin password"
2024-11-12 12:49:37 +00:00
} ,
"name" : {
"type" : "string" ,
"description" : "Name of the database"
} ,
"description" : {
"type" : "string" ,
"description" : "Description of the database"
} ,
"image" : {
"type" : "string" ,
"description" : "Docker Image of the database"
} ,
"is_public" : {
"type" : "boolean" ,
"description" : "Is the database public?"
} ,
"public_port" : {
"type" : "integer" ,
"description" : "Public port of the database"
} ,
"limits_memory" : {
"type" : "string" ,
"description" : "Memory limit of the database"
} ,
"limits_memory_swap" : {
"type" : "string" ,
"description" : "Memory swap limit of the database"
} ,
"limits_memory_swappiness" : {
"type" : "integer" ,
"description" : "Memory swappiness of the database"
} ,
"limits_memory_reservation" : {
"type" : "string" ,
"description" : "Memory reservation of the database"
} ,
"limits_cpus" : {
"type" : "string" ,
"description" : "CPU limit of the database"
} ,
"limits_cpuset" : {
"type" : "string" ,
"description" : "CPU set of the database"
} ,
"limits_cpu_shares" : {
"type" : "integer" ,
"description" : "CPU shares of the database"
} ,
"instant_deploy" : {
"type" : "boolean" ,
"description" : "Instant deploy the database"
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Database updated"
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/databases\/dragonfly" : {
2024-11-12 12:49:37 +00:00
"post" : {
"tags" : [
"Databases"
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Create (DragonFly)" ,
"description" : "Create a new DragonFly database." ,
"operationId" : "create-database-dragonfly" ,
2024-11-12 12:49:37 +00:00
"requestBody" : {
"description" : "Database data" ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"server_uuid" ,
"project_uuid" ,
2024-12-17 12:42:16 +00:00
"environment_name" ,
"environment_uuid"
2024-11-12 12:49:37 +00:00
] ,
"properties" : {
"server_uuid" : {
"type" : "string" ,
"description" : "UUID of the server"
} ,
"project_uuid" : {
"type" : "string" ,
"description" : "UUID of the project"
} ,
"environment_name" : {
"type" : "string" ,
2024-12-17 12:42:16 +00:00
"description" : "Name of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"environment_uuid" : {
"type" : "string" ,
"description" : "UUID of the environment. You need to provide at least one of environment_name or environment_uuid."
2024-11-12 12:49:37 +00:00
} ,
"destination_uuid" : {
"type" : "string" ,
"description" : "UUID of the destination if the server has multiple destinations"
} ,
2025-12-11 08:41:54 +00:00
"dragonfly_password" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "DragonFly password"
2024-11-12 12:49:37 +00:00
} ,
"name" : {
"type" : "string" ,
"description" : "Name of the database"
} ,
"description" : {
"type" : "string" ,
"description" : "Description of the database"
} ,
"image" : {
"type" : "string" ,
"description" : "Docker Image of the database"
} ,
"is_public" : {
"type" : "boolean" ,
"description" : "Is the database public?"
} ,
"public_port" : {
"type" : "integer" ,
"description" : "Public port of the database"
} ,
"limits_memory" : {
"type" : "string" ,
"description" : "Memory limit of the database"
} ,
"limits_memory_swap" : {
"type" : "string" ,
"description" : "Memory swap limit of the database"
} ,
"limits_memory_swappiness" : {
"type" : "integer" ,
"description" : "Memory swappiness of the database"
} ,
"limits_memory_reservation" : {
"type" : "string" ,
"description" : "Memory reservation of the database"
} ,
"limits_cpus" : {
"type" : "string" ,
"description" : "CPU limit of the database"
} ,
"limits_cpuset" : {
"type" : "string" ,
"description" : "CPU set of the database"
} ,
"limits_cpu_shares" : {
"type" : "integer" ,
"description" : "CPU shares of the database"
} ,
"instant_deploy" : {
"type" : "boolean" ,
"description" : "Instant deploy the database"
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Database updated"
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-10-12 12:20:45 +00:00
} ,
2025-12-11 08:41:54 +00:00
"422" : {
"$ref" : "#\/components\/responses\/422"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/databases\/redis" : {
"post" : {
"tags" : [
"Databases"
] ,
"summary" : "Create (Redis)" ,
"description" : "Create a new Redis database." ,
"operationId" : "create-database-redis" ,
"requestBody" : {
"description" : "Database data" ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"server_uuid" ,
"project_uuid" ,
"environment_name" ,
"environment_uuid"
] ,
"properties" : {
"server_uuid" : {
"type" : "string" ,
"description" : "UUID of the server"
} ,
"project_uuid" : {
"type" : "string" ,
"description" : "UUID of the project"
} ,
"environment_name" : {
"type" : "string" ,
"description" : "Name of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"environment_uuid" : {
"type" : "string" ,
"description" : "UUID of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"destination_uuid" : {
"type" : "string" ,
"description" : "UUID of the destination if the server has multiple destinations"
} ,
"redis_password" : {
"type" : "string" ,
"description" : "Redis password"
} ,
"redis_conf" : {
"type" : "string" ,
"description" : "Redis conf"
} ,
"name" : {
"type" : "string" ,
"description" : "Name of the database"
} ,
"description" : {
"type" : "string" ,
"description" : "Description of the database"
} ,
"image" : {
"type" : "string" ,
"description" : "Docker Image of the database"
} ,
"is_public" : {
"type" : "boolean" ,
"description" : "Is the database public?"
} ,
"public_port" : {
"type" : "integer" ,
"description" : "Public port of the database"
} ,
"limits_memory" : {
"type" : "string" ,
"description" : "Memory limit of the database"
} ,
"limits_memory_swap" : {
"type" : "string" ,
"description" : "Memory swap limit of the database"
} ,
"limits_memory_swappiness" : {
"type" : "integer" ,
"description" : "Memory swappiness of the database"
} ,
"limits_memory_reservation" : {
"type" : "string" ,
"description" : "Memory reservation of the database"
} ,
"limits_cpus" : {
"type" : "string" ,
"description" : "CPU limit of the database"
} ,
"limits_cpuset" : {
"type" : "string" ,
"description" : "CPU set of the database"
} ,
"limits_cpu_shares" : {
"type" : "integer" ,
"description" : "CPU shares of the database"
} ,
"instant_deploy" : {
"type" : "boolean" ,
"description" : "Instant deploy the database"
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Database updated"
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/databases\/keydb" : {
"post" : {
"tags" : [
"Databases"
] ,
"summary" : "Create (KeyDB)" ,
"description" : "Create a new KeyDB database." ,
"operationId" : "create-database-keydb" ,
"requestBody" : {
"description" : "Database data" ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"server_uuid" ,
"project_uuid" ,
"environment_name" ,
"environment_uuid"
] ,
"properties" : {
"server_uuid" : {
"type" : "string" ,
"description" : "UUID of the server"
} ,
"project_uuid" : {
"type" : "string" ,
"description" : "UUID of the project"
} ,
"environment_name" : {
"type" : "string" ,
"description" : "Name of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"environment_uuid" : {
"type" : "string" ,
"description" : "UUID of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"destination_uuid" : {
"type" : "string" ,
"description" : "UUID of the destination if the server has multiple destinations"
} ,
"keydb_password" : {
"type" : "string" ,
"description" : "KeyDB password"
} ,
"keydb_conf" : {
"type" : "string" ,
"description" : "KeyDB conf"
} ,
"name" : {
"type" : "string" ,
"description" : "Name of the database"
} ,
"description" : {
"type" : "string" ,
"description" : "Description of the database"
} ,
"image" : {
"type" : "string" ,
"description" : "Docker Image of the database"
} ,
"is_public" : {
"type" : "boolean" ,
"description" : "Is the database public?"
} ,
"public_port" : {
"type" : "integer" ,
"description" : "Public port of the database"
} ,
"limits_memory" : {
"type" : "string" ,
"description" : "Memory limit of the database"
} ,
"limits_memory_swap" : {
"type" : "string" ,
"description" : "Memory swap limit of the database"
} ,
"limits_memory_swappiness" : {
"type" : "integer" ,
"description" : "Memory swappiness of the database"
} ,
"limits_memory_reservation" : {
"type" : "string" ,
"description" : "Memory reservation of the database"
} ,
"limits_cpus" : {
"type" : "string" ,
"description" : "CPU limit of the database"
} ,
"limits_cpuset" : {
"type" : "string" ,
"description" : "CPU set of the database"
} ,
"limits_cpu_shares" : {
"type" : "integer" ,
"description" : "CPU shares of the database"
} ,
"instant_deploy" : {
"type" : "boolean" ,
"description" : "Instant deploy the database"
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Database updated"
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/databases\/mariadb" : {
"post" : {
"tags" : [
"Databases"
] ,
"summary" : "Create (MariaDB)" ,
"description" : "Create a new MariaDB database." ,
"operationId" : "create-database-mariadb" ,
"requestBody" : {
"description" : "Database data" ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"server_uuid" ,
"project_uuid" ,
"environment_name" ,
"environment_uuid"
] ,
"properties" : {
"server_uuid" : {
"type" : "string" ,
"description" : "UUID of the server"
} ,
"project_uuid" : {
"type" : "string" ,
"description" : "UUID of the project"
} ,
"environment_name" : {
"type" : "string" ,
"description" : "Name of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"environment_uuid" : {
"type" : "string" ,
"description" : "UUID of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"destination_uuid" : {
"type" : "string" ,
"description" : "UUID of the destination if the server has multiple destinations"
} ,
"mariadb_conf" : {
"type" : "string" ,
"description" : "MariaDB conf"
} ,
"mariadb_root_password" : {
"type" : "string" ,
"description" : "MariaDB root password"
} ,
"mariadb_user" : {
"type" : "string" ,
"description" : "MariaDB user"
} ,
"mariadb_password" : {
"type" : "string" ,
"description" : "MariaDB password"
} ,
"mariadb_database" : {
"type" : "string" ,
"description" : "MariaDB database"
} ,
"name" : {
"type" : "string" ,
"description" : "Name of the database"
} ,
"description" : {
"type" : "string" ,
"description" : "Description of the database"
} ,
"image" : {
"type" : "string" ,
"description" : "Docker Image of the database"
} ,
"is_public" : {
"type" : "boolean" ,
"description" : "Is the database public?"
} ,
"public_port" : {
"type" : "integer" ,
"description" : "Public port of the database"
} ,
"limits_memory" : {
"type" : "string" ,
"description" : "Memory limit of the database"
} ,
"limits_memory_swap" : {
"type" : "string" ,
"description" : "Memory swap limit of the database"
} ,
"limits_memory_swappiness" : {
"type" : "integer" ,
"description" : "Memory swappiness of the database"
} ,
"limits_memory_reservation" : {
"type" : "string" ,
"description" : "Memory reservation of the database"
} ,
"limits_cpus" : {
"type" : "string" ,
"description" : "CPU limit of the database"
} ,
"limits_cpuset" : {
"type" : "string" ,
"description" : "CPU set of the database"
} ,
"limits_cpu_shares" : {
"type" : "integer" ,
"description" : "CPU shares of the database"
} ,
"instant_deploy" : {
"type" : "boolean" ,
"description" : "Instant deploy the database"
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Database updated"
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/databases\/mysql" : {
"post" : {
"tags" : [
"Databases"
] ,
"summary" : "Create (MySQL)" ,
"description" : "Create a new MySQL database." ,
"operationId" : "create-database-mysql" ,
"requestBody" : {
"description" : "Database data" ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"server_uuid" ,
"project_uuid" ,
"environment_name" ,
"environment_uuid"
] ,
"properties" : {
"server_uuid" : {
"type" : "string" ,
"description" : "UUID of the server"
} ,
"project_uuid" : {
"type" : "string" ,
"description" : "UUID of the project"
} ,
"environment_name" : {
"type" : "string" ,
"description" : "Name of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"environment_uuid" : {
"type" : "string" ,
"description" : "UUID of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"destination_uuid" : {
"type" : "string" ,
"description" : "UUID of the destination if the server has multiple destinations"
} ,
"mysql_root_password" : {
"type" : "string" ,
"description" : "MySQL root password"
} ,
"mysql_password" : {
"type" : "string" ,
"description" : "MySQL password"
} ,
"mysql_user" : {
"type" : "string" ,
"description" : "MySQL user"
} ,
"mysql_database" : {
"type" : "string" ,
"description" : "MySQL database"
} ,
"mysql_conf" : {
"type" : "string" ,
"description" : "MySQL conf"
} ,
"name" : {
"type" : "string" ,
"description" : "Name of the database"
} ,
"description" : {
"type" : "string" ,
"description" : "Description of the database"
} ,
"image" : {
"type" : "string" ,
"description" : "Docker Image of the database"
} ,
"is_public" : {
"type" : "boolean" ,
"description" : "Is the database public?"
} ,
"public_port" : {
"type" : "integer" ,
"description" : "Public port of the database"
} ,
"limits_memory" : {
"type" : "string" ,
"description" : "Memory limit of the database"
} ,
"limits_memory_swap" : {
"type" : "string" ,
"description" : "Memory swap limit of the database"
} ,
"limits_memory_swappiness" : {
"type" : "integer" ,
"description" : "Memory swappiness of the database"
} ,
"limits_memory_reservation" : {
"type" : "string" ,
"description" : "Memory reservation of the database"
} ,
"limits_cpus" : {
"type" : "string" ,
"description" : "CPU limit of the database"
} ,
"limits_cpuset" : {
"type" : "string" ,
"description" : "CPU set of the database"
} ,
"limits_cpu_shares" : {
"type" : "integer" ,
"description" : "CPU shares of the database"
} ,
"instant_deploy" : {
"type" : "boolean" ,
"description" : "Instant deploy the database"
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Database updated"
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/databases\/mongodb" : {
"post" : {
"tags" : [
"Databases"
] ,
"summary" : "Create (MongoDB)" ,
"description" : "Create a new MongoDB database." ,
"operationId" : "create-database-mongodb" ,
"requestBody" : {
"description" : "Database data" ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"server_uuid" ,
"project_uuid" ,
"environment_name" ,
"environment_uuid"
] ,
"properties" : {
"server_uuid" : {
"type" : "string" ,
"description" : "UUID of the server"
} ,
"project_uuid" : {
"type" : "string" ,
"description" : "UUID of the project"
} ,
"environment_name" : {
"type" : "string" ,
"description" : "Name of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"environment_uuid" : {
"type" : "string" ,
"description" : "UUID of the environment. You need to provide at least one of environment_name or environment_uuid."
} ,
"destination_uuid" : {
"type" : "string" ,
"description" : "UUID of the destination if the server has multiple destinations"
} ,
"mongo_conf" : {
"type" : "string" ,
"description" : "MongoDB conf"
} ,
"mongo_initdb_root_username" : {
"type" : "string" ,
"description" : "MongoDB initdb root username"
} ,
"name" : {
"type" : "string" ,
"description" : "Name of the database"
} ,
"description" : {
"type" : "string" ,
"description" : "Description of the database"
} ,
"image" : {
"type" : "string" ,
"description" : "Docker Image of the database"
} ,
"is_public" : {
"type" : "boolean" ,
"description" : "Is the database public?"
} ,
"public_port" : {
"type" : "integer" ,
"description" : "Public port of the database"
} ,
"limits_memory" : {
"type" : "string" ,
"description" : "Memory limit of the database"
} ,
"limits_memory_swap" : {
"type" : "string" ,
"description" : "Memory swap limit of the database"
} ,
"limits_memory_swappiness" : {
"type" : "integer" ,
"description" : "Memory swappiness of the database"
} ,
"limits_memory_reservation" : {
"type" : "string" ,
"description" : "Memory reservation of the database"
} ,
"limits_cpus" : {
"type" : "string" ,
"description" : "CPU limit of the database"
} ,
"limits_cpuset" : {
"type" : "string" ,
"description" : "CPU set of the database"
} ,
"limits_cpu_shares" : {
"type" : "integer" ,
"description" : "CPU shares of the database"
} ,
"instant_deploy" : {
"type" : "boolean" ,
"description" : "Instant deploy the database"
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Database updated"
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/databases\/{uuid}\/backups\/{scheduled_backup_uuid}\/executions\/{execution_uuid}" : {
"delete" : {
"tags" : [
"Databases"
] ,
"summary" : "Delete backup execution" ,
"description" : "Deletes a specific backup execution." ,
"operationId" : "delete-backup-execution-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the database" ,
"required" : true ,
"schema" : {
"type" : "string"
}
} ,
{
"name" : "scheduled_backup_uuid" ,
"in" : "path" ,
"description" : "UUID of the backup configuration" ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-12-11 08:41:54 +00:00
}
} ,
{
"name" : "execution_uuid" ,
"in" : "path" ,
"description" : "UUID of the backup execution to delete" ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-12-11 08:41:54 +00:00
}
} ,
{
"name" : "delete_s3" ,
"in" : "query" ,
"description" : "Whether to delete the backup from S3" ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : false
}
}
] ,
"responses" : {
"200" : {
"description" : "Backup execution deleted." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Backup execution deleted."
}
} ,
"type" : "object"
}
}
}
} ,
"404" : {
"description" : "Backup execution not found." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Backup execution not found."
}
} ,
"type" : "object"
}
}
}
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/databases\/{uuid}\/backups\/{scheduled_backup_uuid}\/executions" : {
"get" : {
"tags" : [
"Databases"
] ,
"summary" : "List backup executions" ,
"description" : "Get all executions for a specific backup configuration." ,
"operationId" : "list-backup-executions" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the database" ,
"required" : true ,
"schema" : {
"type" : "string"
}
} ,
{
"name" : "scheduled_backup_uuid" ,
"in" : "path" ,
"description" : "UUID of the backup configuration" ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-12-11 08:41:54 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "List of backup executions" ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"executions" : {
"type" : "array" ,
"items" : {
"properties" : {
"uuid" : {
"type" : "string"
} ,
"filename" : {
"type" : "string"
} ,
"size" : {
"type" : "integer"
} ,
"created_at" : {
"type" : "string"
} ,
"message" : {
"type" : "string"
} ,
"status" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
} ,
"type" : "object"
}
}
}
} ,
"404" : {
"description" : "Backup configuration not found."
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/databases\/{uuid}\/start" : {
"get" : {
"tags" : [
"Databases"
] ,
"summary" : "Start" ,
"description" : "Start database. `Post` request is also accepted." ,
"operationId" : "start-database-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the database." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-12-11 08:41:54 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Start database." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Database starting request queued."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/databases\/{uuid}\/stop" : {
"get" : {
"tags" : [
"Databases"
] ,
"summary" : "Stop" ,
"description" : "Stop database. `Post` request is also accepted." ,
"operationId" : "stop-database-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the database." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-12-11 08:41:54 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Stop database." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Database stopping request queued."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/databases\/{uuid}\/restart" : {
"get" : {
2024-11-12 12:49:37 +00:00
"tags" : [
"Databases"
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Restart" ,
"description" : "Restart database. `Post` request is also accepted." ,
"operationId" : "restart-database-by-uuid" ,
2024-11-12 12:49:37 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
2025-12-11 08:41:54 +00:00
"description" : "UUID of the database." ,
2024-11-12 12:49:37 +00:00
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Restart database." ,
2024-11-12 12:49:37 +00:00
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
2025-10-12 12:20:45 +00:00
"message" : {
2024-11-12 12:49:37 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "Database restaring request queued."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
2025-12-11 08:41:54 +00:00
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
2024-11-12 12:49:37 +00:00
"404" : {
2025-12-11 08:41:54 +00:00
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/deployments" : {
"get" : {
"tags" : [
"Deployments"
] ,
"summary" : "List" ,
"description" : "List currently running deployments" ,
"operationId" : "list-deployments" ,
"responses" : {
"200" : {
"description" : "Get all currently running deployments." ,
2025-09-30 09:19:39 +00:00
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/ApplicationDeploymentQueue"
}
2025-09-30 09:19:39 +00:00
}
}
}
2025-12-11 08:41:54 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/deployments\/{uuid}" : {
2024-11-12 12:49:37 +00:00
"get" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"Deployments"
2024-11-12 12:49:37 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Get" ,
"description" : "Get deployment by UUID." ,
"operationId" : "get-deployment-by-uuid" ,
2024-11-12 12:49:37 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
2025-12-11 08:41:54 +00:00
"description" : "Deployment UUID" ,
2025-09-30 09:19:39 +00:00
"required" : true ,
"schema" : {
"type" : "string"
}
2024-11-12 12:49:37 +00:00
}
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Get deployment by UUID." ,
2025-09-30 09:19:39 +00:00
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"$ref" : "#\/components\/schemas\/ApplicationDeploymentQueue"
2025-09-30 09:19:39 +00:00
}
}
}
} ,
2025-12-11 08:41:54 +00:00
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
2025-09-30 09:19:39 +00:00
"404" : {
2025-12-11 08:41:54 +00:00
"$ref" : "#\/components\/responses\/404"
2025-09-30 09:19:39 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/deployments\/{uuid}\/cancel" : {
"post" : {
2025-09-30 09:19:39 +00:00
"tags" : [
2025-12-11 08:41:54 +00:00
"Deployments"
2025-09-30 09:19:39 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Cancel" ,
"description" : "Cancel a deployment by UUID." ,
"operationId" : "cancel-deployment-by-uuid" ,
2025-09-30 09:19:39 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
2025-12-11 08:41:54 +00:00
"description" : "Deployment UUID" ,
2025-09-30 09:19:39 +00:00
"required" : true ,
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "string"
2025-09-30 09:19:39 +00:00
}
}
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Deployment cancelled successfully." ,
2025-09-30 09:19:39 +00:00
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "Deployment cancelled successfully."
} ,
"deployment_uuid" : {
"type" : "string" ,
"example" : "cm37r6cqj000008jm0veg5tkm"
} ,
"status" : {
"type" : "string" ,
"example" : "cancelled-by-user"
}
} ,
"type" : "object"
}
}
}
} ,
"400" : {
"description" : "Deployment cannot be cancelled (already finished\/failed\/cancelled)." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Deployment cannot be cancelled. Current status: finished"
2025-09-30 09:19:39 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
2025-12-11 08:41:54 +00:00
"403" : {
"description" : "User doesn't have permission to cancel this deployment." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "You do not have permission to cancel this deployment."
}
} ,
"type" : "object"
}
}
}
2025-09-30 09:19:39 +00:00
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/deploy" : {
2025-09-30 09:19:39 +00:00
"get" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"Deployments"
2025-09-30 09:19:39 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Deploy" ,
"description" : "Deploy by tag or uuid. `Post` request also accepted with `uuid` and `tag` json body." ,
"operationId" : "deploy-by-tag-or-uuid" ,
2025-09-30 09:19:39 +00:00
"parameters" : [
2025-12-11 08:41:54 +00:00
{
"name" : "tag" ,
"in" : "query" ,
"description" : "Tag name(s). Comma separated list is also accepted." ,
"schema" : {
"type" : "string"
}
} ,
2025-09-30 09:19:39 +00:00
{
"name" : "uuid" ,
2025-12-11 08:41:54 +00:00
"in" : "query" ,
"description" : "Resource UUID(s). Comma separated list is also accepted." ,
"schema" : {
"type" : "string"
}
} ,
{
"name" : "force" ,
"in" : "query" ,
"description" : "Force rebuild (without cache)" ,
"schema" : {
"type" : "boolean"
}
} ,
{
"name" : "pr" ,
"in" : "query" ,
"description" : "Pull Request Id for deploying specific PR builds. Cannot be used with tag parameter." ,
2025-09-30 09:19:39 +00:00
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "integer"
2025-09-30 09:19:39 +00:00
}
}
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Get deployment(s) UUID's" ,
2024-11-12 12:49:37 +00:00
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
2025-12-11 08:41:54 +00:00
"deployments" : {
"type" : "array" ,
"items" : {
"properties" : {
"message" : {
"type" : "string"
} ,
"resource_uuid" : {
"type" : "string"
} ,
"deployment_uuid" : {
"type" : "string"
}
} ,
"type" : "object"
}
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/deployments\/applications\/{uuid}" : {
2024-11-12 12:49:37 +00:00
"get" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"Deployments"
2024-11-12 12:49:37 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "List application deployments" ,
"description" : "List application deployments by using the app uuid" ,
"operationId" : "list-deployments-by-app-uuid" ,
2024-11-12 12:49:37 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
2025-12-11 08:41:54 +00:00
"description" : "UUID of the application." ,
2024-11-12 12:49:37 +00:00
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
{
"name" : "skip" ,
"in" : "query" ,
"description" : "Number of records to skip." ,
"required" : false ,
"schema" : {
"type" : "integer" ,
"default" : 0 ,
"minimum" : 0
}
2025-09-30 09:19:39 +00:00
} ,
{
2025-12-11 08:41:54 +00:00
"name" : "take" ,
"in" : "query" ,
"description" : "Number of records to take." ,
"required" : false ,
"schema" : {
"type" : "integer" ,
"default" : 10 ,
"minimum" : 1
}
2025-09-30 09:19:39 +00:00
}
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "List application deployments by using the app uuid." ,
2025-09-30 09:19:39 +00:00
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
2025-12-11 08:41:54 +00:00
"$ref" : "#\/components\/schemas\/Application"
2025-09-30 09:19:39 +00:00
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/github-apps" : {
2025-09-30 09:19:39 +00:00
"get" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"GitHub Apps"
2025-09-30 09:19:39 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "List" ,
"description" : "List all GitHub apps." ,
"operationId" : "list-github-apps" ,
2025-09-30 09:19:39 +00:00
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "List of GitHub apps." ,
2025-09-30 09:19:39 +00:00
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "array" ,
"items" : {
"properties" : {
"id" : {
"type" : "integer"
} ,
"uuid" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
"organization" : {
"type" : "string" ,
"nullable" : true
} ,
"api_url" : {
"type" : "string"
} ,
"html_url" : {
"type" : "string"
} ,
"custom_user" : {
"type" : "string"
} ,
"custom_port" : {
"type" : "integer"
} ,
"app_id" : {
"type" : "integer"
} ,
"installation_id" : {
"type" : "integer"
} ,
"client_id" : {
"type" : "string"
} ,
"private_key_id" : {
"type" : "integer"
} ,
"is_system_wide" : {
"type" : "boolean"
} ,
"is_public" : {
"type" : "boolean"
} ,
"team_id" : {
"type" : "integer"
} ,
"type" : {
"type" : "string"
}
} ,
"type" : "object"
}
2025-09-30 09:19:39 +00:00
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-12-11 08:41:54 +00:00
} ,
2025-10-20 11:57:43 +00:00
"post" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"GitHub Apps"
2025-10-20 11:57:43 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Create GitHub App" ,
"description" : "Create a new GitHub app." ,
"operationId" : "create-github-app" ,
"requestBody" : {
"description" : "GitHub app creation payload." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"name" ,
"api_url" ,
"html_url" ,
"app_id" ,
"installation_id" ,
"client_id" ,
"client_secret" ,
"private_key_uuid"
] ,
"properties" : {
"name" : {
"type" : "string" ,
"description" : "Name of the GitHub app."
} ,
"organization" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Organization to associate the app with."
} ,
"api_url" : {
"type" : "string" ,
"description" : "API URL for the GitHub app (e.g., https:\/\/api.github.com)."
} ,
"html_url" : {
"type" : "string" ,
"description" : "HTML URL for the GitHub app (e.g., https:\/\/github.com)."
} ,
"custom_user" : {
"type" : "string" ,
"description" : "Custom user for SSH access (default: git)."
} ,
"custom_port" : {
"type" : "integer" ,
"description" : "Custom port for SSH access (default: 22)."
} ,
"app_id" : {
"type" : "integer" ,
"description" : "GitHub App ID from GitHub."
} ,
"installation_id" : {
"type" : "integer" ,
"description" : "GitHub Installation ID."
} ,
"client_id" : {
"type" : "string" ,
"description" : "GitHub OAuth App Client ID."
} ,
"client_secret" : {
"type" : "string" ,
"description" : "GitHub OAuth App Client Secret."
} ,
"webhook_secret" : {
"type" : "string" ,
"description" : "Webhook secret for GitHub webhooks."
} ,
"private_key_uuid" : {
"type" : "string" ,
"description" : "UUID of an existing private key for GitHub App authentication."
} ,
"is_system_wide" : {
"type" : "boolean" ,
"description" : "Is this app system-wide (cloud only)."
}
} ,
"type" : "object"
}
2025-10-20 11:57:43 +00:00
}
}
2025-12-11 08:41:54 +00:00
} ,
2025-10-20 11:57:43 +00:00
"responses" : {
2025-12-11 08:41:54 +00:00
"201" : {
"description" : "GitHub app created successfully." ,
2025-10-20 11:57:43 +00:00
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
2025-12-11 08:41:54 +00:00
"id" : {
"type" : "integer"
2025-10-20 11:57:43 +00:00
} ,
2025-12-11 08:41:54 +00:00
"uuid" : {
"type" : "string"
2025-10-20 11:57:43 +00:00
} ,
2025-12-11 08:41:54 +00:00
"name" : {
"type" : "string"
} ,
"organization" : {
2025-10-20 11:57:43 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"nullable" : true
} ,
"api_url" : {
"type" : "string"
} ,
"html_url" : {
"type" : "string"
} ,
"custom_user" : {
"type" : "string"
} ,
"custom_port" : {
"type" : "integer"
} ,
"app_id" : {
"type" : "integer"
} ,
"installation_id" : {
"type" : "integer"
} ,
"client_id" : {
"type" : "string"
} ,
"private_key_id" : {
"type" : "integer"
} ,
"is_system_wide" : {
"type" : "boolean"
} ,
"team_id" : {
"type" : "integer"
2025-10-20 11:57:43 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"400" : {
2025-12-11 08:41:54 +00:00
"$ref" : "#\/components\/responses\/400"
2025-10-20 11:57:43 +00:00
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
2025-12-11 08:41:54 +00:00
"422" : {
"$ref" : "#\/components\/responses\/422"
2025-10-20 11:57:43 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/github-apps\/{github_app_id}\/repositories" : {
2025-09-30 09:19:39 +00:00
"get" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"GitHub Apps"
2025-09-30 09:19:39 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Load Repositories for a GitHub App" ,
"description" : "Fetch repositories from GitHub for a given GitHub app." ,
"operationId" : "load-repositories" ,
2025-09-30 09:19:39 +00:00
"parameters" : [
{
2025-12-11 08:41:54 +00:00
"name" : "github_app_id" ,
"in" : "path" ,
"description" : "GitHub App ID" ,
"required" : true ,
2025-09-30 09:19:39 +00:00
"schema" : {
"type" : "integer"
}
}
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Repositories loaded successfully." ,
2025-09-30 09:19:39 +00:00
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
2025-12-11 08:41:54 +00:00
"repositories" : {
2025-09-30 09:19:39 +00:00
"type" : "array" ,
"items" : {
"type" : "object"
}
}
} ,
"type" : "object"
}
}
}
} ,
2025-12-11 08:41:54 +00:00
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
2025-09-30 09:19:39 +00:00
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
2025-12-11 08:41:54 +00:00
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-09-30 09:19:39 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/github-apps\/{github_app_id}\/repositories\/{owner}\/{repo}\/branches" : {
2025-09-30 09:19:39 +00:00
"get" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"GitHub Apps"
2025-09-30 09:19:39 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Load Branches for a GitHub Repository" ,
"description" : "Fetch branches from GitHub for a given repository." ,
"operationId" : "load-branches" ,
2025-09-30 09:19:39 +00:00
"parameters" : [
{
2025-12-11 08:41:54 +00:00
"name" : "github_app_id" ,
2025-09-30 09:19:39 +00:00
"in" : "path" ,
2025-12-11 08:41:54 +00:00
"description" : "GitHub App ID" ,
2025-09-30 09:19:39 +00:00
"required" : true ,
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "integer"
2025-09-30 09:19:39 +00:00
}
} ,
{
2025-12-11 08:41:54 +00:00
"name" : "owner" ,
"in" : "path" ,
"description" : "Repository owner" ,
"required" : true ,
2025-09-30 09:19:39 +00:00
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "string"
2025-09-30 09:19:39 +00:00
}
} ,
{
2025-12-11 08:41:54 +00:00
"name" : "repo" ,
"in" : "path" ,
"description" : "Repository name" ,
"required" : true ,
2025-09-30 09:19:39 +00:00
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "string"
2025-09-30 09:19:39 +00:00
}
}
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "Branches loaded successfully." ,
2025-09-30 09:19:39 +00:00
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"properties" : {
"branches" : {
"type" : "array" ,
"items" : {
"type" : "object"
}
}
} ,
"type" : "object"
2025-09-30 09:19:39 +00:00
}
}
}
} ,
2025-12-11 08:41:54 +00:00
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
2025-09-30 09:19:39 +00:00
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
2025-12-11 08:41:54 +00:00
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-09-30 09:19:39 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/github-apps\/{github_app_id}" : {
"delete" : {
2025-10-20 11:57:43 +00:00
"tags" : [
"GitHub Apps"
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Delete GitHub App" ,
"description" : "Delete a GitHub app if it's not being used by any applications." ,
"operationId" : "deleteGithubApp" ,
"parameters" : [
{
"name" : "github_app_id" ,
"in" : "path" ,
"description" : "GitHub App ID" ,
"required" : true ,
"schema" : {
"type" : "integer"
}
}
] ,
2025-10-20 11:57:43 +00:00
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "GitHub app deleted successfully" ,
2025-10-20 11:57:43 +00:00
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"properties" : {
"message" : {
"type" : "string" ,
"example" : "GitHub app deleted successfully"
}
} ,
"type" : "object"
2025-10-20 11:57:43 +00:00
}
}
}
} ,
"401" : {
2025-12-11 08:41:54 +00:00
"description" : "Unauthorized"
2025-10-20 11:57:43 +00:00
} ,
2025-12-11 08:41:54 +00:00
"404" : {
"description" : "GitHub app not found"
} ,
"409" : {
"description" : "Conflict - GitHub app is in use" ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "This GitHub app is being used by 5 application(s). Please delete all applications first."
}
} ,
"type" : "object"
}
}
}
2025-10-20 11:57:43 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
2025-12-11 08:41:54 +00:00
"patch" : {
2025-09-30 09:19:39 +00:00
"tags" : [
"GitHub Apps"
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Update GitHub App" ,
"description" : "Update an existing GitHub app." ,
"operationId" : "updateGithubApp" ,
"parameters" : [
{
"name" : "github_app_id" ,
"in" : "path" ,
"description" : "GitHub App ID" ,
"required" : true ,
"schema" : {
"type" : "integer"
}
}
] ,
2025-09-30 09:19:39 +00:00
"requestBody" : {
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"name" : {
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "GitHub App name"
2025-09-30 09:19:39 +00:00
} ,
"organization" : {
"type" : "string" ,
"nullable" : true ,
2025-12-11 08:41:54 +00:00
"description" : "GitHub organization"
2025-09-30 09:19:39 +00:00
} ,
"api_url" : {
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "GitHub API URL"
2025-09-30 09:19:39 +00:00
} ,
"html_url" : {
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "GitHub HTML URL"
2025-09-30 09:19:39 +00:00
} ,
"custom_user" : {
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Custom user for SSH"
2025-09-30 09:19:39 +00:00
} ,
"custom_port" : {
"type" : "integer" ,
2025-12-11 08:41:54 +00:00
"description" : "Custom port for SSH"
2025-09-30 09:19:39 +00:00
} ,
"app_id" : {
"type" : "integer" ,
2025-12-11 08:41:54 +00:00
"description" : "GitHub App ID"
2025-09-30 09:19:39 +00:00
} ,
"installation_id" : {
"type" : "integer" ,
2025-12-11 08:41:54 +00:00
"description" : "GitHub Installation ID"
2025-09-30 09:19:39 +00:00
} ,
"client_id" : {
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "GitHub Client ID"
2025-09-30 09:19:39 +00:00
} ,
"client_secret" : {
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "GitHub Client Secret"
2025-09-30 09:19:39 +00:00
} ,
"webhook_secret" : {
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "GitHub Webhook Secret"
2025-09-30 09:19:39 +00:00
} ,
"private_key_uuid" : {
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Private key UUID"
2025-09-30 09:19:39 +00:00
} ,
"is_system_wide" : {
"type" : "boolean" ,
2025-12-11 08:41:54 +00:00
"description" : "Is system wide (non-cloud instances only)"
2025-09-30 09:19:39 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
2025-12-11 08:41:54 +00:00
"200" : {
"description" : "GitHub app updated successfully" ,
2025-09-30 09:19:39 +00:00
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
2025-12-11 08:41:54 +00:00
"message" : {
2025-09-30 09:19:39 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "GitHub app updated successfully"
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"data" : {
"type" : "object" ,
"description" : "Updated GitHub app data"
2025-09-30 09:19:39 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
2025-12-11 08:41:54 +00:00
"description" : "Unauthorized"
} ,
"404" : {
"description" : "GitHub app not found"
2025-09-30 09:19:39 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/hetzner\/locations" : {
"get" : {
"tags" : [
"Hetzner"
] ,
"summary" : "Get Hetzner Locations" ,
"description" : "Get all available Hetzner datacenter locations." ,
"operationId" : "get-hetzner-locations" ,
"parameters" : [
2025-12-11 11:08:12 +00:00
{
"name" : "cloud_provider_token_uuid" ,
"in" : "query" ,
"description" : "Cloud provider token UUID. Required if cloud_provider_token_id is not provided." ,
"required" : false ,
"schema" : {
"type" : "string"
}
} ,
2025-12-11 08:41:54 +00:00
{
"name" : "cloud_provider_token_id" ,
"in" : "query" ,
2025-12-11 11:08:12 +00:00
"description" : "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID." ,
"required" : false ,
"deprecated" : true ,
2025-12-11 08:41:54 +00:00
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
"description" : "List of Hetzner locations." ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"properties" : {
"id" : {
"type" : "integer"
} ,
"name" : {
"type" : "string"
} ,
"description" : {
"type" : "string"
} ,
"country" : {
"type" : "string"
} ,
"city" : {
"type" : "string"
} ,
"latitude" : {
"type" : "number"
} ,
"longitude" : {
"type" : "number"
}
} ,
"type" : "object"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/hetzner\/server-types" : {
2024-11-12 12:49:37 +00:00
"get" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"Hetzner"
2025-09-30 09:19:39 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Get Hetzner Server Types" ,
"description" : "Get all available Hetzner server types (instance sizes)." ,
"operationId" : "get-hetzner-server-types" ,
2025-09-30 09:19:39 +00:00
"parameters" : [
2025-12-11 11:08:12 +00:00
{
"name" : "cloud_provider_token_uuid" ,
"in" : "query" ,
"description" : "Cloud provider token UUID. Required if cloud_provider_token_id is not provided." ,
"required" : false ,
"schema" : {
"type" : "string"
}
} ,
2025-09-30 09:19:39 +00:00
{
2025-12-11 08:41:54 +00:00
"name" : "cloud_provider_token_id" ,
"in" : "query" ,
2025-12-11 11:08:12 +00:00
"description" : "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID." ,
"required" : false ,
"deprecated" : true ,
2025-09-30 09:19:39 +00:00
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "string"
2025-09-30 09:19:39 +00:00
}
}
2024-11-12 12:49:37 +00:00
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "List of Hetzner server types." ,
2024-11-12 12:49:37 +00:00
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "array" ,
"items" : {
"properties" : {
"id" : {
"type" : "integer"
} ,
"name" : {
"type" : "string"
} ,
"description" : {
"type" : "string"
} ,
"cores" : {
"type" : "integer"
} ,
"memory" : {
"type" : "number"
} ,
"disk" : {
"type" : "integer"
} ,
"prices" : {
2025-12-11 11:08:12 +00:00
"type" : "array" ,
"items" : {
"type" : "object" ,
"properties" : {
"location" : {
"type" : "string" ,
"description" : "Datacenter location name"
} ,
"price_hourly" : {
"type" : "object" ,
"properties" : {
"net" : {
"type" : "string"
} ,
"gross" : {
"type" : "string"
}
}
} ,
"price_monthly" : {
"type" : "object" ,
"properties" : {
"net" : {
"type" : "string"
} ,
"gross" : {
"type" : "string"
}
}
}
}
}
2025-09-30 09:19:39 +00:00
}
2025-12-11 08:41:54 +00:00
} ,
"type" : "object"
}
2024-11-12 12:49:37 +00:00
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
2025-09-30 09:19:39 +00:00
"404" : {
"$ref" : "#\/components\/responses\/404"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/hetzner\/images" : {
2024-11-12 12:49:37 +00:00
"get" : {
"tags" : [
2025-12-11 08:41:54 +00:00
"Hetzner"
2024-11-12 12:49:37 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Get Hetzner Images" ,
"description" : "Get all available Hetzner system images (operating systems)." ,
"operationId" : "get-hetzner-images" ,
2024-11-12 12:49:37 +00:00
"parameters" : [
2025-12-11 11:12:43 +00:00
{
"name" : "cloud_provider_token_uuid" ,
"in" : "query" ,
"description" : "Cloud provider token UUID. Required if cloud_provider_token_id is not provided." ,
"required" : false ,
"schema" : {
"type" : "string"
}
} ,
2024-11-12 12:49:37 +00:00
{
2025-12-11 08:41:54 +00:00
"name" : "cloud_provider_token_id" ,
"in" : "query" ,
2025-12-11 11:12:43 +00:00
"description" : "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID." ,
"required" : false ,
"deprecated" : true ,
2024-11-12 12:49:37 +00:00
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "List of Hetzner images." ,
2024-11-12 12:49:37 +00:00
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "array" ,
"items" : {
"properties" : {
"id" : {
"type" : "integer"
} ,
"name" : {
"type" : "string"
} ,
"description" : {
"type" : "string"
} ,
"type" : {
"type" : "string"
} ,
"os_flavor" : {
"type" : "string"
} ,
"os_version" : {
"type" : "string"
} ,
"architecture" : {
"type" : "string"
2025-09-30 09:19:39 +00:00
}
2025-12-11 08:41:54 +00:00
} ,
"type" : "object"
}
2024-11-12 12:49:37 +00:00
}
}
}
} ,
2025-09-30 09:19:39 +00:00
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
2024-11-12 12:49:37 +00:00
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-12-11 08:41:54 +00:00
"\/hetzner\/ssh-keys" : {
"get" : {
2024-11-12 12:49:37 +00:00
"tags" : [
2025-12-11 08:41:54 +00:00
"Hetzner"
2024-11-12 12:49:37 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Get Hetzner SSH Keys" ,
"description" : "Get all SSH keys stored in the Hetzner account." ,
"operationId" : "get-hetzner-ssh-keys" ,
2024-11-12 12:49:37 +00:00
"parameters" : [
2025-12-11 11:12:43 +00:00
{
"name" : "cloud_provider_token_uuid" ,
"in" : "query" ,
"description" : "Cloud provider token UUID. Required if cloud_provider_token_id is not provided." ,
"required" : false ,
"schema" : {
"type" : "string"
}
} ,
2024-11-12 12:49:37 +00:00
{
2025-12-11 08:41:54 +00:00
"name" : "cloud_provider_token_id" ,
"in" : "query" ,
2025-12-11 11:12:43 +00:00
"description" : "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID." ,
"required" : false ,
"deprecated" : true ,
2025-03-27 16:27:14 +00:00
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "string"
2025-03-27 16:27:14 +00:00
}
2024-11-12 12:49:37 +00:00
}
] ,
"responses" : {
"200" : {
2025-12-11 08:41:54 +00:00
"description" : "List of Hetzner SSH keys." ,
2024-11-12 12:49:37 +00:00
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"type" : "array" ,
"items" : {
"properties" : {
"id" : {
"type" : "integer"
} ,
"name" : {
"type" : "string"
} ,
"fingerprint" : {
"type" : "string"
} ,
"public_key" : {
"type" : "string"
}
} ,
"type" : "object"
}
2024-11-12 12:49:37 +00:00
}
}
}
} ,
"401" : {
2025-12-11 08:41:54 +00:00
"$ref" : "#\/components\/responses\/401"
2024-11-12 12:49:37 +00:00
} ,
2025-09-30 09:19:39 +00:00
"404" : {
2025-12-11 08:41:54 +00:00
"$ref" : "#\/components\/responses\/404"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-12-11 08:41:54 +00:00
}
} ,
"\/servers\/hetzner" : {
"post" : {
2025-03-31 15:38:54 +00:00
"tags" : [
2025-12-11 08:41:54 +00:00
"Hetzner"
2025-04-13 13:48:00 +00:00
] ,
2025-12-11 08:41:54 +00:00
"summary" : "Create Hetzner Server" ,
"description" : "Create a new server on Hetzner and register it in Coolify." ,
"operationId" : "create-hetzner-server" ,
2025-09-30 09:19:39 +00:00
"requestBody" : {
2025-12-11 08:41:54 +00:00
"description" : "Hetzner server creation parameters" ,
2025-09-30 09:19:39 +00:00
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
2025-12-11 08:41:54 +00:00
"required" : [
"location" ,
"server_type" ,
"image" ,
"private_key_uuid"
] ,
2025-09-30 09:19:39 +00:00
"properties" : {
2025-12-11 11:12:43 +00:00
"cloud_provider_token_uuid" : {
"type" : "string" ,
"example" : "abc123" ,
"description" : "Cloud provider token UUID. Required if cloud_provider_token_id is not provided."
} ,
2025-12-11 08:41:54 +00:00
"cloud_provider_token_id" : {
2025-09-30 09:19:39 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "abc123" ,
2025-12-11 11:12:43 +00:00
"description" : "Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID." ,
"deprecated" : true
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"location" : {
2025-09-30 09:19:39 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "nbg1" ,
"description" : "Hetzner location name"
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"server_type" : {
2025-09-30 09:19:39 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "cx11" ,
"description" : "Hetzner server type name"
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"image" : {
2025-09-30 09:19:39 +00:00
"type" : "integer" ,
2025-12-11 08:41:54 +00:00
"example" : 15512617 ,
"description" : "Hetzner image ID"
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"name" : {
2025-09-30 09:19:39 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "my-server" ,
"description" : "Server name (auto-generated if not provided)"
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"private_key_uuid" : {
2025-09-30 09:19:39 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "xyz789" ,
"description" : "Private key UUID"
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"enable_ipv4" : {
"type" : "boolean" ,
"example" : true ,
"description" : "Enable IPv4 (default: true)"
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"enable_ipv6" : {
"type" : "boolean" ,
"example" : true ,
"description" : "Enable IPv6 (default: true)"
} ,
"hetzner_ssh_key_ids" : {
"type" : "array" ,
"items" : {
"type" : "integer"
} ,
"description" : "Additional Hetzner SSH key IDs"
} ,
"cloud_init_script" : {
2025-09-30 09:19:39 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"description" : "Cloud-init YAML script (optional)"
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"instant_validate" : {
2025-09-30 09:19:39 +00:00
"type" : "boolean" ,
2025-12-11 08:41:54 +00:00
"example" : false ,
"description" : "Validate server immediately after creation"
2025-09-30 09:19:39 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
2025-03-31 15:38:54 +00:00
"responses" : {
2025-12-11 08:41:54 +00:00
"201" : {
"description" : "Hetzner server created." ,
2025-03-31 15:38:54 +00:00
"content" : {
"application\/json" : {
"schema" : {
2025-09-30 09:19:39 +00:00
"properties" : {
2025-12-11 08:41:54 +00:00
"uuid" : {
2025-09-30 09:19:39 +00:00
"type" : "string" ,
2025-12-11 08:41:54 +00:00
"example" : "og888os" ,
"description" : "The UUID of the server."
2025-09-30 09:19:39 +00:00
} ,
2025-12-11 08:41:54 +00:00
"hetzner_server_id" : {
"type" : "integer" ,
"description" : "The Hetzner server ID."
} ,
"ip" : {
"type" : "string" ,
"description" : "The server IP address."
2025-09-30 09:19:39 +00:00
}
} ,
"type" : "object"
2025-03-31 15:38:54 +00:00
}
}
}
} ,
"401" : {
2025-12-11 08:41:54 +00:00
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-03-31 15:38:54 +00:00
} ,
2025-09-30 09:19:39 +00:00
"404" : {
2025-12-11 08:41:54 +00:00
"$ref" : "#\/components\/responses\/404"
2025-09-30 09:19:39 +00:00
} ,
"422" : {
2025-10-12 12:20:45 +00:00
"$ref" : "#\/components\/responses\/422"
2025-12-11 11:08:12 +00:00
} ,
"429" : {
"$ref" : "#\/components\/responses\/429"
2025-03-31 15:38:54 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2024-11-12 12:49:37 +00:00
"\/version" : {
"get" : {
"summary" : "Version" ,
"description" : "Get Coolify version." ,
"operationId" : "version" ,
"responses" : {
"200" : {
"description" : "Returns the version of the application" ,
"content" : {
2025-10-12 12:20:45 +00:00
"text\/html" : {
2024-11-12 12:49:37 +00:00
"schema" : {
"type" : "string"
} ,
"example" : "v4.0.0"
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/enable" : {
"get" : {
"summary" : "Enable API" ,
"description" : "Enable API (only with root permissions)." ,
"operationId" : "enable-api" ,
"responses" : {
"200" : {
"description" : "Enable API." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "API enabled."
}
} ,
"type" : "object"
}
}
}
} ,
"403" : {
"description" : "You are not allowed to enable the API." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "You are not allowed to enable the API."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/disable" : {
"get" : {
"summary" : "Disable API" ,
"description" : "Disable API (only with root permissions)." ,
"operationId" : "disable-api" ,
"responses" : {
"200" : {
"description" : "Disable API." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "API disabled."
}
} ,
"type" : "object"
}
}
}
} ,
"403" : {
"description" : "You are not allowed to disable the API." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "You are not allowed to disable the API."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/health" : {
"get" : {
"summary" : "Healthcheck" ,
"description" : "Healthcheck endpoint." ,
"operationId" : "healthcheck" ,
"responses" : {
"200" : {
"description" : "Healthcheck endpoint." ,
"content" : {
2025-10-12 12:20:45 +00:00
"text\/html" : {
2024-11-12 12:49:37 +00:00
"schema" : {
"type" : "string"
} ,
"example" : "OK"
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
}
}
} ,
"\/projects" : {
"get" : {
"tags" : [
"Projects"
] ,
"summary" : "List" ,
"description" : "List projects." ,
"operationId" : "list-projects" ,
"responses" : {
"200" : {
"description" : "Get all projects." ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/Project"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"post" : {
"tags" : [
"Projects"
] ,
"summary" : "Create" ,
"description" : "Create Project." ,
"operationId" : "create-project" ,
"requestBody" : {
"description" : "Project created." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"name" : {
"type" : "string" ,
"description" : "The name of the project."
} ,
"description" : {
"type" : "string" ,
"description" : "The description of the project."
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
"description" : "Project created." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string" ,
"example" : "og888os" ,
"description" : "The UUID of the project."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/projects\/{uuid}" : {
"get" : {
"tags" : [
"Projects"
] ,
"summary" : "Get" ,
"description" : "Get project by UUID." ,
"operationId" : "get-project-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Project UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
"description" : "Project details" ,
"content" : {
"application\/json" : {
"schema" : {
"$ref" : "#\/components\/schemas\/Project"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"description" : "Project not found."
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"delete" : {
"tags" : [
"Projects"
] ,
"summary" : "Delete" ,
"description" : "Delete project by UUID." ,
"operationId" : "delete-project-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the application." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Project deleted." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Project deleted."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"patch" : {
"tags" : [
"Projects"
] ,
"summary" : "Update" ,
"description" : "Update Project." ,
"operationId" : "update-project-by-uuid" ,
2025-04-13 13:48:00 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the project." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-04-13 13:48:00 +00:00
}
}
] ,
2024-11-12 12:49:37 +00:00
"requestBody" : {
"description" : "Project updated." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"name" : {
"type" : "string" ,
"description" : "The name of the project."
} ,
"description" : {
"type" : "string" ,
"description" : "The description of the project."
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
"description" : "Project updated." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string" ,
"example" : "og888os"
} ,
"name" : {
"type" : "string" ,
"example" : "Project Name"
} ,
"description" : {
"type" : "string" ,
"example" : "Project Description"
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2024-12-17 12:42:16 +00:00
"\/projects\/{uuid}\/{environment_name_or_uuid}" : {
2024-11-12 12:49:37 +00:00
"get" : {
"tags" : [
"Projects"
] ,
"summary" : "Environment" ,
2024-12-17 12:42:16 +00:00
"description" : "Get environment by name or UUID." ,
"operationId" : "get-environment-by-name-or-uuid" ,
2024-11-12 12:49:37 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Project UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
} ,
{
2024-12-17 12:42:16 +00:00
"name" : "environment_name_or_uuid" ,
2024-11-12 12:49:37 +00:00
"in" : "path" ,
2024-12-17 12:42:16 +00:00
"description" : "Environment name or UUID" ,
2024-11-12 12:49:37 +00:00
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
"description" : "Environment details" ,
"content" : {
"application\/json" : {
"schema" : {
"$ref" : "#\/components\/schemas\/Environment"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-08-28 09:21:30 +00:00
"\/projects\/{uuid}\/environments" : {
"get" : {
"tags" : [
"Projects"
] ,
"summary" : "List Environments" ,
"description" : "List all environments in a project." ,
"operationId" : "get-environments" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Project UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
"description" : "List of environments" ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/Environment"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"description" : "Project not found."
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2025-08-28 09:21:30 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"post" : {
"tags" : [
"Projects"
] ,
"summary" : "Create Environment" ,
"description" : "Create environment in project." ,
"operationId" : "create-environment" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Project UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"requestBody" : {
"description" : "Environment created." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"name" : {
"type" : "string" ,
"description" : "The name of the environment."
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
"description" : "Environment created." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string" ,
"example" : "env123" ,
"description" : "The UUID of the environment."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"description" : "Project not found."
} ,
"409" : {
"description" : "Environment with this name already exists."
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2025-08-28 09:21:30 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/projects\/{uuid}\/environments\/{environment_name_or_uuid}" : {
"delete" : {
"tags" : [
"Projects"
] ,
"summary" : "Delete Environment" ,
"description" : "Delete environment by name or UUID. Environment must be empty." ,
"operationId" : "delete-environment" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Project UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
} ,
{
"name" : "environment_name_or_uuid" ,
"in" : "path" ,
"description" : "Environment name or UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
"description" : "Environment deleted." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Environment deleted."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"description" : "Environment has resources, so it cannot be deleted."
} ,
"404" : {
"description" : "Project or environment not found."
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2025-08-28 09:21:30 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2024-11-12 12:49:37 +00:00
"\/resources" : {
"get" : {
"tags" : [
"Resources"
] ,
"summary" : "List" ,
"description" : "Get all resources." ,
"operationId" : "list-resources" ,
"responses" : {
"200" : {
"description" : "Get all resources" ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "string"
} ,
"example" : "Content is very complex. Will be implemented later."
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/security\/keys" : {
"get" : {
"tags" : [
"Private Keys"
] ,
"summary" : "List" ,
"description" : "List all private keys." ,
"operationId" : "list-private-keys" ,
"responses" : {
"200" : {
"description" : "Get all private keys." ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/PrivateKey"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"post" : {
"tags" : [
"Private Keys"
] ,
"summary" : "Create" ,
"description" : "Create a new private key." ,
"operationId" : "create-private-key" ,
"requestBody" : {
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"private_key"
] ,
"properties" : {
"name" : {
"type" : "string"
} ,
"description" : {
"type" : "string"
} ,
"private_key" : {
"type" : "string"
}
} ,
"type" : "object" ,
"additionalProperties" : false
}
}
}
} ,
"responses" : {
"201" : {
"description" : "The created private key's UUID." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"patch" : {
"tags" : [
"Private Keys"
] ,
"summary" : "Update" ,
"description" : "Update a private key." ,
"operationId" : "update-private-key" ,
"requestBody" : {
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"private_key"
] ,
"properties" : {
"name" : {
"type" : "string"
} ,
"description" : {
"type" : "string"
} ,
"private_key" : {
"type" : "string"
}
} ,
"type" : "object" ,
"additionalProperties" : false
}
}
}
} ,
"responses" : {
"201" : {
"description" : "The updated private key's UUID." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/security\/keys\/{uuid}" : {
"get" : {
"tags" : [
"Private Keys"
] ,
"summary" : "Get" ,
"description" : "Get key by UUID." ,
"operationId" : "get-private-key-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Private Key UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
"description" : "Get all private keys." ,
"content" : {
"application\/json" : {
"schema" : {
"$ref" : "#\/components\/schemas\/PrivateKey"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"description" : "Private Key not found."
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"delete" : {
"tags" : [
"Private Keys"
] ,
"summary" : "Delete" ,
"description" : "Delete a private key." ,
"operationId" : "delete-private-key-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Private Key UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
"description" : "Private Key deleted." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Private Key deleted."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"description" : "Private Key not found."
2025-04-13 13:48:00 +00:00
} ,
"422" : {
"description" : "Private Key is in use and cannot be deleted." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Private Key is in use and cannot be deleted."
}
} ,
"type" : "object"
}
}
}
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/servers" : {
"get" : {
"tags" : [
"Servers"
] ,
"summary" : "List" ,
"description" : "List all servers." ,
"operationId" : "list-servers" ,
"responses" : {
"200" : {
"description" : "Get all servers." ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/Server"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"post" : {
"tags" : [
"Servers"
] ,
"summary" : "Create" ,
"description" : "Create Server." ,
"operationId" : "create-server" ,
"requestBody" : {
"description" : "Server created." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"name" : {
"type" : "string" ,
"example" : "My Server" ,
"description" : "The name of the server."
} ,
"description" : {
"type" : "string" ,
"example" : "My Server Description" ,
"description" : "The description of the server."
} ,
"ip" : {
"type" : "string" ,
"example" : "127.0.0.1" ,
"description" : "The IP of the server."
} ,
"port" : {
"type" : "integer" ,
"example" : 22 ,
"description" : "The port of the server."
} ,
"user" : {
"type" : "string" ,
"example" : "root" ,
"description" : "The user of the server."
} ,
"private_key_uuid" : {
"type" : "string" ,
"example" : "og888os" ,
"description" : "The UUID of the private key."
} ,
"is_build_server" : {
"type" : "boolean" ,
"example" : false ,
"description" : "Is build server."
} ,
"instant_validate" : {
"type" : "boolean" ,
"example" : false ,
"description" : "Instant validate."
2024-11-12 13:30:05 +00:00
} ,
"proxy_type" : {
"type" : "string" ,
"enum" : [
"traefik" ,
"caddy" ,
"none"
] ,
"example" : "traefik" ,
"description" : "The proxy type."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
"description" : "Server created." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string" ,
"example" : "og888os" ,
"description" : "The UUID of the server."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/servers\/{uuid}" : {
"get" : {
"tags" : [
"Servers"
] ,
"summary" : "Get" ,
"description" : "Get server by UUID." ,
"operationId" : "get-server-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Server's UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
"description" : "Get server by UUID" ,
"content" : {
"application\/json" : {
"schema" : {
"$ref" : "#\/components\/schemas\/Server"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"delete" : {
"tags" : [
"Servers"
] ,
"summary" : "Delete" ,
"description" : "Delete server by UUID." ,
"operationId" : "delete-server-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the server." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Server deleted." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Server deleted."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"patch" : {
"tags" : [
"Servers"
] ,
"summary" : "Update" ,
"description" : "Update Server." ,
"operationId" : "update-server-by-uuid" ,
2024-11-23 01:40:22 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Server UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
2024-11-12 12:49:37 +00:00
"requestBody" : {
"description" : "Server updated." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"name" : {
"type" : "string" ,
"description" : "The name of the server."
} ,
"description" : {
"type" : "string" ,
"description" : "The description of the server."
} ,
"ip" : {
"type" : "string" ,
"description" : "The IP of the server."
} ,
"port" : {
"type" : "integer" ,
"description" : "The port of the server."
} ,
"user" : {
"type" : "string" ,
"description" : "The user of the server."
} ,
"private_key_uuid" : {
"type" : "string" ,
"description" : "The UUID of the private key."
} ,
"is_build_server" : {
"type" : "boolean" ,
"description" : "Is build server."
} ,
"instant_validate" : {
"type" : "boolean" ,
"description" : "Instant validate."
2024-11-12 13:30:05 +00:00
} ,
"proxy_type" : {
"type" : "string" ,
"enum" : [
"traefik" ,
"caddy" ,
"none"
] ,
"description" : "The proxy type."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
"description" : "Server updated." ,
"content" : {
"application\/json" : {
"schema" : {
2024-11-23 01:17:38 +00:00
"$ref" : "#\/components\/schemas\/Server"
2024-11-12 12:49:37 +00:00
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/servers\/{uuid}\/resources" : {
"get" : {
"tags" : [
"Servers"
] ,
"summary" : "Resources" ,
"description" : "Get resources by server." ,
"operationId" : "get-resources-by-server-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Server's UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
"description" : "Get resources by server" ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"properties" : {
"id" : {
"type" : "integer"
} ,
"uuid" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
"type" : {
"type" : "string"
} ,
"created_at" : {
"type" : "string"
} ,
"updated_at" : {
"type" : "string"
} ,
"status" : {
"type" : "string"
}
} ,
"type" : "object"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/servers\/{uuid}\/domains" : {
"get" : {
"tags" : [
"Servers"
] ,
"summary" : "Domains" ,
"description" : "Get domains by server." ,
"operationId" : "get-domains-by-server-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Server's UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
"description" : "Get domains by server" ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"properties" : {
"ip" : {
"type" : "string"
} ,
"domains" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
}
} ,
"type" : "object"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/servers\/{uuid}\/validate" : {
"get" : {
"tags" : [
"Servers"
] ,
"summary" : "Validate" ,
"description" : "Validate server by UUID." ,
"operationId" : "validate-server-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Server UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"201" : {
"description" : "Server validation started." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Validation started."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/services" : {
"get" : {
"tags" : [
"Services"
] ,
"summary" : "List" ,
"description" : "List all services." ,
"operationId" : "list-services" ,
"responses" : {
"200" : {
"description" : "Get all services" ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/Service"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"post" : {
"tags" : [
"Services"
] ,
2025-03-31 15:38:54 +00:00
"summary" : "Create service" ,
"description" : "Create a one-click \/ custom service" ,
2024-11-12 12:49:37 +00:00
"operationId" : "create-service" ,
"requestBody" : {
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"server_uuid" ,
"project_uuid" ,
"environment_name" ,
2025-04-03 14:02:59 +00:00
"environment_uuid"
2024-11-12 12:49:37 +00:00
] ,
"properties" : {
"type" : {
2026-01-10 21:31:06 +00:00
"description" : "The one-click service type (e.g. \"actualbudget\", \"calibre-web\", \"gitea-with-mysql\" ...)" ,
"type" : "string"
2024-11-12 12:49:37 +00:00
} ,
"name" : {
"type" : "string" ,
"maxLength" : 255 ,
"description" : "Name of the service."
} ,
"description" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Description of the service."
} ,
"project_uuid" : {
"type" : "string" ,
"description" : "Project UUID."
} ,
"environment_name" : {
"type" : "string" ,
2024-12-17 12:42:16 +00:00
"description" : "Environment name. You need to provide at least one of environment_name or environment_uuid."
} ,
"environment_uuid" : {
"type" : "string" ,
"description" : "Environment UUID. You need to provide at least one of environment_name or environment_uuid."
2024-11-12 12:49:37 +00:00
} ,
"server_uuid" : {
"type" : "string" ,
"description" : "Server UUID."
} ,
"destination_uuid" : {
"type" : "string" ,
"description" : "Destination UUID. Required if server has multiple destinations."
} ,
"instant_deploy" : {
"type" : "boolean" ,
"default" : false ,
"description" : "Start the service immediately after creation."
2025-04-03 14:02:59 +00:00
} ,
"docker_compose_raw" : {
"type" : "string" ,
2026-01-10 21:31:06 +00:00
"description" : "The base64 encoded Docker Compose content."
2026-01-11 21:19:09 +00:00
} ,
"urls" : {
"type" : "array" ,
"description" : "Array of URLs to be applied to containers of a service." ,
"items" : {
"properties" : {
"name" : {
"type" : "string" ,
"description" : "The service name as defined in docker-compose."
} ,
"url" : {
"type" : "string" ,
2026-01-14 13:50:48 +00:00
"description" : "Comma-separated list of URLs (e.g. \"http:\/\/app.coolify.io,https:\/\/app2.coolify.io\")."
2026-01-11 21:19:09 +00:00
}
} ,
"type" : "object"
}
2026-01-13 18:25:58 +00:00
} ,
"force_domain_override" : {
"type" : "boolean" ,
"default" : false ,
"description" : "Force domain override even if conflicts are detected."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
2025-03-31 15:38:54 +00:00
"description" : "Service created successfully." ,
2024-11-12 12:49:37 +00:00
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string" ,
"description" : "Service UUID."
} ,
"domains" : {
"type" : "array" ,
"items" : {
"type" : "string"
} ,
"description" : "Service domains."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
2025-10-12 12:20:45 +00:00
} ,
2026-01-13 18:25:58 +00:00
"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"
}
}
}
} ,
2025-10-12 12:20:45 +00:00
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/services\/{uuid}" : {
"get" : {
"tags" : [
"Services"
] ,
"summary" : "Get" ,
"description" : "Get service by UUID." ,
"operationId" : "get-service-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Service UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
}
] ,
"responses" : {
"200" : {
"description" : "Get a service by UUID." ,
"content" : {
"application\/json" : {
"schema" : {
"$ref" : "#\/components\/schemas\/Service"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"delete" : {
"tags" : [
"Services"
] ,
"summary" : "Delete" ,
"description" : "Delete service by UUID." ,
"operationId" : "delete-service-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "Service UUID" ,
"required" : true ,
"schema" : {
"type" : "string"
}
} ,
{
"name" : "delete_configurations" ,
"in" : "query" ,
"description" : "Delete configurations." ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
} ,
{
"name" : "delete_volumes" ,
"in" : "query" ,
"description" : "Delete volumes." ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
} ,
{
"name" : "docker_cleanup" ,
"in" : "query" ,
"description" : "Run docker cleanup." ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
} ,
{
"name" : "delete_connected_networks" ,
"in" : "query" ,
"description" : "Delete connected networks." ,
"required" : false ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
}
] ,
"responses" : {
"200" : {
"description" : "Delete a service by UUID" ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Service deletion request queued."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
2025-03-31 15:38:54 +00:00
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"patch" : {
"tags" : [
"Services"
] ,
"summary" : "Update" ,
"description" : "Update service by UUID." ,
"operationId" : "update-service-by-uuid" ,
2025-04-13 13:48:00 +00:00
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the service." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2025-04-13 13:48:00 +00:00
}
}
] ,
2025-03-31 15:38:54 +00:00
"requestBody" : {
"description" : "Service updated." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"name" : {
"type" : "string" ,
"description" : "The service name."
} ,
"description" : {
"type" : "string" ,
"description" : "The service description."
} ,
"project_uuid" : {
"type" : "string" ,
"description" : "The project UUID."
} ,
"environment_name" : {
"type" : "string" ,
"description" : "The environment name."
} ,
"environment_uuid" : {
"type" : "string" ,
"description" : "The environment UUID."
} ,
"server_uuid" : {
"type" : "string" ,
"description" : "The server UUID."
} ,
"destination_uuid" : {
"type" : "string" ,
"description" : "The destination UUID."
} ,
"instant_deploy" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the service should be deployed instantly."
} ,
"connect_to_docker_network" : {
"type" : "boolean" ,
"default" : false ,
"description" : "Connect the service to the predefined docker network."
} ,
"docker_compose_raw" : {
"type" : "string" ,
2026-01-10 21:31:06 +00:00
"description" : "The base64 encoded Docker Compose content."
2026-01-11 21:19:09 +00:00
} ,
"urls" : {
"type" : "array" ,
"description" : "Array of URLs to be applied to containers of a service." ,
"items" : {
"properties" : {
"name" : {
"type" : "string" ,
"description" : "The service name as defined in docker-compose."
} ,
"url" : {
"type" : "string" ,
2026-01-14 13:50:48 +00:00
"description" : "Comma-separated list of URLs (e.g. \"http:\/\/app.coolify.io,https:\/\/app2.coolify.io\")."
2026-01-11 21:19:09 +00:00
}
} ,
"type" : "object"
}
2026-01-13 18:25:58 +00:00
} ,
"force_domain_override" : {
"type" : "boolean" ,
"default" : false ,
"description" : "Force domain override even if conflicts are detected."
2025-03-31 15:38:54 +00:00
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Service updated." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string" ,
"description" : "Service UUID."
} ,
"domains" : {
"type" : "array" ,
"items" : {
"type" : "string"
} ,
"description" : "Service domains."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
2024-11-12 12:49:37 +00:00
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
2026-01-13 18:25:58 +00:00
"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"
}
}
}
} ,
2025-10-12 12:20:45 +00:00
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/services\/{uuid}\/envs" : {
"get" : {
"tags" : [
"Services"
] ,
"summary" : "List Envs" ,
"description" : "List all envs by service UUID." ,
"operationId" : "list-envs-by-service-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the service." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "All environment variables by service UUID." ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/EnvironmentVariable"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"post" : {
"tags" : [
"Services"
] ,
"summary" : "Create Env" ,
"description" : "Create env by service UUID." ,
"operationId" : "create-env-by-service-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the service." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"requestBody" : {
"description" : "Env created." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"key" : {
"type" : "string" ,
"description" : "The key of the environment variable."
} ,
"value" : {
"type" : "string" ,
"description" : "The value of the environment variable."
} ,
"is_preview" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is used in preview deployments."
} ,
"is_literal" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is a literal, nothing espaced."
} ,
"is_multiline" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is multiline."
} ,
"is_shown_once" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable's value is shown on the UI."
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
"description" : "Environment variable created." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"uuid" : {
"type" : "string" ,
"example" : "nc0k04gk8g0cgsk440g0koko"
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"patch" : {
"tags" : [
"Services"
] ,
"summary" : "Update Env" ,
"description" : "Update env by service UUID." ,
"operationId" : "update-env-by-service-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the service." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"requestBody" : {
"description" : "Env updated." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"key" ,
"value"
] ,
"properties" : {
"key" : {
"type" : "string" ,
"description" : "The key of the environment variable."
} ,
"value" : {
"type" : "string" ,
"description" : "The value of the environment variable."
} ,
"is_preview" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is used in preview deployments."
} ,
"is_literal" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is a literal, nothing espaced."
} ,
"is_multiline" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is multiline."
} ,
"is_shown_once" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable's value is shown on the UI."
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
"description" : "Environment variable updated." ,
"content" : {
"application\/json" : {
"schema" : {
2026-02-09 13:48:16 +00:00
"$ref" : "#\/components\/schemas\/EnvironmentVariable"
2024-11-12 12:49:37 +00:00
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/services\/{uuid}\/envs\/bulk" : {
"patch" : {
"tags" : [
"Services"
] ,
"summary" : "Update Envs (Bulk)" ,
"description" : "Update multiple envs by service UUID." ,
"operationId" : "update-envs-by-service-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the service." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"requestBody" : {
"description" : "Bulk envs updated." ,
"required" : true ,
"content" : {
"application\/json" : {
"schema" : {
"required" : [
"data"
] ,
"properties" : {
"data" : {
"type" : "array" ,
"items" : {
"properties" : {
"key" : {
"type" : "string" ,
"description" : "The key of the environment variable."
} ,
"value" : {
"type" : "string" ,
"description" : "The value of the environment variable."
} ,
"is_preview" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is used in preview deployments."
} ,
"is_literal" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is a literal, nothing espaced."
} ,
"is_multiline" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable is multiline."
} ,
"is_shown_once" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the environment variable's value is shown on the UI."
}
} ,
"type" : "object"
}
}
} ,
"type" : "object"
}
}
}
} ,
"responses" : {
"201" : {
"description" : "Environment variables updated." ,
"content" : {
"application\/json" : {
"schema" : {
2026-02-09 13:48:16 +00:00
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/EnvironmentVariable"
}
2024-11-12 12:49:37 +00:00
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"$ref" : "#\/components\/responses\/422"
2024-11-12 12:49:37 +00:00
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/services\/{uuid}\/envs\/{env_uuid}" : {
"delete" : {
"tags" : [
"Services"
] ,
"summary" : "Delete Env" ,
"description" : "Delete env by UUID." ,
"operationId" : "delete-env-by-service-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the service." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
} ,
{
"name" : "env_uuid" ,
"in" : "path" ,
"description" : "UUID of the environment variable." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Environment variable deleted." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Environment variable deleted."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/services\/{uuid}\/start" : {
"get" : {
"tags" : [
"Services"
] ,
"summary" : "Start" ,
"description" : "Start service. `Post` request is also accepted." ,
"operationId" : "start-service-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the service." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Start service." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Service starting request queued."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/services\/{uuid}\/stop" : {
"get" : {
"tags" : [
"Services"
] ,
"summary" : "Stop" ,
"description" : "Stop service. `Post` request is also accepted." ,
"operationId" : "stop-service-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the service." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Stop service." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Service stopping request queued."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/services\/{uuid}\/restart" : {
"get" : {
"tags" : [
"Services"
] ,
"summary" : "Restart" ,
"description" : "Restart service. `Post` request is also accepted." ,
"operationId" : "restart-service-by-uuid" ,
"parameters" : [
{
"name" : "uuid" ,
"in" : "path" ,
"description" : "UUID of the service." ,
"required" : true ,
"schema" : {
2026-01-04 15:16:19 +00:00
"type" : "string"
2024-11-12 12:49:37 +00:00
}
2025-05-27 13:10:20 +00:00
} ,
{
"name" : "latest" ,
"in" : "query" ,
"description" : "Pull latest images." ,
"schema" : {
"type" : "boolean" ,
"default" : false
}
2024-11-12 12:49:37 +00:00
}
] ,
"responses" : {
"200" : {
"description" : "Restart service." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Service restaring request queued."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/teams" : {
"get" : {
"tags" : [
"Teams"
] ,
"summary" : "List" ,
"description" : "Get all teams." ,
"operationId" : "list-teams" ,
"responses" : {
"200" : {
"description" : "List of teams." ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/Team"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/teams\/{id}" : {
"get" : {
"tags" : [
"Teams"
] ,
"summary" : "Get" ,
"description" : "Get team by TeamId." ,
"operationId" : "get-team-by-id" ,
"parameters" : [
{
"name" : "id" ,
"in" : "path" ,
"description" : "Team ID" ,
"required" : true ,
"schema" : {
"type" : "integer"
}
}
] ,
"responses" : {
"200" : {
"description" : "List of teams." ,
"content" : {
"application\/json" : {
"schema" : {
"$ref" : "#\/components\/schemas\/Team"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/teams\/{id}\/members" : {
"get" : {
"tags" : [
"Teams"
] ,
"summary" : "Members" ,
"description" : "Get members by TeamId." ,
"operationId" : "get-members-by-team-id" ,
"parameters" : [
{
"name" : "id" ,
"in" : "path" ,
"description" : "Team ID" ,
"required" : true ,
"schema" : {
"type" : "integer"
}
}
] ,
"responses" : {
"200" : {
"description" : "List of members." ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/User"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
} ,
"404" : {
"$ref" : "#\/components\/responses\/404"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/teams\/current" : {
"get" : {
"tags" : [
"Teams"
] ,
"summary" : "Authenticated Team" ,
"description" : "Get currently authenticated team." ,
"operationId" : "get-current-team" ,
"responses" : {
"200" : {
"description" : "Current Team." ,
"content" : {
"application\/json" : {
"schema" : {
"$ref" : "#\/components\/schemas\/Team"
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"\/teams\/current\/members" : {
"get" : {
"tags" : [
"Teams"
] ,
"summary" : "Authenticated Team Members" ,
"description" : "Get currently authenticated team members." ,
"operationId" : "get-current-team-members" ,
"responses" : {
"200" : {
"description" : "Currently authenticated team members." ,
"content" : {
"application\/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/User"
}
}
}
}
} ,
"401" : {
"$ref" : "#\/components\/responses\/401"
} ,
"400" : {
"$ref" : "#\/components\/responses\/400"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
}
} ,
"components" : {
"schemas" : {
"Application" : {
"description" : "Application model" ,
"properties" : {
"id" : {
"type" : "integer" ,
"description" : "The application identifier in the database."
} ,
"description" : {
"type" : "string" ,
"nullable" : true ,
"description" : "The application description."
} ,
"repository_project_id" : {
"type" : "integer" ,
"nullable" : true ,
"description" : "The repository project identifier."
} ,
"uuid" : {
"type" : "string" ,
"description" : "The application UUID."
} ,
"name" : {
"type" : "string" ,
"description" : "The application name."
} ,
"fqdn" : {
"type" : "string" ,
"nullable" : true ,
"description" : "The application domains."
} ,
"config_hash" : {
"type" : "string" ,
"description" : "Configuration hash."
} ,
"git_repository" : {
"type" : "string" ,
"description" : "Git repository URL."
} ,
"git_branch" : {
"type" : "string" ,
"description" : "Git branch."
} ,
"git_commit_sha" : {
"type" : "string" ,
"description" : "Git commit SHA."
} ,
"git_full_url" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Git full URL."
} ,
"docker_registry_image_name" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Docker registry image name."
} ,
"docker_registry_image_tag" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Docker registry image tag."
} ,
"build_pack" : {
"type" : "string" ,
"description" : "Build pack." ,
"enum" : [
"nixpacks" ,
"static" ,
"dockerfile" ,
"dockercompose"
]
} ,
"static_image" : {
"type" : "string" ,
"description" : "Static image used when static site is deployed."
} ,
"install_command" : {
"type" : "string" ,
"description" : "Install command."
} ,
"build_command" : {
"type" : "string" ,
"description" : "Build command."
} ,
"start_command" : {
"type" : "string" ,
"description" : "Start command."
} ,
"ports_exposes" : {
"type" : "string" ,
"description" : "Ports exposes."
} ,
"ports_mappings" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Ports mappings."
} ,
2025-04-13 13:48:00 +00:00
"custom_network_aliases" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Network aliases for Docker container."
} ,
2024-11-12 12:49:37 +00:00
"base_directory" : {
"type" : "string" ,
"description" : "Base directory for all commands."
} ,
"publish_directory" : {
"type" : "string" ,
"description" : "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."
} ,
"status" : {
"type" : "string" ,
"description" : "Application status."
} ,
"preview_url_template" : {
"type" : "string" ,
"description" : "Preview URL template."
} ,
"destination_type" : {
"type" : "string" ,
"description" : "Destination type."
} ,
"destination_id" : {
"type" : "integer" ,
"description" : "Destination identifier."
} ,
"source_id" : {
"type" : "integer" ,
"nullable" : true ,
"description" : "Source identifier."
} ,
"private_key_id" : {
"type" : "integer" ,
"nullable" : true ,
"description" : "Private key identifier."
} ,
"environment_id" : {
"type" : "integer" ,
"description" : "Environment identifier."
} ,
"dockerfile" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Dockerfile content. Used for dockerfile build pack."
} ,
"dockerfile_location" : {
"type" : "string" ,
"description" : "Dockerfile location."
} ,
"custom_labels" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Custom labels."
} ,
"dockerfile_target_build" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Dockerfile target build."
} ,
"manual_webhook_secret_github" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Manual webhook secret for GitHub."
} ,
"manual_webhook_secret_gitlab" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Manual webhook secret for GitLab."
} ,
"manual_webhook_secret_bitbucket" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Manual webhook secret for Bitbucket."
} ,
"manual_webhook_secret_gitea" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Manual webhook secret for Gitea."
} ,
"docker_compose_location" : {
"type" : "string" ,
"description" : "Docker compose location."
} ,
"docker_compose" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Docker compose content. Used for docker compose build pack."
} ,
"docker_compose_raw" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Docker compose raw content."
} ,
"docker_compose_domains" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Docker compose domains."
} ,
"docker_compose_custom_start_command" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Docker compose custom start command."
} ,
"docker_compose_custom_build_command" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Docker compose custom build command."
} ,
"swarm_replicas" : {
"type" : "integer" ,
"nullable" : true ,
"description" : "Swarm replicas. Only used for swarm deployments."
} ,
"swarm_placement_constraints" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Swarm placement constraints. Only used for swarm deployments."
} ,
"custom_docker_run_options" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Custom docker run options."
} ,
"post_deployment_command" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Post deployment command."
} ,
"post_deployment_command_container" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Post deployment command container."
} ,
"pre_deployment_command" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Pre deployment command."
} ,
"pre_deployment_command_container" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Pre deployment command container."
} ,
"watch_paths" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Watch paths."
} ,
"custom_healthcheck_found" : {
"type" : "boolean" ,
"description" : "Custom healthcheck found."
} ,
"redirect" : {
"type" : "string" ,
"nullable" : true ,
"description" : "How to set redirect with Traefik \/ Caddy. www<->non-www." ,
"enum" : [
"www" ,
"non-www" ,
"both"
]
} ,
"created_at" : {
"type" : "string" ,
"format" : "date-time" ,
"description" : "The date and time when the application was created."
} ,
"updated_at" : {
"type" : "string" ,
"format" : "date-time" ,
"description" : "The date and time when the application was last updated."
} ,
"deleted_at" : {
"type" : "string" ,
"format" : "date-time" ,
"nullable" : true ,
"description" : "The date and time when the application was deleted."
} ,
"compose_parsing_version" : {
"type" : "string" ,
"description" : "How Coolify parse the compose file."
} ,
"custom_nginx_configuration" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Custom Nginx configuration base64 encoded."
2025-04-23 09:59:01 +00:00
} ,
2025-04-23 11:22:01 +00:00
"is_http_basic_auth_enabled" : {
2025-04-23 09:59:01 +00:00
"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"
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
} ,
"ApplicationDeploymentQueue" : {
"description" : "Project model" ,
"properties" : {
"id" : {
"type" : "integer"
} ,
"application_id" : {
"type" : "string"
} ,
"deployment_uuid" : {
"type" : "string"
} ,
"pull_request_id" : {
"type" : "integer"
} ,
"force_rebuild" : {
"type" : "boolean"
} ,
"commit" : {
"type" : "string"
} ,
"status" : {
"type" : "string"
} ,
"is_webhook" : {
"type" : "boolean"
} ,
"is_api" : {
"type" : "boolean"
} ,
"created_at" : {
"type" : "string"
} ,
"updated_at" : {
"type" : "string"
} ,
"logs" : {
"type" : "string"
} ,
"current_process_id" : {
"type" : "string"
} ,
"restart_only" : {
"type" : "boolean"
} ,
"git_type" : {
"type" : "string"
} ,
"server_id" : {
"type" : "integer"
} ,
"application_name" : {
"type" : "string"
} ,
"server_name" : {
"type" : "string"
} ,
"deployment_url" : {
"type" : "string"
} ,
"destination_id" : {
"type" : "string"
} ,
"only_this_server" : {
"type" : "boolean"
} ,
"rollback" : {
"type" : "boolean"
} ,
"commit_message" : {
"type" : "string"
}
} ,
"type" : "object"
} ,
"Environment" : {
"description" : "Environment model" ,
"properties" : {
"id" : {
"type" : "integer"
} ,
"name" : {
"type" : "string"
} ,
"project_id" : {
"type" : "integer"
} ,
"created_at" : {
"type" : "string"
} ,
"updated_at" : {
"type" : "string"
} ,
"description" : {
"type" : "string"
}
} ,
"type" : "object"
} ,
"EnvironmentVariable" : {
"description" : "Environment Variable model" ,
"properties" : {
"id" : {
"type" : "integer"
} ,
"uuid" : {
"type" : "string"
} ,
2024-12-17 12:42:16 +00:00
"resourceable_type" : {
"type" : "string"
2024-11-12 12:49:37 +00:00
} ,
2024-12-17 12:42:16 +00:00
"resourceable_id" : {
2024-11-12 12:49:37 +00:00
"type" : "integer"
} ,
"is_literal" : {
"type" : "boolean"
} ,
"is_multiline" : {
"type" : "boolean"
} ,
"is_preview" : {
"type" : "boolean"
} ,
2025-09-18 14:51:08 +00:00
"is_runtime" : {
"type" : "boolean"
} ,
"is_buildtime" : {
2025-09-11 15:37:40 +00:00
"type" : "boolean"
} ,
2024-11-12 12:49:37 +00:00
"is_shared" : {
"type" : "boolean"
} ,
"is_shown_once" : {
"type" : "boolean"
} ,
"key" : {
"type" : "string"
} ,
"value" : {
"type" : "string"
} ,
"real_value" : {
"type" : "string"
} ,
"version" : {
"type" : "string"
} ,
"created_at" : {
"type" : "string"
} ,
"updated_at" : {
"type" : "string"
}
} ,
"type" : "object"
} ,
"PrivateKey" : {
"description" : "Private Key model" ,
"properties" : {
"id" : {
"type" : "integer"
} ,
"uuid" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
"description" : {
"type" : "string"
} ,
"private_key" : {
"type" : "string" ,
"format" : "private-key"
} ,
2025-04-22 08:44:37 +00:00
"public_key" : {
2025-04-23 09:59:01 +00:00
"type" : "string" ,
"description" : "The public key of the private key."
2025-04-22 08:44:37 +00:00
} ,
"fingerprint" : {
2025-04-23 09:59:01 +00:00
"type" : "string" ,
"description" : "The fingerprint of the private key."
2025-04-22 08:44:37 +00:00
} ,
2024-11-12 12:49:37 +00:00
"is_git_related" : {
"type" : "boolean"
} ,
"team_id" : {
"type" : "integer"
} ,
"created_at" : {
"type" : "string"
} ,
"updated_at" : {
"type" : "string"
}
} ,
"type" : "object"
} ,
"Project" : {
"description" : "Project model" ,
"properties" : {
"id" : {
"type" : "integer"
} ,
"uuid" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
"description" : {
"type" : "string"
}
} ,
"type" : "object"
} ,
"Server" : {
"description" : "Server model" ,
"properties" : {
"id" : {
2024-11-12 13:30:05 +00:00
"type" : "integer" ,
"description" : "The server ID."
2024-11-12 12:49:37 +00:00
} ,
"uuid" : {
2024-11-12 13:30:05 +00:00
"type" : "string" ,
"description" : "The server UUID."
2024-11-12 12:49:37 +00:00
} ,
"name" : {
2024-11-12 13:30:05 +00:00
"type" : "string" ,
"description" : "The server name."
2024-11-12 12:49:37 +00:00
} ,
"description" : {
2024-11-12 13:30:05 +00:00
"type" : "string" ,
"description" : "The server description."
2024-11-12 12:49:37 +00:00
} ,
"ip" : {
2024-11-12 13:30:05 +00:00
"type" : "string" ,
"description" : "The IP address."
2024-11-12 12:49:37 +00:00
} ,
"user" : {
2024-11-12 13:30:05 +00:00
"type" : "string" ,
"description" : "The user."
2024-11-12 12:49:37 +00:00
} ,
"port" : {
2024-11-12 13:30:05 +00:00
"type" : "integer" ,
"description" : "The port number."
2024-11-12 12:49:37 +00:00
} ,
"proxy" : {
2024-11-12 13:30:05 +00:00
"type" : "object" ,
"description" : "The proxy configuration."
} ,
"proxy_type" : {
"type" : "string" ,
"enum" : [
"traefik" ,
"caddy" ,
"none"
] ,
"description" : "The proxy type."
2024-11-12 12:49:37 +00:00
} ,
"high_disk_usage_notification_sent" : {
2024-11-12 13:30:05 +00:00
"type" : "boolean" ,
"description" : "The flag to indicate if the high disk usage notification has been sent."
2024-11-12 12:49:37 +00:00
} ,
"unreachable_notification_sent" : {
2024-11-12 13:30:05 +00:00
"type" : "boolean" ,
"description" : "The flag to indicate if the unreachable notification has been sent."
2024-11-12 12:49:37 +00:00
} ,
"unreachable_count" : {
2024-11-12 13:30:05 +00:00
"type" : "integer" ,
"description" : "The unreachable count for your server."
2024-11-12 12:49:37 +00:00
} ,
"validation_logs" : {
2024-11-12 13:30:05 +00:00
"type" : "string" ,
"description" : "The validation logs."
2024-11-12 12:49:37 +00:00
} ,
"log_drain_notification_sent" : {
2024-11-12 13:30:05 +00:00
"type" : "boolean" ,
"description" : "The flag to indicate if the log drain notification has been sent."
2024-11-12 12:49:37 +00:00
} ,
"swarm_cluster" : {
2024-11-12 13:30:05 +00:00
"type" : "string" ,
"description" : "The swarm cluster configuration."
2024-11-12 12:49:37 +00:00
} ,
2024-11-23 01:44:04 +00:00
"settings" : {
"$ref" : "#\/components\/schemas\/ServerSetting"
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
} ,
"ServerSetting" : {
"description" : "Server Settings model" ,
"properties" : {
"id" : {
"type" : "integer"
} ,
"concurrent_builds" : {
"type" : "integer"
} ,
2025-12-04 12:52:27 +00:00
"deployment_queue_limit" : {
"type" : "integer"
} ,
2024-11-12 12:49:37 +00:00
"dynamic_timeout" : {
"type" : "integer"
} ,
"force_disabled" : {
"type" : "boolean"
} ,
"force_server_cleanup" : {
"type" : "boolean"
} ,
"is_build_server" : {
"type" : "boolean"
} ,
"is_cloudflare_tunnel" : {
"type" : "boolean"
} ,
"is_jump_server" : {
"type" : "boolean"
} ,
"is_logdrain_axiom_enabled" : {
"type" : "boolean"
} ,
"is_logdrain_custom_enabled" : {
"type" : "boolean"
} ,
"is_logdrain_highlight_enabled" : {
"type" : "boolean"
} ,
"is_logdrain_newrelic_enabled" : {
"type" : "boolean"
} ,
"is_metrics_enabled" : {
"type" : "boolean"
} ,
"is_reachable" : {
"type" : "boolean"
} ,
"is_sentinel_enabled" : {
"type" : "boolean"
} ,
"is_swarm_manager" : {
"type" : "boolean"
} ,
"is_swarm_worker" : {
"type" : "boolean"
} ,
2025-08-28 09:21:30 +00:00
"is_terminal_enabled" : {
"type" : "boolean"
} ,
2024-11-12 12:49:37 +00:00
"is_usable" : {
"type" : "boolean"
} ,
"logdrain_axiom_api_key" : {
"type" : "string"
} ,
"logdrain_axiom_dataset_name" : {
"type" : "string"
} ,
"logdrain_custom_config" : {
"type" : "string"
} ,
"logdrain_custom_config_parser" : {
"type" : "string"
} ,
"logdrain_highlight_project_id" : {
"type" : "string"
} ,
"logdrain_newrelic_base_uri" : {
"type" : "string"
} ,
"logdrain_newrelic_license_key" : {
"type" : "string"
} ,
"sentinel_metrics_history_days" : {
"type" : "integer"
} ,
"sentinel_metrics_refresh_rate_seconds" : {
"type" : "integer"
} ,
"sentinel_token" : {
"type" : "string"
} ,
"docker_cleanup_frequency" : {
"type" : "string"
} ,
"docker_cleanup_threshold" : {
"type" : "integer"
} ,
"server_id" : {
"type" : "integer"
} ,
"wildcard_domain" : {
"type" : "string"
} ,
"created_at" : {
"type" : "string"
} ,
"updated_at" : {
"type" : "string"
2024-11-23 02:11:48 +00:00
} ,
"delete_unused_volumes" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the unused volumes should be deleted."
} ,
"delete_unused_networks" : {
"type" : "boolean" ,
"description" : "The flag to indicate if the unused networks should be deleted."
2024-11-12 12:49:37 +00:00
}
} ,
"type" : "object"
} ,
"Service" : {
"description" : "Service model" ,
"properties" : {
"id" : {
"type" : "integer" ,
"description" : "The unique identifier of the service. Only used for database identification."
} ,
"uuid" : {
"type" : "string" ,
"description" : "The unique identifier of the service."
} ,
"name" : {
"type" : "string" ,
"description" : "The name of the service."
} ,
"environment_id" : {
"type" : "integer" ,
"description" : "The unique identifier of the environment where the service is attached to."
} ,
"server_id" : {
"type" : "integer" ,
"description" : "The unique identifier of the server where the service is running."
} ,
"description" : {
"type" : "string" ,
"description" : "The description of the service."
} ,
"docker_compose_raw" : {
"type" : "string" ,
"description" : "The raw docker-compose.yml file of the service."
} ,
"docker_compose" : {
"type" : "string" ,
"description" : "The docker-compose.yml file that is parsed and modified by Coolify."
} ,
"destination_type" : {
"type" : "string" ,
"description" : "Destination type."
} ,
"destination_id" : {
"type" : "integer" ,
"description" : "The unique identifier of the destination where the service is running."
} ,
"connect_to_docker_network" : {
"type" : "boolean" ,
"description" : "The flag to connect the service to the predefined Docker network."
} ,
"is_container_label_escape_enabled" : {
"type" : "boolean" ,
"description" : "The flag to enable the container label escape."
} ,
"is_container_label_readonly_enabled" : {
"type" : "boolean" ,
"description" : "The flag to enable the container label readonly."
} ,
"config_hash" : {
"type" : "string" ,
"description" : "The hash of the service configuration."
} ,
"service_type" : {
"type" : "string" ,
"description" : "The type of the service."
} ,
"created_at" : {
"type" : "string" ,
"description" : "The date and time when the service was created."
} ,
"updated_at" : {
"type" : "string" ,
"description" : "The date and time when the service was last updated."
} ,
"deleted_at" : {
"type" : "string" ,
"description" : "The date and time when the service was deleted."
}
} ,
"type" : "object"
} ,
"Team" : {
"description" : "Team model" ,
"properties" : {
"id" : {
"type" : "integer" ,
"description" : "The unique identifier of the team."
} ,
"name" : {
"type" : "string" ,
"description" : "The name of the team."
} ,
"description" : {
"type" : "string" ,
"description" : "The description of the team."
} ,
"personal_team" : {
"type" : "boolean" ,
"description" : "Whether the team is personal or not."
} ,
"created_at" : {
"type" : "string" ,
"description" : "The date and time the team was created."
} ,
"updated_at" : {
"type" : "string" ,
"description" : "The date and time the team was last updated."
} ,
"show_boarding" : {
"type" : "boolean" ,
"description" : "Whether to show the boarding screen or not."
} ,
"custom_server_limit" : {
"type" : "string" ,
"description" : "The custom server limit."
} ,
"members" : {
"description" : "The members of the team." ,
"type" : "array" ,
"items" : {
"$ref" : "#\/components\/schemas\/User"
}
}
} ,
"type" : "object"
} ,
"User" : {
"description" : "User model" ,
"properties" : {
"id" : {
"type" : "integer" ,
"description" : "The user identifier in the database."
} ,
"name" : {
"type" : "string" ,
"description" : "The user name."
} ,
"email" : {
"type" : "string" ,
"description" : "The user email."
} ,
"email_verified_at" : {
"type" : "string" ,
"description" : "The date when the user email was verified."
} ,
"created_at" : {
"type" : "string" ,
"description" : "The date when the user was created."
} ,
"updated_at" : {
"type" : "string" ,
"description" : "The date when the user was updated."
} ,
"two_factor_confirmed_at" : {
"type" : "string" ,
"description" : "The date when the user two factor was confirmed."
} ,
"force_password_reset" : {
"type" : "boolean" ,
"description" : "The flag to force the user to reset the password."
} ,
"marketing_emails" : {
"type" : "boolean" ,
"description" : "The flag to receive marketing emails."
}
} ,
"type" : "object"
}
} ,
"responses" : {
"400" : {
"description" : "Invalid token." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Invalid token."
}
} ,
"type" : "object"
}
}
}
} ,
"401" : {
"description" : "Unauthenticated." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Unauthenticated."
}
} ,
"type" : "object"
}
}
}
} ,
"404" : {
"description" : "Resource not found." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Resource not found."
}
} ,
"type" : "object"
}
}
}
2025-10-12 12:20:45 +00:00
} ,
"422" : {
"description" : "Validation error." ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Validation error."
} ,
"errors" : {
"type" : "object" ,
"example" : {
"name" : [
"The name field is required."
] ,
"api_url" : [
"The api url field is required." ,
"The api url format is invalid."
]
} ,
"additionalProperties" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
}
}
} ,
"type" : "object"
}
}
}
2025-12-11 11:08:12 +00:00
} ,
"429" : {
"description" : "Rate limit exceeded." ,
"headers" : {
"Retry-After" : {
"description" : "Number of seconds to wait before retrying." ,
"schema" : {
"type" : "integer" ,
"example" : 60
}
}
} ,
"content" : {
"application\/json" : {
"schema" : {
"properties" : {
"message" : {
"type" : "string" ,
"example" : "Rate limit exceeded. Please try again later."
}
} ,
"type" : "object"
}
}
}
2024-11-12 12:49:37 +00:00
}
} ,
"securitySchemes" : {
"bearerAuth" : {
"type" : "http" ,
"description" : "Go to `Keys & Tokens` \/ `API tokens` and create a new token. Use the token as the bearer token." ,
"scheme" : "bearer"
}
}
} ,
"tags" : [
{
"name" : "Applications" ,
"description" : "Applications"
} ,
2025-12-11 08:41:54 +00:00
{
"name" : "Cloud Tokens" ,
"description" : "Cloud Tokens"
} ,
2024-11-12 12:49:37 +00:00
{
"name" : "Databases" ,
"description" : "Databases"
} ,
{
"name" : "Deployments" ,
"description" : "Deployments"
} ,
2025-09-30 09:19:39 +00:00
{
"name" : "GitHub Apps" ,
"description" : "GitHub Apps"
} ,
2025-12-11 08:41:54 +00:00
{
"name" : "Hetzner" ,
"description" : "Hetzner"
} ,
2024-11-12 12:49:37 +00:00
{
"name" : "Projects" ,
"description" : "Projects"
} ,
{
"name" : "Resources" ,
"description" : "Resources"
} ,
{
"name" : "Private Keys" ,
"description" : "Private Keys"
} ,
{
"name" : "Servers" ,
"description" : "Servers"
} ,
{
"name" : "Services" ,
"description" : "Services"
} ,
{
"name" : "Teams" ,
"description" : "Teams"
}
]
}