# Токен доступа

Обменивает API ID и API-ключ на bearer-токен OAuth2.
- **Предварительные условия**: `client_id` — это API ID, а `client_secret` — API-ключ. Участник должен быть активен, а IP вызывающего должен пройти списки разрешённых и запрещённых IP для Open API.
- **Эффект**: отсутствует — токен самоподписанный, на сервере ничего не сохраняется.
- **Срок действия**: `expires_in` секунд, по умолчанию 3600. **Ни refresh-токена, ни эндпоинта обновления нет**; вместо этого запросите новый токен.
- **Параллелизм**: поскольку токены не имеют состояния, выпуск нового **не** аннулирует предыдущие — одновременно могут быть действительны несколько. Токен перестаёт работать только по истечении срока или при ротации API-ключа.
- **Повтор**: безопасен.

Задокументированные бизнес-ошибки: `12002`, `35002`, `35005`. Значения кодов см. в [Error Codes](../Getting%20Started/error-codes.md). Любая операция может дополнительно вернуть общие коды.

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

## Header parameters:

  - `Content-Type` (string, required)

## Request fields (application/json):

  - `client_id` (string, required)
    Идентификатор API (API ID) идентифицирует участника.

  - `client_secret` (string, required)
    Ключ API используется для аутентификации идентификатора клиента. Для вызова API MoreLogin вам потребуется
обменять свой идентификатор API и ключ API на токен доступа. Храните этот
секрет в безопасности.

  - `grant_type` (string, required)
    Название пакета — требуется только в том случае, если не указан appVersionId.
    Example: client_credentials

## Response 200:

  - `200` (unknown)
    Успех. `data` — объект с полями `scope`, `access_token`, `token_type`, `expires_in` и `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)

