# Token de acesso

Troca um API ID e uma API key por um token bearer OAuth2.
- **Pré-requisitos**: `client_id` é o API ID e `client_secret` é a API key. O membro precisa estar ativo, e o IP de quem chama precisa satisfazer as listas de permissão e de bloqueio de IP da Open API.
- **Efeito**: nenhum; o token é autoassinado e nada é armazenado no servidor.
- **Validade**: `expires_in` segundos, 3600 por padrão. **Não existe token de atualização nem endpoint de atualização**; solicite um token novo no lugar.
- **Concorrência**: como os tokens não têm estado, emitir um novo **não** invalida os anteriores: vários podem ser válidos ao mesmo tempo. Um token deixa de funcionar apenas quando expira ou quando a API key é rotacionada.
- **Nova tentativa**: é seguro repetir.

Erros de negócio documentados: `12002`, `35002`, `35005`. Consulte [Error Codes](../Getting%20Started/error-codes.md) para o significado de cada código. Qualquer operação também pode retornar os códigos comuns.

Endpoint: POST /oauth2/token
Version: 2026-09-05
Security: Authorization

## Header parameters:

  - `Content-Type` (string, required)

## Request fields (application/json):

  - `client_id` (string, required)
    Um ID de API identifica um membro.

  - `client_secret` (string, required)
    Uma chave de API autentica um ID de cliente. Para chamar as APIs do MoreLogin, você precisará trocar seu ID de API e sua chave de API por um token de acesso. Mantenha esse segredo em segurança.

  - `grant_type` (string, required)
    Nome do pacote — necessário apenas se appVersionId não for fornecido.
    Example: client_credentials

## Response 200:

  - `200` (unknown)
    Sucesso. `data` é um objeto com os campos `scope`, `access_token`, `token_type`, `expires_in` e `client_metadata`.

## Response 200 fields (application/json):

  - `code` (integer, required)

  - `msg` (string | null, required)

  - `data` (object, required)

  - `data.scope` (string, required)

  - `data.access_token` (string, required)

  - `data.token_type` (string, required)

  - `data.expires_in` (integer, required)

  - `data.client_metadata` (object, required)

  - `data.client_metadata.name` (string, required)

  - `requestId` (string, required)

