---
title: "Create a GitHub App from a manifest"
method: POST
path: "/app-manifests/{code}/conversions"
tags: ["apps"]
---

# Create a GitHub App from a manifest

`POST /app-manifests/{code}/conversions`

Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/enterprise-cloud@latest/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`.

## Path parameters

- `code` string, required

## Response `201`

Response

- object, nullable — GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.
  - `id` integer, required — Unique identifier of the GitHub app
  - `slug` string — The slug name of the GitHub app
  - `node_id` string, required
  - `client_id` string, required
  - `owner` union, required
    - SimpleUser — A GitHub user.
      - `name` string, nullable
      - `email` string, nullable
      - `login` string, required
      - `id` integer, required
      - `node_id` string, required
      - `avatar_url` string, uri, required
      - `gravatar_id` string, nullable, required
      - `url` string, uri, required
      - `html_url` string, uri, required
      - `followers_url` string, uri, required
      - `following_url` string, required
      - `gists_url` string, required
      - `starred_url` string, required
      - `subscriptions_url` string, uri, required
      - `organizations_url` string, uri, required
      - `repos_url` string, uri, required
      - `events_url` string, required
      - `received_events_url` string, uri, required
      - `type` string, required
      - `site_admin` boolean, required
      - `starred_at` string
      - `user_view_type` string
    - Enterprise — An enterprise on GitHub.
      - `description` string, nullable — A short description of the enterprise.
      - `html_url` string, uri, required
      - `website_url` string, uri, nullable — The enterprise's website URL.
      - `id` integer, required — Unique identifier of the enterprise
      - `node_id` string, required
      - `name` string, required — The name of the enterprise.
      - `slug` string, required — The slug url identifier for the enterprise.
      - `created_at` string, date-time, nullable, required
      - `updated_at` string, date-time, nullable, required
      - `avatar_url` string, uri, required
  - `name` string, required — The name of the GitHub app
  - `description` string, nullable, required
  - `external_url` string, uri, required
  - `html_url` string, uri, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `permissions` object, required — The set of permissions for the GitHub app
    - `issues` string
    - `checks` string
    - `metadata` string
    - `contents` string
    - `deployments` string
  - `events` string[], required — The list of events for the GitHub app. Note that the `installation_target`, `security_advisory`, and `meta` events are not included because they are global events and not specific to an installation.
  - `installations_count` integer — The number of installations associated with the GitHub app. Only returned when the integration is requesting details about itself.
  - `client_secret` string, required
  - `webhook_secret` string, nullable, required
  - `pem` string, required

## Other responses

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

---

[API](https://skmtc.net/github/apis/github-v3-rest-api-2.md) · [All operations](https://skmtc.net/github/apis/github-v3-rest-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/github/github-v3-rest-api-2/versions/8ae6d0c8716e/schema)
