> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notifique.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# OAuth

> Conecte apps de terceiros e assistentes de IA com OAuth 2.1 — o usuário aprova, você recebe token temporário.

<Tip>
  OAuth é o **crachá emprestado**: o usuário faz login na Notifique, escolhe o workspace e autoriza o que seu app pode fazer — sem compartilhar API Key.
</Tip>

## O que é?

Forma de **apps de terceiros**, integrações no browser e hosts de IA (ChatGPT, Claude, Gemini) chamarem a API **em nome de um usuário**.

* Issuer: `https://api.notifique.dev`
* **PKCE obrigatório** (S256)
* Registro dinâmico de clientes (DCR)

| Situação                              |  OAuth  |  API Key |
| ------------------------------------- | :-----: | :------: |
| App de terceiros com login do usuário | **Sim** |    Não   |
| ChatGPT / Claude via MCP              | **Sim** | Opcional |
| CI/CD, cron, backend seu              |   Não   |  **Sim** |

## Metadados (discovery)

| Rota                                          | Uso                                             |
| --------------------------------------------- | ----------------------------------------------- |
| `GET /.well-known/oauth-authorization-server` | URLs de authorize, token, register (RFC 8414)   |
| `GET /.well-known/jwks.json`                  | Chaves públicas para validar JWT                |
| `GET /.well-known/oauth-protected-resource`   | Discovery MCP (`https://mcp.notifique.dev/mcp`) |

## Fluxo resumido

1. `POST /oauth/register` — registra cliente (DCR)
2. Redireciona usuário a `/oauth/authorize` com PKCE
3. Usuário aprova escopos no browser
4. `POST /oauth/token` — troca `code` + `code_verifier`
5. Chama `/v1/*` com `Authorization: Bearer <access_token>`

## Endpoints OAuth

| Método | Rota               |
| ------ | ------------------ |
| POST   | `/oauth/register`  |
| GET    | `/oauth/authorize` |
| POST   | `/oauth/token`     |
| POST   | `/oauth/revoke`    |

## Apps OAuth do workspace (API v1)

Gerencie apps **criados no painel** do workspace (diferente do registro dinâmico DCR em `/oauth/register` para hosts MCP):

| Método         | Rota                                     | Escopos                                 |
| -------------- | ---------------------------------------- | --------------------------------------- |
| GET            | `/v1/oauth/apps`                         | `oauth_apps:read`                       |
| POST           | `/v1/oauth/apps`                         | `oauth_apps:manage`                     |
| GET/PUT/DELETE | `/v1/oauth/apps/{id}`                    | `oauth_apps:read` / `oauth_apps:manage` |
| POST           | `/v1/oauth/apps/{id}/rotate-secret`      | `oauth_apps:manage`                     |
| GET            | `/v1/oauth/connections`                  | `oauth_apps:read`                       |
| POST           | `/v1/oauth/connections/{grantId}/revoke` | `oauth_apps:manage`                     |

Para registrar cliente via DCR (ChatGPT, Claude, integrações MCP), use `POST /oauth/register` — veja [Quick Start OAuth](/oauth-api/como-funciona/quick-start).

## Guia completo

Passo a passo, escopos, MCP e construção de cliente:

* [Introdução OAuth](/oauth-api/como-funciona/introducao)
* [Quick Start OAuth](/oauth-api/como-funciona/quick-start)
* [Escopos OAuth](/oauth-api/como-funciona/escopos)

## Próximos passos

* [Platform — Introdução](/platform-api/como-funciona/introducao)
* [Chaves de API](/guides/api-key/index): quando OAuth não é necessário
