REST API

Аутентификация

Выберите личный ключ API или OAuth 2.1 с PKCE.

Используйте личный ключ API для собственных скриптов. Используйте OAuth для приложения, действующего от имени других клиентов NinjaBuy, включая клиентов MCP.

OAuth 2.1

Используйте поток кода авторизации с PKCE S256. REST и MCP принимают один и тот же токен доступа OAuth NinjaBuy. Каждый токен действует от имени аккаунта, который выполнил вход и разрешил доступ; выбрать другой аккаунт в теле запроса нельзя.

Все конечные точки OAuth используют адрес https://www.ninjabuy.com. Пути обнаружения и авторизации:

Метаданные OAuth · Метаданные ресурса MCP

POST /api/auth/mcp/register
GET  /api/auth/mcp/authorize
POST /api/auth/mcp/token
  1. Зарегистрируйте клиент через POST /api/auth/mcp/register. Публичный клиент отправляет JSON с client_name, redirect_uris и token_endpoint_auth_method: "none". Сохраните полученный client_id.
  2. Создайте новые случайные state и code_verifier PKCE. Вычислите code_challenge как SHA-256, закодированный в base64url.
  3. Откройте /api/auth/mcp/authorize в браузере пользователя с параметрами response_type=code, client_id, redirect_uri, state, code_challenge, code_challenge_method=S256 и scope=openid offline_access.
  4. Пользователь входит по своему номеру телефона NinjaBuy и разрешает доступ вашему приложению. В обработчике обратного вызова проверьте state, прежде чем использовать полученный code.
  5. Отправьте POST в кодировке формы на /api/auth/mcp/token с grant_type=authorization_code, code, client_id, тем же redirect_uri и code_verifier.

Передавайте полученный токен доступа в REST-запросах:

Authorization: Bearer YOUR_ACCESS_TOKEN

Токены доступа действуют 1 час. При использовании offline_access токены обновления позволяют продлевать доступ в течение 7 дней. Для обновления отправьте на тот же адрес токенов POST в кодировке формы с grant_type=refresh_token, client_id и refresh_token. Храните токены безопасно и выполните вход повторно, когда обновление станет недействительным.

Отсутствующий, истёкший или недействительный токен доступа возвращает 401 с заголовком WWW-Authenticate, указывающим на метаданные. См. Ошибки.

На этой странице