Coolify Applications API

Applications

OpenAPI Specification

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

# --- truncated at 32 KB (109 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coolify/refs/heads/main/openapi/coolify-applications-api-openapi.yml