---
title: "Create GitHub App"
method: POST
path: "/github-apps"
tags: ["GitHub Apps"]
---

# Create GitHub App

`POST /github-apps`

Create a new GitHub app.

## Request body

- object
  - `name` string, required — Name of the GitHub app.
  - `organization` string, nullable — Organization to associate the app with.
  - `api_url` string — API URL for the GitHub app (e.g., https://api.github.com).
  - `html_url` string, required — HTML URL for the GitHub app (e.g., https://github.com).
  - `custom_user` string — Custom user for SSH access (default: git).
  - `custom_port` integer — Custom port for SSH access (default: 22).
  - `app_id` integer, required — GitHub App ID from GitHub.
  - `installation_id` integer, required — GitHub Installation ID.
  - `client_id` string, required — GitHub OAuth App Client ID.
  - `client_secret` string, required — GitHub OAuth App Client Secret.
  - `webhook_secret` string — Webhook secret for GitHub webhooks.
  - `private_key_uuid` string, required — UUID of an existing private key for GitHub App authentication.
  - `is_system_wide` boolean — Is this app system-wide (cloud only).

## Response `201`

GitHub app created successfully.

- object
  - `id` integer
  - `uuid` string
  - `name` string
  - `organization` string, nullable
  - `api_url` string
  - `html_url` string
  - `custom_user` string
  - `custom_port` integer
  - `app_id` integer
  - `installation_id` integer
  - `client_id` string
  - `private_key_id` integer
  - `is_system_wide` boolean
  - `team_id` integer

## Other responses

- `400` — Invalid token.
- `401` — Unauthenticated.
- `422` — Validation error.

## Changes

- **2026-07-14** `47fd5ba6d7bf` — 1 info
  - the request property `api_url` became optional
- **2026-07-12** `fdd4b338659d` — 1 breaking
  - the request property `api_url` became required
- **2026-07-07** `8756214c63fc` — 1 info
  - the request property `api_url` became optional
- **2026-07-07** `e91d1ff09643` — 1 breaking
  - the request property `api_url` became required
- **2026-07-07** `ccd37e78d00a` — 1 info
  - the request property `api_url` became optional

[Full history](https://skmtc.dev/coollabsio/apis/coolify/changes/github-apps/post.md)

---

[API](https://skmtc.dev/coollabsio/apis/coolify.md) · [All operations](https://skmtc.dev/coollabsio/apis/coolify/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/coollabsio/coolify/revisions/16dc4d4d2f00/schema)
