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.
Both REST and GraphQL — pick the right tool per scenario
Unauthenticated rate is only 60/h; authenticated 5000/h — still a common bottleneck
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.
Uptime · 30-day window
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.
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
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
Example request
curl https://support.github.com/contact?tags=dotcom-rest-api/<endpoint> \
-H "Authorization: Bearer $ACCESS_TOKEN"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.
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.
Technical details
- 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
Endpoints
Parsed from the OpenAPI spec. Showing 12 of 629 non-deprecated endpoints.
/metaGitHub API Root
/admin/hooksenterprise-adminList global webhooks
/admin/hooksenterprise-adminCreate a global webhook
/admin/hooks/{hook_id}enterprise-adminDelete a global webhook
/admin/hooks/{hook_id}enterprise-adminGet a global webhook
/admin/hooks/{hook_id}enterprise-adminUpdate a global webhook
/admin/hooks/{hook_id}/pingsenterprise-adminPing a global webhook
/admin/keysenterprise-adminList public keys
/admin/keys/{key_ids}enterprise-adminDelete a public key
/admin/organizationsenterprise-adminCreate an organization
/admin/organizations/{org}enterprise-adminUpdate an organization name
/admin/pre-receive-environmentsenterprise-adminList pre-receive environments
617 more endpoints not shown. See the OpenAPI spec for the full list.
More from GitHub
Alternatives to consider
Different providers solving similar problems. Picked by category, auth, pricing, and tag overlap.
Notion API lets external apps read and write pages and databases — used for automation, internal tools, and dashboard integrations.
Slack Web API lets apps read and post messages, manage channels, and upload files — the foundation for Slack bots and integrations.