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 GitHub Apps 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: GitHub Apps
description: GitHub Apps
paths:
/github-apps:
get:
tags:
- GitHub Apps
summary: List
description: List all GitHub apps.
operationId: list-github-apps
responses:
'200':
description: List of GitHub apps.
content:
application/json:
schema:
type: array
items:
properties:
id:
type: integer
uuid:
type: string
name:
type: string
organization:
type: string
nullable: true
api_url:
type: string
html_url:
type: string
custom_user:
type: string
custom_port:
type: integer
app_id:
type: integer
installation_id:
type: integer
client_id:
type: string
private_key_id:
type: integer
is_system_wide:
type: boolean
is_public:
type: boolean
team_id:
type: integer
type:
type: string
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
- bearerAuth: []
post:
tags:
- GitHub Apps
summary: Create GitHub App
description: Create a new GitHub app.
operationId: create-github-app
requestBody:
description: GitHub app creation payload.
required: true
content:
application/json:
schema:
required:
- name
- api_url
- html_url
- app_id
- installation_id
- client_id
- client_secret
- private_key_uuid
properties:
name:
type: string
description: Name of the GitHub app.
organization:
type: string
nullable: true
description: Organization to associate the app with.
api_url:
type: string
description: API URL for the GitHub app (e.g., https://api.github.com).
html_url:
type: string
description: HTML URL for the GitHub app (e.g., https://github.com).
custom_user:
type: string
description: 'Custom user for SSH access (default: git).'
custom_port:
type: integer
description: 'Custom port for SSH access (default: 22).'
app_id:
type: integer
description: GitHub App ID from GitHub.
installation_id:
type: integer
description: GitHub Installation ID.
client_id:
type: string
description: GitHub OAuth App Client ID.
client_secret:
type: string
description: GitHub OAuth App Client Secret.
webhook_secret:
type: string
description: Webhook secret for GitHub webhooks.
private_key_uuid:
type: string
description: UUID of an existing private key for GitHub App authentication.
is_system_wide:
type: boolean
description: Is this app system-wide (cloud only).
type: object
responses:
'201':
description: GitHub app created successfully.
content:
application/json:
schema:
properties:
id:
type: integer
uuid:
type: string
name:
type: string
organization:
type: string
nullable: true
api_url:
type: string
html_url:
type: string
custom_user:
type: string
custom_port:
type: integer
app_id:
type: integer
installation_id:
type: integer
client_id:
type: string
private_key_id:
type: integer
is_system_wide:
type: boolean
team_id:
type: integer
type: object
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'422':
$ref: '#/components/responses/422'
security:
- bearerAuth: []
/github-apps/{github_app_id}/repositories:
get:
tags:
- GitHub Apps
summary: Load Repositories for a GitHub App
description: Fetch repositories from GitHub for a given GitHub app.
operationId: load-repositories
parameters:
- name: github_app_id
in: path
description: GitHub App ID
required: true
schema:
type: integer
responses:
'200':
description: Repositories loaded successfully.
content:
application/json:
schema:
properties:
repositories:
type: array
items:
type: object
type: object
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
security:
- bearerAuth: []
/github-apps/{github_app_id}/repositories/{owner}/{repo}/branches:
get:
tags:
- GitHub Apps
summary: Load Branches for a GitHub Repository
description: Fetch branches from GitHub for a given repository.
operationId: load-branches
parameters:
- name: github_app_id
in: path
description: GitHub App ID
required: true
schema:
type: integer
- name: owner
in: path
description: Repository owner
required: true
schema:
type: string
- name: repo
in: path
description: Repository name
required: true
schema:
type: string
responses:
'200':
description: Branches loaded successfully.
content:
application/json:
schema:
properties:
branches:
type: array
items:
type: object
type: object
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
security:
- bearerAuth: []
/github-apps/{github_app_id}:
delete:
tags:
- GitHub Apps
summary: Delete GitHub App
description: Delete a GitHub app if it's not being used by any applications.
operationId: deleteGithubApp
parameters:
- name: github_app_id
in: path
description: GitHub App ID
required: true
schema:
type: integer
responses:
'200':
description: GitHub app deleted successfully
content:
application/json:
schema:
properties:
message:
type: string
example: GitHub app deleted successfully
type: object
'401':
description: Unauthorized
'404':
description: GitHub app not found
'409':
description: Conflict - GitHub app is in use
content:
application/json:
schema:
properties:
message:
type: string
example: This GitHub app is being used by 5 application(s). Please delete all applications first.
type: object
security:
- bearerAuth: []
patch:
tags:
- GitHub Apps
summary: Update GitHub App
description: Update an existing GitHub app.
operationId: updateGithubApp
parameters:
- name: github_app_id
in: path
description: GitHub App ID
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
properties:
name:
type: string
description: GitHub App name
organization:
type: string
nullable: true
description: GitHub organization
api_url:
type: string
description: GitHub API URL
html_url:
type: string
description: GitHub HTML URL
custom_user:
type: string
description: Custom user for SSH
custom_port:
type: integer
description: Custom port for SSH
app_id:
type: integer
description: GitHub App ID
installation_id:
type: integer
description: GitHub Installation ID
client_id:
type: string
description: GitHub Client ID
client_secret:
type: string
description: GitHub Client Secret
webhook_secret:
type: string
description: GitHub Webhook Secret
private_key_uuid:
type: string
description: Private key UUID
is_system_wide:
type: boolean
description: Is system wide (non-cloud instances only)
type: object
responses:
'200':
description: GitHub app updated successfully
content:
application/json:
schema:
properties:
message:
type: string
example: GitHub app updated successfully
data:
type: object
description: Updated GitHub app data
type: object
'401':
description: Unauthorized
'404':
description: GitHub app not found
'422':
$ref: '#/components/responses/422'
security:
- bearerAuth: []
components:
responses:
'404':
description: Resource not found.
content:
application/json:
schema:
properties:
message:
type: string
example: Resource not found.
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
'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
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