REST API endpoints for GitHub App installations

Use the REST API to get information about GitHub App installations and perform actions within those installations.

About GitHub App installations

A GitHub App installation refers to the installation of the app on an organization or user account. For information on how to authenticate as an installation and limit access to specific repositories, see Authenticating as a GitHub App installation.

To list all GitHub App installations for an organization, see REST API endpoints for organizations.

Note

Most endpoints use Authorization: Bearer <YOUR-TOKEN> and Accept: application/vnd.github+json headers, plus X-GitHub-Api-Version: 2026-03-10. Curl examples below omit these standard headers for brevity.

List repositories accessible to the app installation

GET /installation/repositories

List repositories that an app installation can access.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/installation/repositories

Response schema (Status: 200):

Revoke an installation access token

DELETE /installation/token

Revokes the installation token you're using to authenticate as an installation and access this endpoint.
Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "Create an installation access token for an app" endpoint.

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X DELETE \
  https://api.github.com/installation/token

Response schema (Status: 204):

List app installations accessible to the user access token

GET /user/installations

Lists installations of your GitHub App that the authenticated user has explicit permission (:read, :write, or :admin) to access.
The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.
You can find the permissions for the installation under the permissions key.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/user/installations

Response schema (Status: 200):

List repositories accessible to the user access token

GET /user/installations/{installation_id}/repositories

List repositories that the authenticated user has explicit permission (:read, :write, or :admin) to access for an installation.
The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.
The access the user has to each repository is included in the hash under the permissions key.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/user/installations/1/repositories

Response schema (Status: 200):

Add a repository to an app installation

PUT /user/installations/{installation_id}/repositories/{repository_id}

Add a single repository to an installation. The authenticated user must have admin access to the repository.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X PUT \
  https://api.github.com/user/installations/1/repositories/REPOSITORY_ID

Response schema (Status: 204):

Remove a repository from an app installation

DELETE /user/installations/{installation_id}/repositories/{repository_id}

Remove a single repository from an installation. The authenticated user must have admin access to the repository. The installation must have the repository_selection of selected.
To use a PAT (classic) with this endpoint, the repo scope is required

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X DELETE \
  https://api.github.com/user/installations/1/repositories/REPOSITORY_ID

Response schema (Status: 204):