2024-07-05 14:08:01 +00:00
|
|
|
openapi: 3.0.0
|
|
|
|
info:
|
|
|
|
title: Coolify
|
|
|
|
version: '0.1'
|
|
|
|
servers:
|
|
|
|
-
|
2024-07-06 12:34:15 +00:00
|
|
|
url: 'https://app.coolify.io/api/v1'
|
2024-07-05 14:08:01 +00:00
|
|
|
paths:
|
2024-07-06 12:34:15 +00:00
|
|
|
/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'
|
|
|
|
security:
|
|
|
|
-
|
|
|
|
bearerAuth: []
|
2024-07-05 14:08:01 +00:00
|
|
|
/teams:
|
|
|
|
get:
|
2024-07-06 12:34:15 +00:00
|
|
|
tags:
|
|
|
|
- Teams
|
|
|
|
summary: List
|
|
|
|
description: 'Get all teams.'
|
2024-07-05 14:08:01 +00:00
|
|
|
operationId: f9c530b5b25df9601cb87d6a58646f0a
|
|
|
|
responses:
|
|
|
|
'200':
|
2024-07-06 12:34:15 +00:00
|
|
|
description: 'List of teams.'
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: '#/components/schemas/Team'
|
2024-07-05 14:08:01 +00:00
|
|
|
'401':
|
2024-07-06 12:34:15 +00:00
|
|
|
$ref: '#/components/responses/401'
|
|
|
|
'400':
|
|
|
|
$ref: '#/components/responses/400'
|
|
|
|
security:
|
|
|
|
-
|
|
|
|
bearerAuth: []
|
2024-07-05 14:08:01 +00:00
|
|
|
'/teams/{id}':
|
|
|
|
get:
|
2024-07-06 12:34:15 +00:00
|
|
|
tags:
|
|
|
|
- Teams
|
|
|
|
summary: Get
|
|
|
|
description: 'Get team by TeamId.'
|
2024-07-05 14:08:01 +00:00
|
|
|
operationId: ac57ff546c002032cef44602c46a4e76
|
|
|
|
parameters:
|
|
|
|
-
|
|
|
|
name: id
|
|
|
|
in: path
|
|
|
|
description: 'Team ID'
|
|
|
|
required: true
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
responses:
|
|
|
|
'200':
|
2024-07-06 12:34:15 +00:00
|
|
|
description: 'List of teams.'
|
2024-07-05 14:08:01 +00:00
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
2024-07-06 12:34:15 +00:00
|
|
|
$ref: '#/components/schemas/Team'
|
|
|
|
'401':
|
|
|
|
$ref: '#/components/responses/401'
|
|
|
|
'400':
|
|
|
|
$ref: '#/components/responses/400'
|
|
|
|
'404':
|
|
|
|
$ref: '#/components/responses/404'
|
|
|
|
security:
|
|
|
|
-
|
|
|
|
bearerAuth: []
|
2024-07-05 14:08:01 +00:00
|
|
|
components:
|
2024-07-06 12:34:15 +00:00
|
|
|
schemas:
|
|
|
|
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.'
|
|
|
|
type: object
|
|
|
|
responses:
|
|
|
|
'401':
|
|
|
|
description: Unauthenticated.
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
properties:
|
|
|
|
message:
|
|
|
|
type: string
|
|
|
|
example: Unauthenticated.
|
|
|
|
type: object
|
|
|
|
'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
|
|
|
|
type: object
|
2024-07-05 14:08:01 +00:00
|
|
|
securitySchemes:
|
|
|
|
bearerAuth:
|
|
|
|
type: http
|
2024-07-06 12:34:15 +00:00
|
|
|
description: 'Go to `Keys & Tokens` / `API tokens` and create a new token. Use the token as the bearer token.'
|
2024-07-05 14:08:01 +00:00
|
|
|
scheme: bearer
|
2024-07-06 12:34:15 +00:00
|
|
|
tags:
|
|
|
|
-
|
|
|
|
name: Teams
|
|
|
|
description: Teams
|