---
title: "Get GitHub connection"
method: GET
path: "/api/apps/{app_id}/github/connection"
---

# Get GitHub connection

`GET /api/apps/{app_id}/github/connection`

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns the app's GitHub repository connection, if it has one.

Calling this re-checks the connection against GitHub and tries to repair a broken one, so what it reports can change between two calls even when nobody has touched the app.

An app that never connected and one whose repository was disconnected look the same here, so this response can't tell you which happened.

## Path parameters

- `app_id` string, required — ID of the app whose GitHub connection to use.

## Response `200`

The app's GitHub connection.

- ConnectionStatus — Current connection status for an app.
  - `connected` boolean, required — Whether the app still has its repository connection, including one whose `status` is `error` or `revoked`. The value is `false` only when the app never connected and when its repository was disconnected.
  - `repo_full_name` string, nullable — Full repository name, as `owner/repo`, or `null` when `connected` is `false`.
  - `repo_url` string, nullable — URL of the repository on GitHub, or `null` when `connected` is `false`.
  - `clone_urls` CloneUrls — Repository clone URLs in different formats.
    - `https` string, required — URL to clone the repository over HTTPS.
    - `ssh` string, required — URL to clone the repository over SSH.
    - `gh_cli` string, required — Ready-to-run GitHub CLI clone command.
  - `org_name` string, nullable — GitHub username or organization that owns the repository, or `null` when `connected` is `false`.
  - `status` 'active' | 'disconnected' | 'error' | 'revoked' — Health of an app's GitHub repository connection. - `active` works normally. - `disconnected` was disconnected by a user. - `error` hit a technical failure. - `revoked` means the GitHub App access was withdrawn.
  - `installation_id` string, nullable — ID of the Base44 GitHub App installation backing this connection, or `null` when `connected` is `false` and on a connection stored without one.
  - `webhook_active` boolean — Whether the repository has the Base44 webhook that triggers automatic pulls. While this is `false` on a connected app, GitHub isn't telling Base44 about pushes, so nothing arrives until you pull.
  - `connected_by_user_id` string, nullable — ID of the Base44 user who connected the repository, or `null` when `connected` is `false`.

## Other responses

- `401` — Missing or invalid credentials.
- `403` — You don't have access to this app, or you used a workspace API key. These endpoints take a personal API key.
- `404` — App not found.

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/adexad/base44-app-management-api/revisions/6ad855bf424f/schema)
