---
title: "Register an app installation for external custom properties"
method: POST
path: "/orgs/{org}/properties/installations"
tags: ["orgs"]
---

# Register an app installation for external custom properties

`POST /orgs/{org}/properties/installations`

Registers a GitHub App installation so it can read and write external custom properties for an organization, and assigns it a display name.

The display name must be 1 to 15 characters and contain only letters and numbers. Capitalization is preserved as entered.

An app installation can only be registered once, and its display name can't be changed afterward. Calling with an app installation that has already been registered returns a `422` response with an `already_exists` error code for `installation_id`. If the display name is already in use by another app installation in the organization, the response is `422` with an `already_exists` error code for `display_name`. An invalid display name also returns `422`.

The app installation being registered must have write or admin permission for organization external custom properties for repositories. If it doesn't, the response is `422`. This is the permission of the installation being registered, which isn't necessarily the caller.

Uninstalling the GitHub App unregisters it, and removes the external custom properties it created.

To use this endpoint, the authenticated caller must have the `organization_external_properties_for_repos:admin` permission.

## Path parameters

- `org` string, required

## Request body

- object
  - `installation_id` integer — The unique identifier of the GitHub App installation to register for managing external custom properties. When authenticating as a GitHub App installation, this defaults to the authenticated installation and can be omitted. It is required for all other callers (users and fine-grained personal access tokens).
  - `display_name` string, required — The display name for this app installation's external custom properties in the organization. Must be 1 to 15 characters and contain only letters and numbers. Capitalization is preserved as entered. This can't be changed after the app installation is registered.

## Response `201`

Response

- OrganizationExternalPropertyInstallation — A GitHub App installation that has been registered to read and write an organization's external custom properties, together with the display name assigned to it.
  - `display_name` string, required — The display name assigned to the app installation's external custom properties in the organization.
  - `installation` object, required — The GitHub App installation that was registered.
    - `id` integer, required — The unique identifier of the GitHub App installation.

## Other responses

- `403` — Forbidden
- `404` — Resource not found
- `422` — Validation failed, or the endpoint has been spammed.

## Changes

> 74 revisions in range; 1 not diffed.

- **2026-09-30** (2022-11-28) `d316fc651e53` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/github/apis/rest/changes/orgs/:org/properties/installations/post.md)

---

[API](https://skmtc.dev/github/apis/rest.md) · [All operations](https://skmtc.dev/github/apis/rest/llms.txt) · [OpenAPI document](https://skmtc.dev/github/apis/rest/revisions/0d2fa885d4a1?raw)
