Development — entry 028 of 100

GitHub

Verified Jul 2026

GitHub's REST API exposes nearly every platform object — repositories, issues, pull requests, Actions runs, packages, and user/org data — as JSON over versioned, stable endpoints. It's free to call with a personal access token, fine-grained PAT, OAuth app, or GitHub App, rate-limited to 5,000 requests/hour authenticated (60/hour unauthenticated), with a parallel GraphQL API for clients that want to fetch nested data in one round trip.

gitdevopsrepositoriesci-cdversion-control
AuthenticationOAuthRequires an OAuth flow; expect app registration.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSON, GraphQLResponses can be requested as JSON or GraphQL.

GreatAPIs Score

Score83out of 100
Authentication8/25OAuth flow required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats15/15Supports 2 response formats
Freshness20/20Verified within 6 months

Embed this badge

Scored 83 on greatapis.com
<a href="https://greatapis.com/api/github/"><img src="https://greatapis.com/badge/github.svg" alt="Scored 83 on greatapis.com"></a>

Auth quickstart

  1. Register an app / run the OAuth flow to obtain a bearer token.
  2. Send it as an Authorization headerAuthorization: Bearer <token>
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://api.github.com
issues2

Interact with GitHub Issues.

GET/repos/{owner}/{repo}/issuesList repository issues
Parameters
NameInRequiredType
milestonequerynostring
statequerynostring
assigneequerynostring
typequerynostring
creatorquerynostring
mentionedquerynostring
issue_field_valuesquerynostring
sortquerynostring
Responses
StatusDescriptionSchema
200Response
301
404
422
POST/repos/{owner}/{repo}/issuesCreate an issue
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Responseissue
400
403
404
410
422
503
orgs1

Interact with organizations.

GET/orgs/{org}Get an organization
Responses
StatusDescriptionSchema
200Responseorganization-full
404
pulls2

Interact with GitHub Pull Requests.

GET/repos/{owner}/{repo}/pullsList pull requests
Parameters
NameInRequiredType
statequerynostring
headquerynostring
basequerynostring
sortquerynostring
directionquerynostring
Responses
StatusDescriptionSchema
200Response
304
422
POST/repos/{owner}/{repo}/pullsCreate a pull request
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Responsepull-request
403
422
repos3

Interact with GitHub Repos.

GET/orgs/{org}/reposList organization repositories
Parameters
NameInRequiredType
typequerynostring
sortquerynostring
directionquerynostring
Responses
StatusDescriptionSchema
200Response
GET/repos/{owner}/{repo}Get a repository
Responses
StatusDescriptionSchema
200Responsefull-repository
301
403
404
GET/repos/{owner}/{repo}/commitsList commits
Parameters
NameInRequiredType
shaquerynostring
pathquerynostring
authorquerynostring
committerquerynostring
sincequerynostring
untilquerynostring
Responses
StatusDescriptionSchema
200Response
400
404
409
500
search3

Search for specific items on GitHub.

GET/search/codeSearch code
Parameters
NameInRequiredType
qqueryyesstring
sortquerynostring
orderquerynostring
Responses
StatusDescriptionSchema
200Response
304
403
422
503
GET/search/issuesSearch issues and pull requests
Parameters
NameInRequiredType
qqueryyesstring
sortquerynostring
Responses
StatusDescriptionSchema
200Response
304
401
403
422
503
GET/search/repositoriesSearch repositories
Parameters
NameInRequiredType
qqueryyesstring
sortquerynostring
Responses
StatusDescriptionSchema
200Response
304
422
503
users1

Interact with and view information about users and also current user.

GET/users/{username}Get a user
Responses
StatusDescriptionSchema
200Response
404

Try it

Developer reference

Base URLhttps://api.github.com
Rate limit

5,000 requests/hour authenticated; 60 requests/hour unauthenticated

Key endpoints
  • GET/repos/{owner}/{repo}
  • GET/repos/{owner}/{repo}/issues
  • POST/repos/{owner}/{repo}/issues
  • GET/search/repositories
  • GET/users/{username}