---
title: "Verify GitHub installation"
method: POST
path: "/github-integration/verify"
tags: ["GitHub"]
---

# Verify GitHub installation

`POST /github-integration/verify`

Check that the GitHub App is installed on a repository and holds the permissions Kaneo needs. Always 200 -- problems are reported in the body so the client can guide the user.

## Request body

- object
  - `projectId` string, required
  - `repositoryOwner` string, required
  - `repositoryName` string, required

## Response `200`

Verification result

- GitHubVerificationResult
  - `isInstalled` boolean, required
  - `installationId` number, nullable, required
  - `repositoryExists` boolean, nullable, required
  - `repositoryPrivate` boolean, nullable, required
  - `permissions` object, nullable, required — The permissions the installation currently grants.
  - `hasRequiredPermissions` boolean, required
  - `missingPermissions` string[], required — Permissions that must be granted before the link will work.
  - `message` string, required — A human-readable summary to show the user.
  - `settingsUrl` string — Where to adjust the installation, when one exists.
  - `installationUrl` string — Where to install the App, when it is not installed yet.

## Other responses

- `400` — Invalid body, or unknown project
- `401` — Missing or invalid credentials
- `403` — No workspace access, or missing workspace:manage_settings

## Changes

- **2026-08-24** `08bbb5bedb5d` — 2 breaking, 13 info
  - added the new required request property `projectId`
  - removed the required property `installed` from the response with the `200` status
  - added the non-success response with the status `400`
  - added the non-success response with the status `401`
  - …11 more
- **2026-07-11** `32cece1ebe43` — 1 breaking
  - request body became required
- **2025-12-11** `93b231773126` — 3 breaking, 2 info
  - the `repositoryName` request property's minLength was increased from `0` to `1`
  - the `repositoryOwner` request property's minLength was increased from `0` to `1`
  - the response's body type/format changed from ``/`` to `object`/`` for status `200`
  - added the optional property `message` to the response with the `200` status
  - …1 more

[Change history](https://skmtc.dev/usekaneo/apis/kaneo-api/changes/github-integration/verify/post.md)

---

[API](https://skmtc.dev/usekaneo/apis/kaneo-api.md) · [All operations](https://skmtc.dev/usekaneo/apis/kaneo-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/usekaneo/kaneo-api/revisions/08bbb5bedb5d/schema)
