---
title: "Authorize"
method: GET
path: "/v1/auth/oauth/{provider}/authorize"
tags: ["auth"]
---

# Authorize

`GET /v1/auth/oauth/{provider}/authorize`

Start an OAuth sign-in: where to send the browser, and the state to keep.

A GET, and safe: it reads configuration and mints a random value, writing
nothing. Repeating it simply produces another state, and only the one the
browser kept is the one it will compare against.

## Path parameters

- `provider` string, required — Which OAuth provider to sign in with.

## Response `200`

Successful Response

- AuthorizeResponse — Where to send the browser, and the state to check when it comes back.
  - `authorization_url` string, required — The provider consent screen to navigate to.
  - `state` string, required — An opaque CSRF value to keep for the length of the redirect and compare against the 'state' the provider returns. It is not stored on this deployment, so a callback whose state does not match the one held by the browser that started the flow must be abandoned by the client rather than sent here.

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-25** `0e52dff6b641` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/mozilla-ai/apis/otari/changes/v1/auth/oauth/:provider/authorize/get.md)

---

[API](https://skmtc.dev/mozilla-ai/apis/otari.md) · [All operations](https://skmtc.dev/mozilla-ai/apis/otari/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mozilla-ai/otari/revisions/be434013dd3d/schema)
