GitHub v3 REST API logo

GitHub v3 REST API

GitHub v3 REST API

GitHub REST API v3 — programmatic access to repos, issues, pull requests, Actions, Packages, and every other GitHub.com resource.

Visit site ↗Health checked 9h ago
Use it when

Both REST and GraphQL — pick the right tool per scenario

Watch for

Unauthenticated rate is only 60/h; authenticated 5000/h — still a common bottleneck

First check

Generate a personal access token (Fine-grained recommended) or register a GitHub App. Authenticate with Authorization: Bearer <token>. Include Accept: application/vnd.github+json and X-GitHub-Api-Version headers. For complex queries, use GraphQL.

Auth
oauth
CORS
No
HTTPS
Yes
Signup
Required
Latency
78 ms
Protocol
REST, GraphQL
Pricing
freemium

Uptime · 30-day window

Probes: 1Uptime: 100%Avg latency: 78ms
01

About this API

The GitHub REST API is the canonical surface for interacting with GitHub.com programmatically — almost anything you can do in the UI is available via API: create repos, manage issues and PRs, read/write files, trigger Actions, manage team permissions. It coexists with the GitHub GraphQL API — REST is great for simple CRUD; GraphQL is better when you need to fetch related data in one call without N+1 traffic.

Authentication options include personal access tokens (PATs, both classic and fine-grained), GitHub Apps, OAuth Apps, and the GITHUB_TOKEN that's automatically available inside Actions workflows. Fine-grained PATs are the modern, recommended path — they scope down to specific repos and minimal operation sets, ideal for server-side integrations. GitHub Apps go further with per-installation isolation, suitable when distributing to multiple organizations.

Rate limits are the most common friction: 60/h unauthenticated, 5000/h authenticated, plus a secondary rate limit that throttles bursts. Webhooks cover essentially every repo event, and combined with GitHub Apps enable sophisticated automation pipelines. GraphQL queries have a cost budget — overly complex nested queries can be rejected for exceeding it.

02

What you can build

  • 1Build CI/CD and GitHub Actions automations
  • 2Mirror issues to external tracking systems
  • 3Generate project activity dashboards and reports
  • 4Wire code search and file reads into internal tools
  • 5Develop GitHub Apps and marketplace integrations
03

Strengths & limitations

Strengths

  • Both REST and GraphQL — pick the right tool per scenario
  • Fine-grained personal access tokens give precise permission scoping
  • Webhooks cover virtually every repo event
  • Official Octokit SDKs in all major languages

Limitations

  • Unauthenticated rate is only 60/h; authenticated 5000/h — still a common bottleneck
  • GraphQL queries have a cost cap; complex queries may be rejected
  • Some enterprise-only features require GitHub Enterprise
04

Example request

Generic template — replace <endpoint> with the real path from the docs.
curl https://support.github.com/contact?tags=dotcom-rest-api/<endpoint> \
  -H "Authorization: Bearer $ACCESS_TOKEN"
05

Getting started

Generate a personal access token (Fine-grained recommended) or register a GitHub App. Authenticate with Authorization: Bearer <token>. Include Accept: application/vnd.github+json and X-GitHub-Api-Version headers. For complex queries, use GraphQL.

06

FAQ

Is the API free?+

Authenticated users get 5000 calls/hour for free; GitHub Enterprise customers get higher quotas. GraphQL is billed by query cost.

Should I use a PAT or a GitHub App?+

A PAT is fine for personal tools. Use a GitHub App when distributing to others or when you need per-installation isolation.

What if I hit the rate limit?+

Check X-RateLimit-Remaining and X-RateLimit-Reset headers. Wait for reset, or move to a GitHub App for a higher quota.

Are REST and GraphQL data consistent?+

They share the underlying resource model, but interfaces differ. Some preview features land on one side first.

07

Technical details

CORS: NoHTTPS: YesSignup: YesOpen source: No
Auth type
oauth
Pricing
freemium
Protocols
REST, GraphQL
SDKs
javascript, typescript, python, go, ruby, java, csharp
Response time
78 ms
Last health check
5/12/2026, 7:37:29 AM
08

Endpoints

Parsed from the OpenAPI spec. Showing 12 of 629 non-deprecated endpoints.

GET
/meta

GitHub API Root

GET
/admin/hooksenterprise-admin

List global webhooks

POST
/admin/hooksenterprise-admin

Create a global webhook

DELETE
/admin/hooks/{hook_id}enterprise-admin

Delete a global webhook

GET
/admin/hooks/{hook_id}enterprise-admin

Get a global webhook

PATCH
/admin/hooks/{hook_id}enterprise-admin

Update a global webhook

POST
/admin/hooks/{hook_id}/pingsenterprise-admin

Ping a global webhook

GET
/admin/keysenterprise-admin

List public keys

sort:querysince:query
DELETE
/admin/keys/{key_ids}enterprise-admin

Delete a public key

POST
/admin/organizationsenterprise-admin

Create an organization

PATCH
/admin/organizations/{org}enterprise-admin

Update an organization name

GET
/admin/pre-receive-environmentsenterprise-admin

List pre-receive environments

sort:query

617 more endpoints not shown. See the OpenAPI spec for the full list.

09

Tags

10

More from GitHub

11

Alternatives to consider

Different providers solving similar problems. Picked by category, auth, pricing, and tag overlap.