openapi: 3.1.0 info: title: Coolify version: "0.1" servers: - url: "https://app.coolify.io/api/v1" description: "Coolify Cloud API. Change the host to your own instance if you are self-hosting." paths: /applications: get: tags: - Applications summary: List description: "List all applications." operationId: list-applications responses: "200": description: "Get all applications." content: application/json: schema: type: array items: $ref: "#/components/schemas/Application" "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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 - git_repository - git_branch - build_pack - ports_exposes properties: project_uuid: type: string description: "The project UUID." server_uuid: type: string description: "The server UUID." environment_name: type: string description: "The environment name." 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 description: "The application domains." 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." 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." docker_compose_location: type: string description: "The Docker Compose location." docker_compose_raw: type: string description: "The Docker Compose raw content." docker_compose_custom_start_command: type: string description: "The Docker Compose custom start command." docker_compose_custom_build_command: type: string description: "The Docker Compose custom build command." docker_compose_domains: type: array description: "The Docker Compose domains." watch_paths: type: string description: "The watch paths." use_build_server: type: boolean nullable: true description: "Use build server." type: object responses: "200": description: "Application created successfully." "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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 - github_app_uuid - git_repository - git_branch - build_pack - ports_exposes properties: project_uuid: type: string description: "The project UUID." server_uuid: type: string description: "The server UUID." environment_name: type: string description: "The environment name." 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 description: "The application domains." 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." 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." docker_compose_location: type: string description: "The Docker Compose location." docker_compose_raw: type: string description: "The Docker Compose raw content." docker_compose_custom_start_command: type: string description: "The Docker Compose custom start command." docker_compose_custom_build_command: type: string description: "The Docker Compose custom build command." docker_compose_domains: type: array description: "The Docker Compose domains." watch_paths: type: string description: "The watch paths." use_build_server: type: boolean nullable: true description: "Use build server." type: object responses: "200": description: "Application created successfully." "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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 - private_key_uuid - git_repository - git_branch - build_pack - ports_exposes properties: project_uuid: type: string description: "The project UUID." server_uuid: type: string description: "The server UUID." environment_name: type: string description: "The environment name." 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 description: "The application domains." 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." 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." docker_compose_location: type: string description: "The Docker Compose location." docker_compose_raw: type: string description: "The Docker Compose raw content." docker_compose_custom_start_command: type: string description: "The Docker Compose custom start command." docker_compose_custom_build_command: type: string description: "The Docker Compose custom build command." docker_compose_domains: type: array description: "The Docker Compose domains." watch_paths: type: string description: "The watch paths." use_build_server: type: boolean nullable: true description: "Use build server." type: object responses: "200": description: "Application created successfully." "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" security: - bearerAuth: [] /applications/dockerfile: post: tags: - Applications summary: "Create (Dockerfile)" description: "Create new application based on a simple Dockerfile." 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 - dockerfile 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." 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 description: "The application domains." 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." use_build_server: type: boolean nullable: true description: "Use build server." type: object responses: "200": description: "Application created successfully." "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" security: - bearerAuth: [] /applications/dockerimage: post: tags: - Applications summary: "Create (Docker Image)" description: "Create new application based on a prebuilt docker image" 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 - 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 description: "The environment name." 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 description: "The application domains." 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." use_build_server: type: boolean nullable: true description: "Use build server." type: object responses: "200": description: "Application created successfully." "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" security: - bearerAuth: [] /applications/dockercompose: post: tags: - Applications summary: "Create (Docker Compose)" description: "Create new application based on a docker-compose file." 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 - docker_compose_raw 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." 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." type: object responses: "200": description: "Application created successfully." "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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: type: string format: uuid responses: "200": description: "Get application by UUID." content: application/json: schema: $ref: "#/components/schemas/Application" "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid - 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] patch: tags: - Applications summary: Update description: "Update application by UUID." operationId: update-application-by-uuid parameters: - name: uuid in: path description: "UUID of the application." required: true schema: type: string format: uuid 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 description: "The application domains." 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." 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." docker_compose_location: type: string description: "The Docker Compose location." docker_compose_raw: type: string description: "The Docker Compose raw content." docker_compose_custom_start_command: type: string description: "The Docker Compose custom start command." docker_compose_custom_build_command: type: string description: "The Docker Compose custom build command." docker_compose_domains: type: array description: "The Docker Compose domains." watch_paths: type: string description: "The watch paths." use_build_server: type: boolean nullable: true description: "Use build server." type: object responses: "200": description: "Application updated." content: application/json: schema: properties: uuid: { type: string } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] "/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: type: string format: uuid responses: "200": description: "All environment variables by application UUID." content: application/json: schema: type: array items: $ref: "#/components/schemas/EnvironmentVariable" "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid 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_build_time: type: boolean description: "The flag to indicate if the environment variable is used in build time." 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid 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_build_time: type: boolean description: "The flag to indicate if the environment variable is used in build time." 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: properties: message: { type: string, example: "Environment variable updated." } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid 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_build_time: { type: boolean, description: "The flag to indicate if the environment variable is used in build time.", }, 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: properties: message: { type: string, example: "Environment variables updated." } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid - name: env_uuid in: path description: "UUID of the environment variable." required: true schema: type: string format: uuid responses: "200": description: "Environment variable deleted." content: application/json: schema: properties: message: { type: string, example: "Environment variable deleted." } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid - 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid responses: "200": description: "Stop application." content: application/json: schema: properties: message: { type: string, example: "Application stopping request queued.", } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] "/applications/{uuid}/execute": post: tags: - Applications summary: "Execute Command" description: "Execute a command on the application's current container." operationId: execute-command-application parameters: - name: uuid in: path description: "UUID of the application." required: true schema: type: string format: uuid requestBody: description: "Command to execute." required: true content: application/json: schema: properties: command: type: string description: "Command to execute." type: object responses: "200": description: "Execute a command on the application's current container." content: application/json: schema: properties: message: { type: string, example: "Command executed." } response: { type: string } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] /databases: get: tags: - Databases summary: List description: "List all databases." operationId: list-databases responses: "200": description: "Get all databases" content: application/json: schema: type: string example: "Content is very complex. Will be implemented later." "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" security: - bearerAuth: [] "/databases/{uuid}": get: tags: - Databases 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: type: string format: uuid responses: "200": description: "Get all databases" content: application/json: schema: type: string example: "Content is very complex. Will be implemented later." "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] delete: tags: - Databases 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: type: string format: uuid - 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid 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" postgres_user: type: string description: "PostgreSQL user" postgres_password: type: string description: "PostgreSQL password" postgres_db: type: string description: "PostgreSQL database" postgres_initdb_args: type: string description: "PostgreSQL initdb args" postgres_host_auth_method: type: string description: "PostgreSQL host auth method" postgres_conf: type: string description: "PostgreSQL conf" clickhouse_admin_user: type: string description: "Clickhouse admin user" clickhouse_admin_password: type: string description: "Clickhouse admin password" dragonfly_password: type: string description: "DragonFly password" redis_password: type: string description: "Redis password" redis_conf: type: string description: "Redis conf" keydb_password: type: string description: "KeyDB password" keydb_conf: type: string description: "KeyDB conf" 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" mongo_conf: type: string description: "Mongo conf" mongo_initdb_root_username: type: string description: "Mongo initdb root username" mongo_initdb_root_password: type: string description: "Mongo initdb root password" mongo_initdb_init_database: type: string description: "Mongo initdb init database" mysql_root_password: type: string description: "MySQL root password" mysql_user: type: string description: "MySQL user" mysql_database: type: string description: "MySQL database" mysql_conf: type: string description: "MySQL conf" type: object responses: "200": description: "Database updated" "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] /databases/postgresql: post: tags: - Databases summary: "Create (PostgreSQL)" description: "Create a new PostgreSQL database." operationId: create-database-postgresql requestBody: description: "Database data" required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name 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" postgres_user: type: string description: "PostgreSQL user" postgres_password: type: string description: "PostgreSQL password" postgres_db: type: string description: "PostgreSQL database" postgres_initdb_args: type: string description: "PostgreSQL initdb args" postgres_host_auth_method: type: string description: "PostgreSQL host auth method" postgres_conf: type: string description: "PostgreSQL conf" destination_uuid: type: string description: "UUID of the destination if the server has multiple destinations" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" security: - bearerAuth: [] /databases/clickhouse: post: tags: - Databases summary: "Create (Clickhouse)" description: "Create a new Clickhouse database." operationId: create-database-clickhouse requestBody: description: "Database data" required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name 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" destination_uuid: type: string description: "UUID of the destination if the server has multiple destinations" clickhouse_admin_user: type: string description: "Clickhouse admin user" clickhouse_admin_password: type: string description: "Clickhouse admin password" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" security: - bearerAuth: [] /databases/dragonfly: post: tags: - Databases summary: "Create (DragonFly)" description: "Create a new DragonFly database." operationId: create-database-dragonfly requestBody: description: "Database data" required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name 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" destination_uuid: type: string description: "UUID of the destination if the server has multiple destinations" dragonfly_password: type: string description: "DragonFly password" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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 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" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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 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" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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 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" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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 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" 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_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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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 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" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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: type: string format: uuid responses: "200": description: "Start database." content: application/json: schema: properties: message: { type: string, example: "Database starting request queued.", } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid responses: "200": description: "Stop database." content: application/json: schema: properties: message: { type: string, example: "Database stopping request queued.", } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] "/databases/{uuid}/restart": get: tags: - Databases summary: Restart description: "Restart database. `Post` request is also accepted." operationId: restart-database-by-uuid parameters: - name: uuid in: path description: "UUID of the database." required: true schema: type: string format: uuid responses: "200": description: "Restart database." content: application/json: schema: properties: message: { type: string, example: "Database restaring request queued.", } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] /deployments: get: tags: - Deployments summary: List description: "List currently running deployments" operationId: list-deployments responses: "200": description: "Get all currently running deployments." content: application/json: schema: type: array items: $ref: "#/components/schemas/ApplicationDeploymentQueue" "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" security: - bearerAuth: [] "/deployments/{uuid}": get: tags: - Deployments summary: Get description: "Get deployment by UUID." operationId: get-deployment-by-uuid parameters: - name: uuid in: path description: "Deployment UUID" required: true schema: type: string responses: "200": description: "Get deployment by UUID." content: application/json: schema: $ref: "#/components/schemas/ApplicationDeploymentQueue" "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] /deploy: get: tags: - Deployments summary: Deploy description: "Deploy by tag or uuid. `Post` request also accepted." operationId: deploy-by-tag-or-uuid parameters: - name: tag in: query description: "Tag name(s). Comma separated list is also accepted." schema: type: string - name: uuid 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 responses: "200": description: "Get deployment(s) UUID's" content: application/json: schema: properties: deployments: { type: array, items: { properties: { message: { type: string }, resource_uuid: { type: string }, deployment_uuid: { type: string }, }, type: object, }, } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" security: - bearerAuth: [] /version: get: summary: Version description: "Get Coolify version." operationId: version responses: "200": description: "Returns the version of the application" content: application/json: schema: type: string example: v4.0.0 "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" security: - bearerAuth: [] /health: get: summary: Healthcheck description: "Healthcheck endpoint." operationId: healthcheck responses: "200": description: "Healthcheck endpoint." content: application/json: schema: type: string example: OK "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" /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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "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: type: string format: uuid responses: "200": description: "Project deleted." content: application/json: schema: properties: message: { type: string, example: "Project deleted." } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] patch: tags: - Projects summary: Update description: "Update Project." operationId: update-project-by-uuid parameters: - name: uuid in: path description: "UUID of the application." required: true schema: type: string format: uuid 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] "/projects/{uuid}/{environment_name}": get: tags: - Projects summary: Environment description: "Get environment by name." operationId: get-environment-by-name parameters: - name: uuid in: path description: "Project UUID" required: true schema: type: string - name: environment_name in: path description: "Environment name" required: true schema: type: string responses: "200": description: "Environment details" content: application/json: schema: $ref: "#/components/schemas/Environment" "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] /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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": description: "Private Key not found." 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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." proxy_type: type: string enum: [traefik, caddy, none] example: traefik description: "The proxy type." 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid responses: "200": description: "Server deleted." content: application/json: schema: properties: message: { type: string, example: "Server deleted." } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" security: - bearerAuth: [] patch: tags: - Servers summary: Update description: "Update Server." operationId: update-server-by-uuid parameters: - name: uuid in: path description: "Server's UUID" required: true schema: type: string 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." proxy_type: type: string enum: [traefik, caddy, none] description: "The proxy type." type: object responses: "201": description: "Server updated." content: application/json: schema: type: array items: $ref: "#/components/schemas/Server" "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" security: - bearerAuth: [] post: tags: - Services summary: Create description: "Create a one-click service" operationId: create-service requestBody: required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name - type properties: type: description: "The one-click service type" type: string enum: [ activepieces, appsmith, appwrite, authentik, babybuddy, budge, changedetection, chatwoot, classicpress-with-mariadb, classicpress-with-mysql, classicpress-without-database, cloudflared, code-server, dashboard, directus, directus-with-postgresql, docker-registry, docuseal, docuseal-with-postgres, dokuwiki, duplicati, emby, embystat, fider, filebrowser, firefly, formbricks, ghost, gitea, gitea-with-mariadb, gitea-with-mysql, gitea-with-postgresql, glance, glances, glitchtip, grafana, grafana-with-postgresql, grocy, heimdall, homepage, jellyfin, jenkins, kuzzle, listmonk, logto, mediawiki, meilisearch, metabase, metube, minio, moodle, mosquitto, n8n, n8n-with-postgresql, next-image-transformation, nextcloud, nocodb, odoo, openblocks, pairdrop, penpot, phpmyadmin, pocketbase, posthog, reactive-resume, rocketchat, shlink, slash, snapdrop, statusnook, stirling-pdf, supabase, syncthing, tolgee, trigger, trigger-with-external-database, twenty, umami, unleash-with-postgresql, unleash-without-database, uptime-kuma, vaultwarden, vikunja, weblate, whoogle, wordpress-with-mariadb, wordpress-with-mysql, wordpress-without-database, ] 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 description: "Environment name." 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." type: object responses: "201": description: "Create a service." 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid responses: "200": description: "All environment variables by service UUID." content: application/json: schema: type: array items: $ref: "#/components/schemas/EnvironmentVariable" "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid 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_build_time: type: boolean description: "The flag to indicate if the environment variable is used in build time." 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid 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_build_time: type: boolean description: "The flag to indicate if the environment variable is used in build time." 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: properties: message: { type: string, example: "Environment variable updated." } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid 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_build_time: { type: boolean, description: "The flag to indicate if the environment variable is used in build time.", }, 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: properties: message: { type: string, example: "Environment variables updated." } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid - name: env_uuid in: path description: "UUID of the environment variable." required: true schema: type: string format: uuid responses: "200": description: "Environment variable deleted." content: application/json: schema: properties: message: { type: string, example: "Environment variable deleted." } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid responses: "200": description: "Start service." content: application/json: schema: properties: message: { type: string, example: "Service starting request queued.", } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid responses: "200": description: "Stop service." content: application/json: schema: properties: message: { type: string, example: "Service stopping request queued.", } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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: type: string format: uuid responses: "200": description: "Restart service." content: application/json: schema: properties: message: { type: string, example: "Service restaring request queued.", } type: object "401": $ref: "#/components/responses/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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/Unauthenticated" "400": $ref: "#/components/responses/BadRequest" 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." 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." 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 application_id: type: integer service_id: type: integer database_id: type: integer is_build_time: type: boolean is_literal: type: boolean is_multiline: type: boolean is_preview: type: boolean 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 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 environments: description: "The environments of the project." type: array items: $ref: "#/components/schemas/Environment" type: object Server: description: "Server model" properties: id: type: integer description: "The server ID." uuid: type: string description: "The server UUID." name: type: string description: "The server name." description: type: string description: "The server description." ip: type: string description: "The IP address." user: type: string description: "The user." port: type: integer description: "The port number." proxy: type: object description: "The proxy configuration." proxy_type: type: string enum: - traefik - caddy - none description: "The proxy type." high_disk_usage_notification_sent: type: boolean description: "The flag to indicate if the high disk usage notification has been sent." unreachable_notification_sent: type: boolean description: "The flag to indicate if the unreachable notification has been sent." unreachable_count: type: integer description: "The unreachable count for your server." validation_logs: type: string description: "The validation logs." log_drain_notification_sent: type: boolean description: "The flag to indicate if the log drain notification has been sent." swarm_cluster: type: string description: "The swarm cluster configuration." 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." type: object ServerSetting: description: "Server Settings model" properties: id: type: integer concurrent_builds: type: integer 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 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 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." smtp_enabled: type: boolean description: "Whether SMTP is enabled or not." smtp_from_address: type: string description: "The email address to send emails from." smtp_from_name: type: string description: "The name to send emails from." smtp_recipients: type: string description: "The email addresses to send emails to." smtp_host: type: string description: "The SMTP host." smtp_port: type: string description: "The SMTP port." smtp_encryption: type: string description: "The SMTP encryption." smtp_username: type: string description: "The SMTP username." smtp_password: type: string description: "The SMTP password." smtp_timeout: type: string description: "The SMTP timeout." smtp_notifications_test: type: boolean description: "Whether to send test notifications via SMTP." smtp_notifications_deployments: type: boolean description: "Whether to send deployment notifications via SMTP." smtp_notifications_status_changes: type: boolean description: "Whether to send status change notifications via SMTP." smtp_notifications_scheduled_tasks: type: boolean description: "Whether to send scheduled task notifications via SMTP." smtp_notifications_database_backups: type: boolean description: "Whether to send database backup notifications via SMTP." smtp_notifications_server_disk_usage: type: boolean description: "Whether to send server disk usage notifications via SMTP." discord_enabled: type: boolean description: "Whether Discord is enabled or not." discord_webhook_url: type: string description: "The Discord webhook URL." discord_notifications_test: type: boolean description: "Whether to send test notifications via Discord." discord_notifications_deployments: type: boolean description: "Whether to send deployment notifications via Discord." discord_notifications_status_changes: type: boolean description: "Whether to send status change notifications via Discord." discord_notifications_database_backups: type: boolean description: "Whether to send database backup notifications via Discord." discord_notifications_scheduled_tasks: type: boolean description: "Whether to send scheduled task notifications via Discord." discord_notifications_server_disk_usage: type: boolean description: "Whether to send server disk usage notifications via Discord." show_boarding: type: boolean description: "Whether to show the boarding screen or not." resend_enabled: type: boolean description: "Whether to enable resending or not." resend_api_key: type: string description: "The resending API key." use_instance_email_settings: type: boolean description: "Whether to use instance email settings or not." telegram_enabled: type: boolean description: "Whether Telegram is enabled or not." telegram_token: type: string description: "The Telegram token." telegram_chat_id: type: string description: "The Telegram chat ID." telegram_notifications_test: type: boolean description: "Whether to send test notifications via Telegram." telegram_notifications_deployments: type: boolean description: "Whether to send deployment notifications via Telegram." telegram_notifications_status_changes: type: boolean description: "Whether to send status change notifications via Telegram." telegram_notifications_database_backups: type: boolean description: "Whether to send database backup notifications via Telegram." telegram_notifications_test_message_thread_id: type: string description: "The Telegram test message thread ID." telegram_notifications_deployments_message_thread_id: type: string description: "The Telegram deployment message thread ID." telegram_notifications_status_changes_message_thread_id: type: string description: "The Telegram status change message thread ID." telegram_notifications_database_backups_message_thread_id: type: string description: "The Telegram database backup message thread ID." custom_server_limit: type: string description: "The custom server limit." telegram_notifications_scheduled_tasks: type: boolean description: "Whether to send scheduled task notifications via Telegram." telegram_notifications_scheduled_tasks_thread_id: type: string description: "The Telegram scheduled task message thread ID." 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: BadRequest: description: "Invalid token." content: application/json: schema: properties: message: type: string example: "Invalid token." type: object Unauthenticated: description: Unauthenticated. content: application/json: schema: properties: message: type: string example: Unauthenticated. type: object NotFound: description: "Resource not found." content: application/json: schema: properties: message: type: string example: "Resource not found." type: object 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 - name: Databases description: Databases - name: Deployments description: Deployments - 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