HTTP/2 301
server: GitHub.com
content-type: text/html
location: https://docs.github.com/apps/building-oauth-apps
x-github-request-id: 40E2:3A7A40:77AA5A:862D2B:695106F0
accept-ranges: bytes
age: 0
date: Sun, 28 Dec 2025 10:31:12 GMT
via: 1.1 varnish
x-served-by: cache-bom-vanm7210049-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1766917873.681985,VS0,VE192
vary: Accept-Encoding
x-fastly-request-id: af1b8ef3f6ced80126d10caff44738245cdc9955
content-length: 162
HTTP/2 302
access-control-allow-origin: *
content-security-policy: default-src 'none';prefetch-src 'self';connect-src 'self';font-src 'self' data:;img-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com data: placehold.it;object-src 'self';script-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com 'self' data: 'unsafe-inline';script-src-attr 'self';frame-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com https://support.github.com https://www.youtube-nocookie.com;frame-ancestors 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com;style-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com 'self' 'unsafe-inline' data:;child-src 'self';manifest-src 'self';upgrade-insecure-requests;base-uri 'self';form-action 'self'
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
referrer-policy: no-referrer-when-downgrade
x-content-type-options: nosniff
x-dns-prefetch-control: off
x-download-options: noopen
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-xss-protection: 0
cache-control: public, max-age=60
location: /en/apps/oauth-apps/building-oauth-apps
content-type: text/plain; charset=utf-8
x-github-backend: Kubernetes
x-github-request-id: EE33:2E0070:1D3604F:2BC7752:695106F1
accept-ranges: bytes
age: 0
date: Sun, 28 Dec 2025 10:31:14 GMT
via: 1.1 varnish
x-served-by: cache-bom-vanm7210078-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1766917873.930778,VS0,VE1322
vary: accept-language, x-user-language, Accept
strict-transport-security: max-age=31557600
content-length: 61
HTTP/2 200
access-control-allow-origin: *
content-security-policy: default-src 'none';prefetch-src 'self';connect-src 'self';font-src 'self' data:;img-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com data: placehold.it;object-src 'self';script-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com 'self' data: 'unsafe-inline';script-src-attr 'self';frame-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com https://support.github.com https://www.youtube-nocookie.com;frame-ancestors 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com;style-src 'self' github.com *.github.com *.githubusercontent.com *.githubassets.com 'self' 'unsafe-inline' data:;child-src 'self';manifest-src 'self';upgrade-insecure-requests;base-uri 'self';form-action 'self'
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
referrer-policy: no-referrer-when-downgrade
x-content-type-options: nosniff
x-dns-prefetch-control: off
x-download-options: noopen
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-xss-protection: 0
cache-control: public, max-age=60
x-powered-by: Next.js
content-type: text/html; charset=utf-8
x-github-backend: Kubernetes
x-github-request-id: 6864:B1A10:1E25554:2CAB199:695106F2
content-encoding: gzip
accept-ranges: bytes
age: 1
date: Sun, 28 Dec 2025 10:31:15 GMT
via: 1.1 varnish
x-served-by: cache-bom-vanm7210078-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1766917874.266653,VS0,VE1733
vary: Accept-Encoding
strict-transport-security: max-age=31557600
content-length: 20563
Building OAuth apps - GitHub Docs Skip to main content
Building OAuth apps You can build OAuth apps for yourself or others to use. Learn how to register and set up permissions and authorization options for OAuth apps.
In general, GitHub Apps are preferred to OAuth apps because they use fine-grained permissions, give more control over which repositories the app can access, and use short-lived tokens.
Rate limits restrict the rate of traffic to GitHub.com, to help ensure consistent access for all users.
You can create and register an OAuth app under your personal account or under any organization you have administrative access to. While creating your OAuth app, remember to protect your privacy by only using information you consider public.
Learn about the different ways to authenticate with some examples.
You can enable other users to authorize your OAuth app.
Scopes let you specify exactly what type of access you need. Scopes limit access for OAuth tokens. They do not grant any additional permission beyond that which the user already has.
You can replace the default badge on your OAuth app by uploading your own logo image and customizing the background.
Follow these best practices to improve the security and performance of your OAuth app.