Обновлено: 25.08.2026
Управление доступом
Выпуск и отзыв ключей API, настройка прав (scopes) для каждого интеграционного сценария. Рекомендуем заводить отдельный ключ на каждую интеграцию — так проще отследить источник проблемы и отозвать доступ точечно.
Обзор методов
| Метод | Путь | Описание |
|---|---|---|
GET | /api-keys | Список ключей |
POST | /api-keys | Выпустить ключ |
DELETE | /api-keys/{id} | Отозвать ключ |
GET | /api-keys/{id}/usage | Статистика использования ключа |
Список ключей
GET /api-keysВсе активные и отозванные ключи API клуба с датой создания и списком scopes.
curl https://api.virazh.io/v1/api-keys \
-H "Authorization: Bearer sk_test_51H..."{
"data": [
{ "id": "key_a1", "label": "CRM интеграция", "scopes": ["users:read", "loyalty:write"], "status": "active" },
{ "id": "key_b2", "label": "Мобильное приложение", "scopes": ["tickets:read"], "status": "active" }
]
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | array<ApiKey> | Ключи с полями id, label, scopes, status. Секрет не возвращается. |
Выпустить ключ
POST /api-keysСоздаёт новый ключ с ограниченным набором прав. Полное значение секрета показывается один раз в ответе — сохраните его сразу.
Параметры
| Параметр | Где | Тип | Обязателен | Описание |
|---|---|---|---|---|
label | тело | string | да | Понятное название интеграции, для которой выпускается ключ. |
scopes | тело | array<string> | да | Список прав вида resource:read или resource:write. |
curl https://api.virazh.io/v1/api-keys \
-X POST \
-H "Authorization: Bearer sk_test_51H..." \
-H "Content-Type: application/json" \
-d '{
"label": "Виджет расписания на сайте",
"scopes": ["sports-school:read"]
}'{
"id": "key_c3",
"label": "Виджет расписания на сайте",
"secret": "sk_live_9f21...only_shown_once",
"scopes": ["sports-school:read"]
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | string | Идентификатор ключа. |
secret | string | Полное значение ключа — показывается только один раз в этом ответе. |
scopes | array<string> | Выданные права. |
Отозвать ключ
DELETE /api-keys/{id}Немедленно деактивирует ключ — все запросы с ним начинают получать 401 unauthenticated. Действие необратимо.
Параметры
| Параметр | Где | Тип | Обязателен | Описание |
|---|---|---|---|---|
id | путь | string | да | Идентификатор ключа. |
curl https://api.virazh.io/v1/api-keys/key_b2 \
-X DELETE \
-H "Authorization: Bearer sk_test_51H..."{
"id": "key_b2",
"status": "revoked"
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | string | Идентификатор ключа. |
status | string | revoked при успешном отзыве. |
Статистика использования ключа
GET /api-keys/{id}/usageКоличество запросов по дням и распределение по эндпоинтам — помогает найти ключ с аномальной активностью или лишними правами.
Параметры
| Параметр | Где | Тип | Обязателен | Описание |
|---|---|---|---|---|
id | путь | string | да | Идентификатор ключа. |
days | query | integer | нет | Глубина периода в днях, до 90. По умолчанию — 7. |
curl https://api.virazh.io/v1/api-keys/key_a1/usage?days=7 \
-H "Authorization: Bearer sk_test_51H..."{
"key_id": "key_a1",
"requests_total": 18420,
"by_endpoint": [
{ "path": "/users", "count": 9100 },
{ "path": "/loyalty/{user_id}", "count": 6210 }
]
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
requests_total | integer | Общее количество запросов за период. |
by_endpoint | array<EndpointUsage> | Разбивка по эндпоинтам: { path, count }. |
Полезно знать
- Секрет ключа (
secret) показывается один раз, в момент создания — платформа не хранит его в открытом виде и повторно показать не сможет, только отозвать и выпустить новый. - Заводите отдельный ключ на каждую интеграцию (сайт, мобильное приложение, CRM) — так проще отследить источник аномального трафика по
/api-keys/{id}/usageи отозвать доступ точечно, не затронув остальные сервисы. - Scopes выдаются по принципу минимально необходимых прав: если виджету нужно только расписание тренировок, не выдавайте ему
users:writeилиloyalty:write.




