Skip to content
throttle
Menu
HomeAPI LimitsGitHub API

Developer Platforms

GitHub REST API

REST and GraphQL APIs for repositories, issues, pull requests, users, organizations, actions, and other GitHub resources.

PUBLISHED PROVIDER LIMITS

Limits keep their provider-specific dimensions.

GitHub maintains separate rate-limit resources and additional secondary abuse-prevention limits.

Authentication: Unauthenticated public requests, Personal access token, OAuth access token, GitHub App installation or user token, GITHUB_TOKEN

Primary scope: Credential, User, App, Installation, Repository, Or IP Depending On Authentication

Measured dimensions: Requests, Concurrent Requests, Endpoint Points, CPU Time, Content Generating Requests

Profile coverage: GitHub REST primary limits, Git LFS buckets, published REST secondary controls, response headers, and exceeded-limit behavior. GraphQL primary limits and endpoint-specific search limits are outside this profile.

Primary limits

GitHub REST API Primary limits
LimitValuePeriodScopeConditions and variability
Unauthenticated REST requests60 requestsPer hourSource IpPublic resources only No authentication
Authenticated REST requests5,000 requestsPer hourUserPersonal access token, OAuth token, or GitHub App user token
Enterprise Cloud authenticated user requests15,000 requestsPer hourUserQualifying GitHub Enterprise Cloud organization context
GitHub App installation minimum5,000 requestsPer hourInstallationInstallation access token Non-Enterprise Cloud installation Can scale with repository and organization user counts, up to 12,500 requests per hour.
GITHUB_TOKEN1,000 requestsPer hourRepositoryPer repository 15,000 requests per hour per repository for qualifying Enterprise Cloud resources.

Resource-specific limits

GitHub REST API Resource-specific limits
LimitValuePeriodScopeConditions and variability
Git LFS unauthenticated API requests300 requestsPer minuteSource IpPublished provider limit.
Git LFS authenticated API requests3,000 requestsPer minuteCredentialPublished provider limit.

Secondary controls

GitHub REST API Secondary controls
LimitValuePeriodScopeConditions and variability
Secondary concurrent request limit100 concurrent requestsAt one timeShared Rest And GraphqlPublished provider limit.
Secondary REST endpoint points900 pointsPer minuteCredentialMost GET, HEAD, and OPTIONS requests cost 1 point; most POST, PATCH, PUT, and DELETE requests cost 5 points. Some costs are not public.
Content-generating requests80 requestsPer minuteUser Or IntegrationGeneral ceiling; some endpoints are lower and limits may change without notice.
Secondary request CPU time90 CPU secondsPer 60 secondShared Rest And GraphqlNo more than 60 seconds of this CPU time may be used by GraphQL requests. GitHub says total response time is only a rough estimate.
Content-generating requests500 requestsPer hourUser Or IntegrationGeneral ceiling; some endpoints are lower and limits may change without notice.
OAuth access token requests2,000 requestsPer hourGithub App Or OAuth AppPublished provider limit.

RESPONSE METADATA

Headers expose the applicable limit state.

X-RateLimit-LimitFormat: Integer
Maximum requests allowed in the current primary window.
X-RateLimit-RemainingFormat: Integer
Requests remaining in the current primary window.
X-RateLimit-UsedFormat: Integer
Requests already used in the current primary window.
X-RateLimit-ResetFormat: Unix Epoch Seconds
Time at which the window resets.
X-RateLimit-ResourceFormat: String
The named rate-limit resource charged by the request.
Retry-AfterFormat: Seconds Or HTTP Date
Delay before retrying when provided.

WHEN A LIMIT IS EXCEEDED

Read the response before choosing a delay.

  • Rate-limit responses can use HTTP 403 or HTTP 429.
  • Primary exhaustion signal: X-RateLimit-Remaining equals 0.

RECOMMENDED HANDLING

Protect both the provider and your own queue.

  • Do not retry primary-limit failures until X-RateLimit-Reset.
  • Honor Retry-After when present.
  • For secondary limits without Retry-After, wait at least one minute and use exponential backoff.
  • Prefer response headers over repeatedly calling the rate-limit status endpoint.

VERIFICATION RECORD

Official sources reviewed