API server

https://app.coolify.io/api/v1

Choose where to send API requests

This changes the request URL and code examples on every endpoint page.

API server type

Requests will use

https://app.coolify.io/api/v1

Use only a Coolify URL you trust. Sending a test request also sends the API token you enter.

POST
/gitlab-apps

Create a new GitLab app (OAuth source). Credentials may be supplied later via the UI or update endpoint.

Authorization

bearerAuth
AuthorizationBearer <token>

Go to Keys & Tokens / API tokens and create a new token. Use the token as the bearer token.

In: header

Request Body

application/json

GitLab app creation payload.

TypeScript Definitions

Use the request body type in TypeScript.

name*string

Name of the GitLab app.

html_url*string

GitLab instance URL (e.g., https://gitlab.com).

api_url?string

GitLab API URL (defaults to {html_url}/api/v4).

custom_user?string

Custom user for SSH access (default: git).

custom_port?integer

Custom port for SSH access (default: 22).

group_name?string

Optional comma-separated group names to filter repositories.

client_id?string

GitLab OAuth Application ID.

client_secret?string

GitLab OAuth Application Secret.

webhook_token?string

Webhook secret token (auto-generated when omitted).

redirect_uri?string

OAuth redirect URI registered in GitLab.

is_system_wide?boolean

Is this app system-wide (non-cloud instances only).

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://app.coolify.io/api/v1/gitlab-apps" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "html_url": "string"  }'
{  "id": 0,  "uuid": "string",  "name": "string",  "api_url": "string",  "html_url": "string",  "custom_user": "string",  "custom_port": 0,  "client_id": "string",  "group_name": "string",  "redirect_uri": "string",  "is_system_wide": true,  "team_id": 0}
{  "message": "Invalid token."}
{  "message": "Unauthenticated."}
{  "message": "Validation error.",  "errors": {    "name": [      "The name field is required."    ],    "api_url": [      "The api url field is required.",      "The api url format is invalid."    ]  }}