Expiring user access tokens last eight hours and refresh tokens expire after six months unused; apps must handle refresh or re-authorisation. [2]
Guides · auth · Popular APIs
GitHub OAuth app
Register an OAuth app under a user or organisation's Developer settings to get a client ID and secret for "Sign in with GitHub" or user-scoped API access.
Researched · not yet run liveLast researched 25 October 2026 · GitHub · provider site
Who owns what
An OAuth app is owned by a personal account or an organisation.
- GitHub account or organisation developerPrefer an organisation for production apps so ownership is not tied to one person.
Steps
Steps marked “human step” are ones only you can do: verapli never signs in, submits, pays or accepts terms for you.
Register the OAuth app
Settings > Developer settings > OAuth apps > New OAuth App. Enter a public name, homepage URL and callback URL (up to 10); keep "Expire user access tokens" on if your app handles refresh tokens.
Where: https://github.com/settings/applications/new
Generate a client secret
On the app page click Generate a new client secret and copy it; it is shown once [to verify wording].
verapli captures
GITHUB_OAUTH_CLIENT_SECREThere by plain code: encrypted in your browser, never shown to AI.If something goes wrong (1)
- Users have to sign in again after a period of inactivity: Refresh tokens expire after six months unused; send the user through the web or device flow again. [2]
Where: https://github.com/settings/developers
List on GitHub Marketplace (optional)optional
Meet the listing requirements (privacy policy, support link, webhooks for plan changes); paid plans need a verified-publisher organisation and at least 200 users.
Where: https://docs.github.com/en/apps/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app
Terms and gotchas
Plain-English summary, not legal advice. Each card links its source.
What you end up with
| Env var | Secret | Format | What it is |
|---|---|---|---|
GITHUB_OAUTH_CLIENT_ID | not secret | opaque id string | OAuth app client ID |
GITHUB_OAUTH_CLIENT_SECRET | secret | opaque secret string | OAuth app client secret |
For agents
The same entry as JSON: /api/v1/entries/github/oauth-app · requirements /api/v1/requirements/github/oauth-app · terms /api/v1/terms/github/oauth-app.
claude mcp add --transport http verapli https://verapli.com/mcp
> "What do I need for GitHub OAuth app, and how long will it take?"
→ tools/call requirements { "provider_id": "github/oauth-app" }Sources
- Creating an OAuth app Settings > Developer settings > OAuth apps > New OAuth App; name, homepage URL, description, callback URL (up to 10), device flow, "Expire user access tokens" on by default; up to 100 OAuth apps per user or organisation. · accessed 25 October 2026 · official
- Authorizing OAuth apps Expiring access tokens last eight hours; refresh tokens expire after six months unused; client_secret needed for web flow code exchange; device flow uses client ID only. · accessed 25 October 2026 · official
- Requirements for listing an app Marketplace listing requirements; paid OAuth apps need a verified-publisher organisation and at least 200 users. · accessed 25 October 2026 · official
Provider rules change. This page is generated from verapli registry version 2026.1025.316; spotted something out of date? Tell us. GitHub is not affiliated with verapli.