GitHub REST API
Hosts: api.github.com · 23 facts
Error meanings
- ✅ verified:server:prod ·
not found· GET /repos/{owner}/{repo} · env prod - ✅ verified:server:prod ·
the search is longer than ### characters.· GET /search/repositories · env prod - ✅ verified:server:prod ·
### not found· GET /rate_limit/ · env prod - ✅ verified:server:prod ·
the version you specified in the "x-github-api-version" request header, "####-##-##", is not a supported version. the following versions are currently supported: "####-##-##" (most recent) and "####-##-##".· GET /repos/{owner}/{repo} · env prod - 🔵 official · A request with an HTTP method the endpoint does not support, such as DELETE on a GET-only endpoint, returns HTTP 404 Not Found instead of 405 Method Not Allowed. · DELETE /rate_limit · env prod
Rate limits
- ✅ verified:server:prod · Anonymous REST requests count against the core resource with x-ratelimit-limit 60 per hour, shared by every client behind the same originating IP address. · GET /repos/{owner}/{repo} · env prod
- ✅ verified:server:prod · Anonymous calls to the search endpoints count against a separate search resource with x-ratelimit-limit 10 (documented as 10 requests per minute), not against core. · GET /search/repositories · env prod
- 🔵 official · Exceeding a secondary rate limit returns HTTP 403 or 429 with a message saying so; retry-after, when present, gives the seconds to wait, otherwise the wait is at least one minute. · GET /repos/{owner}/{repo} · env prod
- 🔵 official · Exceeding a secondary rate limit returns HTTP 403 or 429 with a message saying so; retry-after, when present, gives the seconds to wait, otherwise the wait is at least one minute. · GET /repos/{owner}/{repo} · env prod
Breaking changes
- ✅ verified:server:prod · With X-GitHub-Api-Version 2026-03-10, GET /repos/{owner}/{repo} no longer returns has_downloads, which the default version 2022-11-28 still includes. · GET /repos/{owner}/{repo} · env prod
Silent behavior
- ✅ verified:server:prod · Anonymous GET /repos/{owner}/{repo} responses are shared-cacheable for 60 s (public, s-maxage=60) and Vary does not list X-GitHub-Api-Version, so by HTTP caching rules a cache may serve a body of another API version. · GET /repos/{owner}/{repo} · env prod
- ✅ verified:server:prod · REST error bodies carry a status field holding the HTTP code as a JSON string, such as "404", not as a number. · GET /repos/{owner}/{repo} · env prod
- ✅ verified:server:prod · A per_page above 100 on GET /users/{username}/followers is silently reduced to 100: HTTP 200 with 100 items, no error, and Link URLs that repeat the requested per_page. · GET /users/{username}/followers · env prod
- ✅ verified:server:prod ·
moved permanently· GET /repos/{owner}/{repo} · env prod
Auth quirks
- ✅ verified:server:prod · An anonymous GET /repos/{owner}/{repo} returns the repository object without a permissions field. · GET /repos/{owner}/{repo} · env prod
- ✅ verified:server:prod · For anonymous callers GET /rate_limit reports a graphql resource limit of 0, so the GraphQL API has no anonymous quota, while REST core allows 60 requests per hour. · GET /rate_limit · env prod
- 🔵 official ·
not found· GET /repos/{owner}/{repo} · env prod - 🔵 official · REST API requests without a User-Agent header are rejected, and a request with an invalid User-Agent header receives HTTP 403 Forbidden. · GET /repos/{owner}/{repo} · env prod
Pagination
- ✅ verified:server:prod · List endpoints such as GET /users/{username}/followers return a bare JSON array and give the next and last page URLs only in the Link header (rel="next", rel="last"). · GET /users/{username}/followers · env prod
- ✅ verified:server:prod ·
only the first #### search results are available· GET /search/repositories · env prod
Deprecations
- 🔵 official · Requests without X-GitHub-Api-Version use version 2022-11-28, supported until 2028-03-10; after that, unversioned requests move to the next oldest supported version. · GET /repos/{owner}/{repo} · env prod
- 🔵 official · The rate object of GET /rate_limit is closing down; the resources.core object carries the same information. · GET /rate_limit · env prod
Schema drift
- ✅ verified:server:prod · On 2026-10-20 the repository object of GET /repos/{owner}/{repo} at API version 2022-11-28 had 84 top-level keys, schema fingerprint 4ca5975282230619. · GET /repos/{owner}/{repo} · env prod
Data: CC BY 4.0 · apifacts registry · This page is generated; edit the YAML, not the page.