Documentation
Documentation
https://coolify.io/docs/api-reference/authorization
Authentication
https://coolify.io/docs/api-reference/authorization
openapi: 3.1.0
info:
title: Coolify Applications Projects 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: Projects
description: Projects
paths:
/projects:
get:
tags:
- Projects
summary: List
description: List projects.
operationId: list-projects
responses:
'200':
description: Get all projects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Project'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
- bearerAuth: []
post:
tags:
- Projects
summary: Create
description: Create Project.
operationId: create-project
requestBody:
description: Project created.
required: true
content:
application/json:
schema:
properties:
name:
type: string
description: The name of the project.
description:
type: string
description: The description of the project.
type: object
responses:
'201':
description: Project created.
content:
application/json:
schema:
properties:
uuid:
type: string
example: og888os
description: The UUID of the project.
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
security:
- bearerAuth: []
/projects/{uuid}:
get:
tags:
- Projects
summary: Get
description: Get project by UUID.
operationId: get-project-by-uuid
parameters:
- name: uuid
in: path
description: Project UUID
required: true
schema:
type: string
responses:
'200':
description: Project details
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
description: Project not found.
security:
- bearerAuth: []
delete:
tags:
- Projects
summary: Delete
description: Delete project by UUID.
operationId: delete-project-by-uuid
parameters:
- name: uuid
in: path
description: UUID of the application.
required: true
schema:
type: string
responses:
'200':
description: Project deleted.
content:
application/json:
schema:
properties:
message:
type: string
example: Project deleted.
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
security:
- bearerAuth: []
patch:
tags:
- Projects
summary: Update
description: Update Project.
operationId: update-project-by-uuid
parameters:
- name: uuid
in: path
description: UUID of the project.
required: true
schema:
type: string
requestBody:
description: Project updated.
required: true
content:
application/json:
schema:
properties:
name:
type: string
description: The name of the project.
description:
type: string
description: The description of the project.
type: object
responses:
'201':
description: Project updated.
content:
application/json:
schema:
properties:
uuid:
type: string
example: og888os
name:
type: string
example: Project Name
description:
type: string
example: Project Description
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
security:
- bearerAuth: []
/projects/{uuid}/{environment_name_or_uuid}:
get:
tags:
- Projects
summary: Environment
description: Get environment by name or UUID.
operationId: get-environment-by-name-or-uuid
parameters:
- name: uuid
in: path
description: Project UUID
required: true
schema:
type: string
- name: environment_name_or_uuid
in: path
description: Environment name or UUID
required: true
schema:
type: string
responses:
'200':
description: Environment details
content:
application/json:
schema:
$ref: '#/components/schemas/Environment'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
security:
- bearerAuth: []
/projects/{uuid}/environments:
get:
tags:
- Projects
summary: List Environments
description: List all environments in a project.
operationId: get-environments
parameters:
- name: uuid
in: path
description: Project UUID
required: true
schema:
type: string
responses:
'200':
description: List of environments
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Environment'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
description: Project not found.
'422':
$ref: '#/components/responses/422'
security:
- bearerAuth: []
post:
tags:
- Projects
summary: Create Environment
description: Create environment in project.
operationId: create-environment
parameters:
- name: uuid
in: path
description: Project UUID
required: true
schema:
type: string
requestBody:
description: Environment created.
required: true
content:
application/json:
schema:
properties:
name:
type: string
description: The name of the environment.
type: object
responses:
'201':
description: Environment created.
content:
application/json:
schema:
properties:
uuid:
type: string
example: env123
description: The UUID of the environment.
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
description: Project not found.
'409':
description: Environment with this name already exists.
'422':
$ref: '#/components/responses/422'
security:
- bearerAuth: []
/projects/{uuid}/environments/{environment_name_or_uuid}:
delete:
tags:
- Projects
summary: Delete Environment
description: Delete environment by name or UUID. Environment must be empty.
operationId: delete-environment
parameters:
- name: uuid
in: path
description: Project UUID
required: true
schema:
type: string
- name: environment_name_or_uuid
in: path
description: Environment name or UUID
required: true
schema:
type: string
responses:
'200':
description: Environment deleted.
content:
application/json:
schema:
properties:
message:
type: string
example: Environment deleted.
type: object
'401':
$ref: '#/components/responses/401'
'400':
description: Environment has resources, so it cannot be deleted.
'404':
description: Project or environment not found.
'422':
$ref: '#/components/responses/422'
security:
- bearerAuth: []
components:
schemas:
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
Project:
description: Project model
properties:
id:
type: integer
uuid:
type: string
name:
type: string
description:
type: string
type: object
responses:
'400':
description: Invalid token.
content:
application/json:
schema:
properties:
message:
type: string
example: Invalid token.
type: object
'404':
description: Resource not found.
content:
application/json:
schema:
properties:
message:
type: string
example: Resource not found.
type: object
'401':
description: Unauthenticated.
content:
application/json:
schema:
properties:
message:
type: string
example: Unauthenticated.
type: object
'422':
description: Validation error.
content:
application/json:
schema:
properties:
message:
type: string
example: Validation error.
errors:
type: object
example:
name:
- The name field is required.
api_url:
- The api url field is required.
- The api url format is invalid.
additionalProperties:
type: array
items:
type: string
type: object
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