APIActive

GitHub REST API

GitHub's REST API for interacting with GitHub using standard HTTP verbs and concepts.

Open source page

Field note

What it does

GitHub's REST API returns data in a pre-determined structure and uses standard HTTP verbs and concepts, making it familiar to many developers.

Capabilities

Available capabilities

Tags

Tags

Ways to use it

Ways to use it

openapi

Not filed / https://docs.github.com/en/rest/about-the-rest-api/about-the-openapi-description-for-the-rest-api

rest

Not filed / https://docs.github.com/en/rest

rest

Not filed / https://docs.github.com/en/rest

sdk

javascript / libsodium-wrappers

sdk

python / PyNaCl

sdk

csharp / Sodium.Core

openapi

Not filed / https://docs.github.com/en/rest/about-the-rest-api/about-the-openapi-description-for-the-rest-api

rest

JavaScript / https://docs.github.com/en/rest/guides/scripting-with-the-rest-api-and-javascript

rest

Ruby / https://docs.github.com/en/rest/guides/scripting-with-the-rest-api-and-ruby

sdk

Not filed / https://docs.github.com/en/rest/libraries/libraries-for-the-rest-api

rest

Not filed / https://docs.github.com/en/rest

sdk

javascript / libsodium-wrappers

pypi

python / PyNaCl

sdk

csharp / Sodium.Core

sdk

javascript / https://docs.github.com/en/rest/guides/scripting-with-the-rest-api-and-javascript

sdk

ruby / https://docs.github.com/en/rest/guides/scripting-with-the-rest-api-and-ruby

webhook

Not filed / https://docs.github.com/en/webhooks/about-webhooks

openapi

json / github/rest-api-description

sdk

multiple / https://github.com/octokit

oauth

Not filed / https://docs.github.com/en/rest

openapi

Not filed / https://docs.github.com/en/rest/about-the-rest-api/about-the-openapi-description-for-the-rest-api

rest

Not filed / https://docs.github.com/en/rest

openapi

Not filed / https://docs.github.com/en/rest/about-the-rest-api/about-the-openapi-description-for-the-rest-api

rest

Not filed / https://docs.github.com/en/rest

rest

Not filed / https://docs.github.com/en/rest

openapi

Not filed / https://docs.github.com/en/rest/about-the-rest-api/about-the-openapi-description-for-the-rest-api

cli

Not filed / Not filed

sdk

Not filed / Not filed

openapi

Not filed / https://docs.github.com/en/rest/about-the-rest-api/about-the-openapi-description-for-the-rest-api

npm

JavaScript / libsodium-wrappers

sdk

Ruby / octokit

rest

Not filed / https://docs.github.com/en/rest/orgs/api-insights

rest

Not filed / https://docs.github.com/en/rest

webhook

Not filed / Not filed

webhook

Not filed / Not filed

openapi

Not filed / https://docs.github.com/en/rest

rest

Not filed / https://docs.github.com/rest/rate-limit

openapi

Not filed / https://docs.github.com/en/rest

Product features

Product features

410 Gone response

Returned when a request specifies an API version that is no longer supported.

About Octokit.rb

Additive changes

Non-breaking additive changes are available in all supported API versions.

Annotations

Add information from a check run to specific lines of code.

API versions

Learn how to specify which REST API version to use whenever you make a request.

Authenticating in GitHub Actions

Authenticating with a GitHub App

Authenticating with a personal access token

Base64 encoded public key

Obtain a Base64 encoded public key from the REST API to encrypt secrets.

Billing usage

Use the REST API to get billing usage information.

Breaking changes

Breaking changes are released in a new API version with advance notice.

Budgets

Use the REST API to get budget information.

Bundled and dereferenced formats

Each description is available in a bundled format using $ref or a fully expanded dereferenced format.

Check pull request mergeability

Call GET /repos/{owner}/{repo}/pulls/{pull_number} and poll the mergeable attribute.

Check Runs

An individual test that is part of a check suite, with status and conclusion.

Check Suites

A collection of check runs created by a single GitHub App for a specific commit.

Create blob objects

Post a new blob object with file content and receive a blob SHA.

Create commit objects

Create a commit with the current commit SHA as parent and the new tree SHA.

Create tree objects

Post a tree object with a file path pointer replaced by a new blob SHA.

C# example

Example encrypting a secret using Sodium.Core in C#.

Date-based version descriptions

For products supporting date-based versioning, a description exists for each date-based version.

Endpoints categorized by resource

Each endpoint is documented individually and categorized by the resource it primarily affects, e.g. issues.

Get route stats by actor

Get API request count statistics for an actor broken down by route within a specified time frame.

Get subject stats

Get API request statistics for all subjects within an organization within a specified time frame.

Get summary stats

Get summary statistics for API usage in an organization.

Get time stats

Get API usage statistics over time.

Get user stats

Get API usage statistics for users.

GitHub Actions authentication

Authenticate in GitHub Actions workflows using the built-in GITHUB_TOKEN.

GitHub App authentication

Authenticate using a GitHub App with app ID, private key, and installation ID.

In this article

Instantiating and authenticating

Instantiating without authentication

Libraries for the REST API

A list of libraries to facilitate scripting with the REST API.

libsodium encryption

Encrypt secret values using libsodium before sending via REST API.

Making requests

Node.js example

Example encrypting a secret using libsodium-wrappers in Node.js.

Octokit.js SDK

GitHub-maintained JavaScript SDK for the REST API, works with browsers, Node.js, and Deno.

Octokit.rb SDK

GitHub-maintained Ruby SDK that implements best practices for the REST API.

OpenAPI 3.0 and 3.1 descriptions

GitHub provides both 3.0 and 3.1 OpenAPI descriptions.

OpenAPI description

The GitHub REST API is fully described in an OpenAPI compliant document.

Per-product descriptions

Descriptions exist for GitHub Free/Pro/Team, GitHub Enterprise Cloud, and each GitHub Enterprise Server version.

Pre-determined response structure

Returns data in a pre-determined structure, potentially with more data than requested.

Prerequisites

Python example

Example encrypting a secret using PyNaCl in Python 3.

request method

Use the request method to make REST API requests.

REST endpoint methods

Use rest endpoint methods to make requests to the REST API.

Ruby example

Example encrypting a secret using the RbNaCl gem in Ruby.

Scripting guides

Guides for scripting with the REST API in JavaScript and Ruby.

Scripting with the REST API and Ruby

Standard HTTP verbs

Uses standard HTTP verbs and concepts familiar to many developers.

Status API

Build your own CI system using the Status API.

Supported API versions

Supported versions are 2026-03-10 (end of support not yet scheduled) and 2022-11-28 (March 10, 2028).

Unauthenticated access

Use the REST API without authentication, with a lower rate limit and some endpoints unavailable.

Update branch reference

Update the reference of your branch to point to the new commit SHA.

Using rest endpoint methods to make requests

Using the request method to make requests

Version 2022-11-28

A REST API version documented on the breaking changes page.

Version 2026-03-10

Released Tue, 10 Mar 2026; removes deprecated rate and permission properties and changes SARIF Content-Type.

X-GitHub-Api-Version header

Header used to specify which REST API version a request should use.