openapi: 3.0.0 info: title: Coolify version: '0.1' servers: - url: 'https://app.coolify.io/api/v1' paths: /applications: get: tags: - Applications summary: List description: 'List all applications.' operationId: 02978e79fc0b54d573b2359f2a1f7d86 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: [] patch: tags: - Applications summary: Update description: 'Update application by UUID.' operationId: ff28a22d25b1f658c40b54d2073abbca requestBody: description: 'Application updated.' required: true content: application/json: schema: properties: project_uuid: type: string server_uuid: type: string environment_name: type: string destination_uuid: type: string name: type: string description: type: string domains: type: string git_repository: type: string git_branch: type: string git_commit_sha: type: string docker_registry_image_name: type: string docker_registry_image_tag: type: string build_pack: type: string enum: [nixpacks, static, dockerfile, dockercompose] is_static: type: boolean install_command: type: string build_command: type: string start_command: type: string ports_exposes: type: string ports_mappings: type: string base_directory: type: string publish_directory: type: string health_check_enabled: type: boolean health_check_path: type: string health_check_port: type: integer health_check_host: type: string health_check_method: type: string health_check_return_code: type: integer health_check_scheme: type: string health_check_response_text: type: string health_check_interval: type: integer health_check_timeout: type: integer health_check_retries: type: integer health_check_start_period: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: string custom_labels: type: string custom_docker_run_options: type: string post_deployment_command: type: string post_deployment_command_container: type: string pre_deployment_command: type: string pre_deployment_command_container: type: string manual_webhook_secret_github: type: string manual_webhook_secret_gitlab: type: string manual_webhook_secret_bitbucket: type: string manual_webhook_secret_gitea: type: string redirect: type: string github_app_uuid: type: string instant_deploy: type: boolean dockerfile: type: string docker_compose_location: type: string docker_compose_raw: type: string docker_compose_custom_start_command: type: string docker_compose_custom_build_command: type: string docker_compose_domains: type: array watch_paths: type: string type: object responses: '200': description: 'Application updated.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /applications/public: post: tags: - Applications summary: 'Create (Public)' description: 'Create new application based on a public git repository.' operationId: cb56324ad19693469b4461d3f6065a5b 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 server_uuid: type: string environment_name: type: string destination_uuid: type: string name: type: string description: type: string domains: type: string git_repository: type: string git_branch: type: string git_commit_sha: type: string docker_registry_image_name: type: string docker_registry_image_tag: type: string build_pack: type: string enum: [nixpacks, static, dockerfile, dockercompose] is_static: type: boolean install_command: type: string build_command: type: string start_command: type: string ports_exposes: type: string ports_mappings: type: string base_directory: type: string publish_directory: type: string health_check_enabled: type: boolean health_check_path: type: string health_check_port: type: integer health_check_host: type: string health_check_method: type: string health_check_return_code: type: integer health_check_scheme: type: string health_check_response_text: type: string health_check_interval: type: integer health_check_timeout: type: integer health_check_retries: type: integer health_check_start_period: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: string custom_labels: type: string custom_docker_run_options: type: string post_deployment_command: type: string post_deployment_command_container: type: string pre_deployment_command: type: string pre_deployment_command_container: type: string manual_webhook_secret_github: type: string manual_webhook_secret_gitlab: type: string manual_webhook_secret_bitbucket: type: string manual_webhook_secret_gitea: type: string redirect: type: string instant_deploy: type: boolean dockerfile: type: string docker_compose_location: type: string docker_compose_raw: type: string docker_compose_custom_start_command: type: string docker_compose_custom_build_command: type: string docker_compose_domains: type: array watch_paths: type: string type: object responses: '200': description: 'Application created successfully.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /applications/private-gh-app: post: tags: - Applications summary: 'Create (Private - GH App)' description: 'Create new application based on a private repository through a Github App.' operationId: 4d46c84bda4f1a411f6dda15fce4061f 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 server_uuid: type: string environment_name: type: string github_app_uuid: type: string destination_uuid: type: string name: type: string description: type: string domains: type: string git_repository: type: string git_branch: type: string git_commit_sha: type: string docker_registry_image_name: type: string docker_registry_image_tag: type: string build_pack: type: string enum: [nixpacks, static, dockerfile, dockercompose] is_static: type: boolean install_command: type: string build_command: type: string start_command: type: string ports_exposes: type: string ports_mappings: type: string base_directory: type: string publish_directory: type: string health_check_enabled: type: boolean health_check_path: type: string health_check_port: type: integer health_check_host: type: string health_check_method: type: string health_check_return_code: type: integer health_check_scheme: type: string health_check_response_text: type: string health_check_interval: type: integer health_check_timeout: type: integer health_check_retries: type: integer health_check_start_period: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: string custom_labels: type: string custom_docker_run_options: type: string post_deployment_command: type: string post_deployment_command_container: type: string pre_deployment_command: type: string pre_deployment_command_container: type: string manual_webhook_secret_github: type: string manual_webhook_secret_gitlab: type: string manual_webhook_secret_bitbucket: type: string manual_webhook_secret_gitea: type: string redirect: type: string instant_deploy: type: boolean dockerfile: type: string docker_compose_location: type: string docker_compose_raw: type: string docker_compose_custom_start_command: type: string docker_compose_custom_build_command: type: string docker_compose_domains: type: array watch_paths: type: string type: object responses: '200': description: 'Application created successfully.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' 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: e3eaa989ffb05366247a00cdfd551efa 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 server_uuid: type: string environment_name: type: string private_key_uuid: type: string destination_uuid: type: string name: type: string description: type: string domains: type: string git_repository: type: string git_branch: type: string git_commit_sha: type: string docker_registry_image_name: type: string docker_registry_image_tag: type: string build_pack: type: string enum: [nixpacks, static, dockerfile, dockercompose] is_static: type: boolean install_command: type: string build_command: type: string start_command: type: string ports_exposes: type: string ports_mappings: type: string base_directory: type: string publish_directory: type: string health_check_enabled: type: boolean health_check_path: type: string health_check_port: type: integer health_check_host: type: string health_check_method: type: string health_check_return_code: type: integer health_check_scheme: type: string health_check_response_text: type: string health_check_interval: type: integer health_check_timeout: type: integer health_check_retries: type: integer health_check_start_period: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: string custom_labels: type: string custom_docker_run_options: type: string post_deployment_command: type: string post_deployment_command_container: type: string pre_deployment_command: type: string pre_deployment_command_container: type: string manual_webhook_secret_github: type: string manual_webhook_secret_gitlab: type: string manual_webhook_secret_bitbucket: type: string manual_webhook_secret_gitea: type: string redirect: type: string instant_deploy: type: boolean dockerfile: type: string docker_compose_location: type: string docker_compose_raw: type: string docker_compose_custom_start_command: type: string docker_compose_custom_build_command: type: string docker_compose_domains: type: array watch_paths: type: string type: object responses: '200': description: 'Application created successfully.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /applications/dockerfile: post: tags: - Applications summary: 'Create (Dockerfile)' description: 'Create new application based on a simple Dockerfile.' operationId: 2b433ad6f5d259eb7f4f3b5af9913708 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 server_uuid: type: string environment_name: type: string dockerfile: type: string destination_uuid: type: string name: type: string description: type: string domains: type: string docker_registry_image_name: type: string docker_registry_image_tag: type: string ports_exposes: type: string ports_mappings: type: string base_directory: type: string health_check_enabled: type: boolean health_check_path: type: string health_check_port: type: integer health_check_host: type: string health_check_method: type: string health_check_return_code: type: integer health_check_scheme: type: string health_check_response_text: type: string health_check_interval: type: integer health_check_timeout: type: integer health_check_retries: type: integer health_check_start_period: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: string custom_labels: type: string custom_docker_run_options: type: string post_deployment_command: type: string post_deployment_command_container: type: string pre_deployment_command: type: string pre_deployment_command_container: type: string manual_webhook_secret_github: type: string manual_webhook_secret_gitlab: type: string manual_webhook_secret_bitbucket: type: string manual_webhook_secret_gitea: type: string redirect: type: string instant_deploy: type: boolean type: object responses: '200': description: 'Application created successfully.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /applications/dockerimage: post: tags: - Applications summary: 'Create (Docker Image)' description: 'Create new application based on a prebuilt docker image' operationId: e9a2d6dd9404acf880dc3053f09477fc 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 server_uuid: type: string environment_name: type: string docker_registry_image_name: type: string docker_registry_image_tag: type: string destination_uuid: type: string name: type: string description: type: string domains: type: string git_repository: type: string git_branch: type: string git_commit_sha: type: string ports_exposes: type: string ports_mappings: type: string health_check_enabled: type: boolean health_check_path: type: string health_check_port: type: integer health_check_host: type: string health_check_method: type: string health_check_return_code: type: integer health_check_scheme: type: string health_check_response_text: type: string health_check_interval: type: integer health_check_timeout: type: integer health_check_retries: type: integer health_check_start_period: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: string custom_labels: type: string custom_docker_run_options: type: string post_deployment_command: type: string post_deployment_command_container: type: string pre_deployment_command: type: string pre_deployment_command_container: type: string manual_webhook_secret_github: type: string manual_webhook_secret_gitlab: type: string manual_webhook_secret_bitbucket: type: string manual_webhook_secret_gitea: type: string redirect: type: string instant_deploy: type: boolean type: object responses: '200': description: 'Application created successfully.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /applications/dockercompose: post: tags: - Applications summary: 'Create (Docker Compose)' description: 'Create new application based on a docker-compose file.' operationId: 3731add8226c2d664455978cac46c242 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 server_uuid: type: string environment_name: type: string docker_compose_raw: type: string destination_uuid: type: string name: type: string description: type: string instant_deploy: type: boolean type: object responses: '200': description: 'Application created successfully.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/applications/{uuid}': get: tags: - Applications summary: Get description: 'Get application by UUID.' operationId: 3630b62c28e7358e7f0087c1d8fe1845 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] delete: tags: - Applications summary: Delete description: 'Delete application by UUID.' operationId: 1e110b190a1045d34f3e1c61608a8702 parameters: - name: uuid in: path description: 'UUID of the application.' required: true schema: type: string format: uuid responses: '200': description: 'Application deleted.' content: application/json: schema: properties: message: { type: string, example: 'Application deleted.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/applications/{uuid}/envs': get: tags: - Applications summary: 'List Envs' description: 'List all envs by application UUID.' operationId: 7c8e0c286870e23294a075cc0584df2f 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] post: tags: - Applications summary: 'Create Env' description: 'Create env by application UUID.' operationId: 4699ffbb7d6e58581fd0b0a14f36ffc2 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 value: type: string is_preview: type: boolean is_build_time: type: boolean is_literal: type: boolean is_multiline: type: boolean is_shown_once: type: boolean type: object responses: '201': description: 'Environment variable created.' content: application/json: schema: properties: uuid: { type: string, example: nc0k04gk8g0cgsk440g0koko } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] patch: tags: - Applications summary: 'Update Env' description: 'Update env by application UUID.' operationId: 3d70a2d569f395be220b3f09ad36674b 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 value: type: string is_preview: type: boolean is_build_time: type: boolean is_literal: type: boolean is_multiline: type: boolean is_shown_once: type: boolean 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/applications/{uuid}/envs/bulk': patch: tags: - Applications summary: 'Update Envs (Bulk)' description: 'Update multiple envs by application UUID.' operationId: ae96f0f585ed158b2abd2d9ba40f3cf9 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 }, value: { type: string }, is_preview: { type: boolean }, is_build_time: { type: boolean }, is_literal: { type: boolean }, is_multiline: { type: boolean }, is_shown_once: { type: boolean } }, 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/applications/{uuid}/envs/{env_uuid}': delete: tags: - Applications summary: 'Delete Env' description: 'Delete env by UUID.' operationId: 96097c5cfc7dc0e7a3de229645f630c7 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/applications/{uuid}/start': get: tags: - Applications summary: Start description: 'Start application. `Post` request is also accepted.' operationId: dc87c2061ab303757a0e061f87900c4c 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.' } deployment_uuid: { type: string, example: doogksw } deployment_api_url: { type: string } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/applications/{uuid}/stop': get: tags: - Applications summary: Stop description: 'Stop application. `Post` request is also accepted.' operationId: 133ef3c7bd5043901f24bb5002a536eb 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/applications/{uuid}/restart': get: tags: - Applications summary: Restart description: 'Restart application. `Post` request is also accepted.' operationId: b231ae7baab9ef47f0627be820e735bc 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 } deployment_api_url: { type: string } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /databases: get: tags: - Databases summary: List description: 'List all databases.' operationId: ecd0ee1e46e4c854c18e6c9daa3d37f3 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/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/databases/{uuid}': get: tags: - Databases summary: Get description: 'Get database by UUID.' operationId: b49cb2d3e8f34c4e80cdffd8a201031d 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] delete: tags: - Databases summary: Delete description: 'Delete database by UUID.' operationId: 20610931b2bae8aba34eee68624ab673 parameters: - name: uuid in: path description: 'UUID of the database.' required: true schema: type: string format: uuid responses: '200': description: 'Database deleted.' content: application/json: schema: properties: message: { type: string, example: 'Database deleted.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] patch: tags: - Databases summary: Update description: 'Update database by UUID.' operationId: 5ba459ed390a721711a1708760e9de3b 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: type: string image: type: string is_public: type: boolean public_port: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: integer postgres_user: type: string postgres_password: type: string postgres_db: type: string postgres_initdb_args: type: string postgres_host_auth_method: type: string postgres_conf: type: string clickhouse_admin_user: type: string clickhouse_admin_password: type: string dragonfly_password: type: string redis_password: type: string redis_conf: type: string keydb_password: type: string keydb_conf: type: string mariadb_conf: type: string mariadb_root_password: type: string mariadb_user: type: string mariadb_password: type: string mariadb_database: type: string mongo_conf: type: string mongo_initdb_root_username: type: string mongo_initdb_root_password: type: string mongo_initdb_init_database: type: string mysql_root_password: type: string mysql_user: type: string mysql_database: type: string mysql_conf: type: string type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /databases/postgresql: post: tags: - Databases summary: 'Create (PostgreSQL)' description: 'Create a new PostgreSQL database.' operationId: 8f7f491ddc46a9fa065b4424512231cd requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string project_uuid: type: string environment_name: type: string postgres_user: type: string postgres_password: type: string postgres_db: type: string postgres_initdb_args: type: string postgres_host_auth_method: type: string postgres_conf: type: string destination_uuid: type: string name: type: string description: type: string image: type: string is_public: type: boolean public_port: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: integer instant_deploy: type: boolean type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/clickhouse: post: tags: - Databases summary: 'Create (Clickhouse)' description: 'Create a new Clickhouse database.' operationId: a1189fa7f956f238f0e95c9150ff57f6 requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string project_uuid: type: string environment_name: type: string destination_uuid: type: string clickhouse_admin_user: type: string clickhouse_admin_password: type: string name: type: string description: type: string image: type: string is_public: type: boolean public_port: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: integer instant_deploy: type: boolean type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/dragonfly: post: tags: - Databases summary: 'Create (DragonFly)' description: 'Create a new DragonFly database.' operationId: e73f7de1c8eee4219e5ec98c4b9b7efe requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string project_uuid: type: string environment_name: type: string destination_uuid: type: string dragonfly_password: type: string name: type: string description: type: string image: type: string is_public: type: boolean public_port: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: integer instant_deploy: type: boolean type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/redis: post: tags: - Databases summary: 'Create (Redis)' description: 'Create a new Redis database.' operationId: 4d352d13544ee2953fd48ad7b0651098 requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string project_uuid: type: string environment_name: type: string destination_uuid: type: string redis_password: type: string redis_conf: type: string name: type: string description: type: string image: type: string is_public: type: boolean public_port: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: integer instant_deploy: type: boolean type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/keydb: post: tags: - Databases summary: 'Create (KeyDB)' description: 'Create a new KeyDB database.' operationId: b908f3929c371c217d489638e0a21ff6 requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string project_uuid: type: string environment_name: type: string destination_uuid: type: string keydb_password: type: string keydb_conf: type: string name: type: string description: type: string image: type: string is_public: type: boolean public_port: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: integer instant_deploy: type: boolean type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/mariadb: post: tags: - Databases summary: 'Create (MariaDB)' description: 'Create a new MariaDB database.' operationId: 6bea521ddcd738dcbb5f3783a7308acf requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string project_uuid: type: string environment_name: type: string destination_uuid: type: string mariadb_conf: type: string mariadb_root_password: type: string mariadb_user: type: string mariadb_password: type: string mariadb_database: type: string name: type: string description: type: string image: type: string is_public: type: boolean public_port: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: integer instant_deploy: type: boolean type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/mysql: post: tags: - Databases summary: 'Create (MySQL)' description: 'Create a new MySQL database.' operationId: 0a1158cf759c4493cbb1e30024c60623 requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string project_uuid: type: string environment_name: type: string destination_uuid: type: string mysql_root_password: type: string mysql_user: type: string mysql_database: type: string mysql_conf: type: string name: type: string description: type: string image: type: string is_public: type: boolean public_port: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: integer instant_deploy: type: boolean type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/mongodb: post: tags: - Databases summary: 'Create (MongoDB)' description: 'Create a new MongoDB database.' operationId: fdba3de84d02519bb37599fea34b115d requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string project_uuid: type: string environment_name: type: string destination_uuid: type: string mongo_conf: type: string mongo_initdb_root_username: type: string name: type: string description: type: string image: type: string is_public: type: boolean public_port: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string limits_cpu_shares: type: integer instant_deploy: type: boolean type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/databases/{uuid}/start': get: tags: - Databases summary: Start description: 'Start database. `Post` request is also accepted.' operationId: 4c6eb21e734d411e2b3388578761123d 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/databases/{uuid}/stop': get: tags: - Databases summary: Stop description: 'Stop database. `Post` request is also accepted.' operationId: cb6d983c2679aff841c7501ce612a372 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/databases/{uuid}/restart': get: tags: - Databases summary: Restart description: 'Restart database. `Post` request is also accepted.' operationId: 04c7a5e4752b4a00036addb433f3f218 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /deployments: get: tags: - Deployments summary: List description: 'List currently running deployments' operationId: a2c05736269191ad0d99cadfd4708986 responses: '200': description: 'Get all currently running deployments.' content: application/json: schema: type: array items: $ref: '#/components/schemas/ApplicationDeploymentQueue' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/deployments/{uuid}': get: tags: - Deployments summary: Get description: 'Get deployment by UUID.' operationId: ccf9856174c115a1430d952ccbd36aea parameters: - name: uuid in: path description: 'Deployment Uuid' required: true schema: type: integer responses: '200': description: 'Get deployment by UUID.' content: application/json: schema: $ref: '#/components/schemas/ApplicationDeploymentQueue' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /deploy: get: tags: - Deployments summary: Deploy description: 'Deploy by tag or uuid. `Post` request also accepted.' operationId: 700eb6e51f4c9e86d722f600c65ed1d4 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/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /version: get: summary: Version description: 'Get Coolify version.' operationId: 187b37139844731110757711ee71c215 responses: '200': description: 'Returns the version of the application' content: application/json: schema: type: string example: v4.0.0 '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /enable: get: summary: 'Enable API' description: 'Enable API (only with root permissions).' operationId: 595019bae03d08277def667609779ff3 responses: '200': description: 'Enable API.' content: application/json: schema: properties: message: { type: string, example: 'API enabled.' } type: object '403': description: 'You are not allowed to enable the API.' content: application/json: schema: properties: message: { type: string, example: 'You are not allowed to enable the API.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /disable: get: summary: 'Disable API' description: 'Disable API (only with root permissions).' operationId: 50e2486a2d196a996b24a284a283bcdb responses: '200': description: 'Disable API.' content: application/json: schema: properties: message: { type: string, example: 'API disabled.' } type: object '403': description: 'You are not allowed to disable the API.' content: application/json: schema: properties: message: { type: string, example: 'You are not allowed to disable the API.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /healthcheck: get: summary: Healthcheck description: 'Healthcheck endpoint.' operationId: 64db893135e686704bb88c3c238022c1 responses: '200': description: 'Healthcheck endpoint.' content: application/json: schema: type: string example: OK '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' /projects: get: tags: - Projects summary: List description: 'list projects.' operationId: 762788f00f2dabb981df9adbc948d3f6 responses: '200': description: 'Get all projects.' content: application/json: schema: type: array items: $ref: '#/components/schemas/Project' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/projects/{uuid}': get: tags: - Projects summary: Get description: 'Get project by Uuid.' operationId: 63bf8b6a68fbb757f09ab519331f6298 parameters: - name: uuid in: path description: 'Project UUID' required: true schema: type: integer responses: '200': description: 'Project details' content: application/json: schema: $ref: '#/components/schemas/Project' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': description: 'Project not found.' security: - bearerAuth: [] '/projects/{uuid}/{environment_name}': get: tags: - Projects summary: Environment description: 'Get environment by name.' operationId: 7e44845dce5aa47ed7b0daf5595ad2e1 parameters: - name: uuid in: path description: 'Project UUID' required: true schema: type: integer - name: environment_name in: path description: 'Environment name' required: true schema: type: string responses: '200': description: 'Project details' content: application/json: schema: $ref: '#/components/schemas/Environment' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /resources: get: tags: - Resources summary: List description: 'Get all resources.' operationId: c399903694eb1314596832e49f7c66d7 responses: '200': description: 'Get all resources' content: application/json: schema: type: string example: 'Content is very complex. Will be implemented later.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /security/keys: get: tags: - 'Private Keys' summary: List description: 'List all private keys.' operationId: 8a5d8d3ccbbcef54ed0e913a27faea9d responses: '200': description: 'Get all private keys.' content: application/json: schema: type: array items: $ref: '#/components/schemas/PrivateKey' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] post: tags: - 'Private Keys' summary: Create description: 'Create a new private key.' operationId: eb4780acaa990c594cdbe8ffa80b4fb0 requestBody: required: true content: application/json: schema: required: - private_key properties: name: type: string description: type: string private_key: type: string type: object additionalProperties: false responses: '201': description: "The created private key's UUID." content: application/json: schema: properties: uuid: { type: string } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] patch: tags: - 'Private Keys' summary: Update description: 'Update a private key.' operationId: 371fd26b8949a070c26a264231fe233f requestBody: required: true content: application/json: schema: required: - private_key properties: name: type: string description: type: string private_key: type: string type: object additionalProperties: false responses: '201': description: "The updated private key's UUID." content: application/json: schema: properties: uuid: { type: string } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/security/keys/{uuid}': get: tags: - 'Private Keys' summary: Get description: 'Get key by UUID.' operationId: 2f743a85eb65d5ddb8cd5b362bb3d26a parameters: - name: uuid in: path description: 'Private Key Uuid' required: true schema: type: integer responses: '200': description: 'Get all private keys.' content: application/json: schema: type: array items: $ref: '#/components/schemas/PrivateKey' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': description: 'Private Key not found.' security: - bearerAuth: [] delete: tags: - 'Private Keys' summary: Delete description: 'Delete a private key.' operationId: 8faa0bb399142f0084dfc3e003c42cf6 parameters: - name: uuid in: path description: 'Private Key Uuid' required: true schema: type: integer responses: '200': description: 'Private Key deleted.' content: application/json: schema: properties: message: { type: string, example: 'Private Key deleted.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': description: 'Private Key not found.' security: - bearerAuth: [] /servers: get: tags: - Servers summary: List description: 'List all servers.' operationId: 787448df856cefd2d9a313566be30d34 responses: '200': description: 'Get all servers.' content: application/json: schema: type: array items: $ref: '#/components/schemas/Server' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/servers/{uuid}': get: tags: - Servers summary: Get description: 'Get server by UUID.' operationId: 5baf04bddb8302c7e07f5b4c41aad10c parameters: - name: uuid in: path description: "Server's Uuid" required: true schema: type: integer responses: '200': description: 'Get server by UUID' content: application/json: schema: $ref: '#/components/schemas/Server' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/servers/{uuid}/resources': get: tags: - Servers summary: Resources description: 'Get resources by server.' operationId: cef26c059941b44fbd8de3a7a58c10a5 parameters: - name: uuid in: path description: "Server's Uuid" required: true schema: type: integer responses: '200': description: 'Get resources by server' content: application/json: schema: type: array items: properties: { id: { type: integer }, uuid: { type: string }, name: { type: string }, type: { type: string }, created_at: { type: string }, updated_at: { type: string }, status: { type: string } } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/servers/{uuid}/domains': get: tags: - Servers summary: Domains description: 'Get domains by server.' operationId: 1ee227755be848d572f412272f53dd93 parameters: - name: uuid in: path description: "Server's Uuid" required: true schema: type: integer responses: '200': description: 'Get domains by server' content: application/json: schema: type: array items: properties: { ip: { type: string }, domains: { type: array, items: { type: string } } } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /services: get: tags: - Services summary: List description: 'List all services.' operationId: 5d014ac25d33391b8f4c2316060ba452 responses: '200': description: 'Get all services' content: application/json: schema: type: array items: $ref: '#/components/schemas/Service' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] post: tags: - Services summary: Create description: 'Create a one-click service' operationId: 3d6cbfb54d919b53ba3984a113e837d7 requestBody: required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name - type properties: 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, kuzzle, listmonk, logto, mediawiki, meilisearch, metabase, metube, minio, moodle, 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] server_uuid: type: string project_uuid: type: string environment_name: type: string destination_uuid: type: string name: type: string description: type: string instant_deploy: type: boolean type: object responses: '201': description: 'Create a service.' content: application/json: schema: properties: uuid: { type: string } domains: { type: array, items: { type: string } } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/services/{uuid}': get: tags: - Services summary: Get description: 'Get service by UUID.' operationId: 895d39ee2cb3994285de57256c2d428d parameters: - name: uuid in: path description: 'Service UUID' required: true schema: type: string responses: '200': description: 'Get a service by Uuid.' content: application/json: schema: $ref: '#/components/schemas/Service' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] delete: tags: - Services summary: Delete description: 'Delete service by UUID.' operationId: 6e1a61e4fddaa9d95bb9fc66dfaf0442 parameters: - name: uuid in: path description: 'Service UUID' required: true schema: type: string responses: '200': description: 'Delete a service by Uuid' content: application/json: schema: properties: message: { type: string, example: 'Service deletion request queued.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/services/{uuid}/start': get: tags: - Services summary: Start description: 'Start service. `Post` request is also accepted.' operationId: d2ddd9c028d123fbdec830dc4b25b4cb 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/services/{uuid}/stop': get: tags: - Services summary: Stop description: 'Stop service. `Post` request is also accepted.' operationId: 87399d34758ce16830740c68626614db 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/services/{uuid}/restart': get: tags: - Services summary: Restart description: 'Restart service. `Post` request is also accepted.' operationId: 836645faa615b75052759dae78639469 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/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /teams: get: tags: - Teams summary: List description: 'Get all teams.' operationId: f9c530b5b25df9601cb87d6a58646f0a responses: '200': description: 'List of teams.' content: application/json: schema: type: array items: $ref: '#/components/schemas/Team' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/teams/{id}': get: tags: - Teams summary: Get description: 'Get team by TeamId.' operationId: ac57ff546c002032cef44602c46a4e76 parameters: - name: id in: path description: 'Team ID' required: true schema: type: integer responses: '200': description: 'List of teams.' content: application/json: schema: $ref: '#/components/schemas/Team' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/teams/{id}/members': get: tags: - Teams summary: Members description: 'Get members by TeamId.' operationId: 7858f5a45d9ea55184c182852a7f0f6c parameters: - name: id in: path description: 'Team ID' required: true schema: type: integer responses: '200': description: 'List of members.' content: application/json: schema: type: array items: $ref: '#/components/schemas/User' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /teams/current: get: tags: - Teams summary: 'Authenticated Team' description: 'Get currently authenticated team.' operationId: 6a4ec9fed1aad7b0b38356c47d7ac509 responses: '200': description: 'Current Team.' content: application/json: schema: $ref: '#/components/schemas/Team' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /teams/current/members: get: tags: - Teams summary: 'Authenticated Team Members' description: 'Get currently authenticated team members.' operationId: 97e636a5796dbe71afb0bbcf1eec6e41 responses: '200': description: 'Currently authenticated team members.' content: application/json: schema: type: array items: $ref: '#/components/schemas/User' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] components: schemas: Application: description: 'Application model' properties: id: type: integer repository_project_id: type: integer nullable: true uuid: type: string name: type: string fqdn: type: string config_hash: type: string git_repository: type: string git_branch: type: string git_commit_sha: type: string git_full_url: type: string nullable: true docker_registry_image_name: type: string nullable: true docker_registry_image_tag: type: string nullable: true build_pack: type: string static_image: type: string install_command: type: string build_command: type: string start_command: type: string ports_exposes: type: string ports_mappings: type: string nullable: true base_directory: type: string publish_directory: type: string health_check_path: type: string health_check_port: type: string nullable: true health_check_host: type: string health_check_method: type: string health_check_return_code: type: integer health_check_scheme: type: string health_check_response_text: type: string nullable: true health_check_interval: type: integer health_check_timeout: type: integer health_check_retries: type: integer health_check_start_period: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string nullable: true limits_cpu_shares: type: integer status: type: string preview_url_template: type: string destination_type: type: string destination_id: type: integer source_type: type: string source_id: type: integer private_key_id: type: integer nullable: true environment_id: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time description: type: string nullable: true dockerfile: type: string nullable: true health_check_enabled: type: boolean dockerfile_location: type: string custom_labels: type: string dockerfile_target_build: type: string nullable: true manual_webhook_secret_github: type: string nullable: true manual_webhook_secret_gitlab: type: string nullable: true docker_compose_location: type: string docker_compose: type: string nullable: true docker_compose_raw: type: string nullable: true docker_compose_domains: type: string nullable: true deleted_at: type: string format: date-time nullable: true docker_compose_custom_start_command: type: string nullable: true docker_compose_custom_build_command: type: string nullable: true swarm_replicas: type: integer swarm_placement_constraints: type: string nullable: true manual_webhook_secret_bitbucket: type: string nullable: true custom_docker_run_options: type: string nullable: true post_deployment_command: type: string nullable: true post_deployment_command_container: type: string nullable: true pre_deployment_command: type: string nullable: true pre_deployment_command_container: type: string nullable: true watch_paths: type: string nullable: true custom_healthcheck_found: type: boolean manual_webhook_secret_gitea: type: string nullable: true redirect: type: string 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 environments: description: 'The environments of the project.' type: array items: $ref: '#/components/schemas/Environment' type: object Server: description: 'Application model' properties: id: type: integer repository_project_id: type: integer nullable: true uuid: type: string name: type: string fqdn: type: string config_hash: type: string git_repository: type: string git_branch: type: string git_commit_sha: type: string git_full_url: type: string nullable: true docker_registry_image_name: type: string nullable: true docker_registry_image_tag: type: string nullable: true build_pack: type: string static_image: type: string install_command: type: string build_command: type: string start_command: type: string ports_exposes: type: string ports_mappings: type: string nullable: true base_directory: type: string publish_directory: type: string health_check_path: type: string health_check_port: type: string nullable: true health_check_host: type: string health_check_method: type: string health_check_return_code: type: integer health_check_scheme: type: string health_check_response_text: type: string nullable: true health_check_interval: type: integer health_check_timeout: type: integer health_check_retries: type: integer health_check_start_period: type: integer limits_memory: type: string limits_memory_swap: type: string limits_memory_swappiness: type: integer limits_memory_reservation: type: string limits_cpus: type: string limits_cpuset: type: string nullable: true limits_cpu_shares: type: integer status: type: string preview_url_template: type: string destination_type: type: string destination_id: type: integer source_type: type: string source_id: type: integer private_key_id: type: integer nullable: true environment_id: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time description: type: string nullable: true dockerfile: type: string nullable: true health_check_enabled: type: boolean dockerfile_location: type: string custom_labels: type: string dockerfile_target_build: type: string nullable: true manual_webhook_secret_github: type: string nullable: true manual_webhook_secret_gitlab: type: string nullable: true docker_compose_location: type: string docker_compose: type: string nullable: true docker_compose_raw: type: string nullable: true docker_compose_domains: type: string nullable: true deleted_at: type: string format: date-time nullable: true docker_compose_custom_start_command: type: string nullable: true docker_compose_custom_build_command: type: string nullable: true swarm_replicas: type: integer swarm_placement_constraints: type: string nullable: true manual_webhook_secret_bitbucket: type: string nullable: true custom_docker_run_options: type: string nullable: true post_deployment_command: type: string nullable: true post_deployment_command_container: type: string nullable: true pre_deployment_command: type: string nullable: true pre_deployment_command_container: type: string nullable: true watch_paths: type: string nullable: true custom_healthcheck_found: type: boolean manual_webhook_secret_gitea: type: string nullable: true redirect: type: string type: object ServerSetting: description: 'Server Settings model' properties: id: type: integer cleanup_after_percentage: type: integer concurrent_builds: type: integer dynamic_timeout: type: integer force_disabled: 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_server_api_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 metrics_history_days: type: integer metrics_refresh_rate_seconds: type: integer metrics_token: type: string 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 uuid: type: string name: type: string environment_id: type: integer created_at: type: string updated_at: type: string server_id: type: integer description: type: string docker_compose_raw: type: string docker_compose: type: string destination_type: type: string destination_id: type: integer deleted_at: type: string connect_to_docker_network: type: boolean config_hash: type: string service_type: type: string is_container_label_escape_enabled: type: boolean 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.' 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.' 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 name: type: string email: type: string email_verified_at: type: string created_at: type: string updated_at: type: string two_factor_confirmed_at: type: string force_password_reset: type: boolean marketing_emails: type: boolean type: object responses: '400': description: 'Invalid token.' content: application/json: schema: properties: message: type: string example: 'Invalid token.' type: object '401': description: Unauthenticated. content: application/json: schema: properties: message: type: string example: Unauthenticated. type: object '404': description: 'Resource not found.' content: application/json: schema: properties: message: type: string example: 'Resource not found.' type: object 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