---
title: "Start GitHub OAuth flow"
method: GET
path: "/oauth/github/login"
tags: ["OAuth"]
---

# Start GitHub OAuth flow

`GET /oauth/github/login`

## Request

- Base URL: `https://api.uptimemonitoring.com`
- URL: `https://api.uptimemonitoring.com/oauth/github/login`
- Auth: none required

Redirects the user to GitHub's authorization page. Sets an `oauth_state`
cookie for CSRF protection. After authorization, GitHub redirects to
`/oauth/github/callback`.

Requests scope `read:user user:email` (issue #390) — `user:email`
lets the callback read `GET /user/emails` to discover GitHub's
verified primary address for email adoption and sign-in merging
(see `/oauth/github/callback`). Every account sees GitHub's
consent screen once more on their next sign-in or link.

## Other responses

- `302`: Redirect to GitHub authorization page.
- `500`: Internal server error.

---

[API](https://skmtc.dev/uptimemonitoring/apis/uptimemonitoring-com-api.md) · [All operations](https://skmtc.dev/uptimemonitoring/apis/uptimemonitoring-com-api/llms.txt) · [OpenAPI document](https://skmtc.dev/uptimemonitoring/apis/uptimemonitoring-com-api/revisions/ddcb2a8bc70f?raw)
