Перейти к основному содержимому

Ключи и права

Ключ аккаунта даёт полный доступ ко всему: и чтение подписчиков, и отправку сообщений, и удаление. Отдать такой ключ подрядчику или вставить в чужой сервис страшно, а отозвать его можно только вместе со своим.

Поэтому рядом с ним живут ключи с правами: у каждого свой набор разрешений, свой список ботов и свой срок жизни.

Где это в кабинете

Настройки аккаунта → карточка «Ключи с правами». Там же их можно создать и отозвать мышкой.


Права

Право состоит из раздела и действия. Читающее право никогда не разрешает запись.

ПравоЧто открывает
account:readаккаунт, тариф, расход, журнал вызовов
subscribers:readкарточки, поиск, списки, переписка
subscribers:writeсоздание, теги, переменные, блокировка, удаление
messages:sendотправка сообщений и рассылки
chains:writeзапуск и остановка цепочек и блоков
lists:read / lists:writeсписки
catalog:read / catalog:writeкаталог товаров
calendar:read / calendar:writeприложение-календарь и Google Календарь
crm:read / crm:writeворонка, этапы, ответственные
payments:read / payments:writeплатежи и ссылки на оплату
bots:read / bots:writeботы, цепочки, генерация, выгрузка
stats:readстатистика
files:writeзагрузка файлов
links:read / links:writeкороткие ссылки
hooks:read / hooks:writeподписки на события
keys:read / keys:writeуправление самими ключами
proxy:useзапрос через зарубежный сервер

Можно указать и раздел целиком — subscribers означает и чтение, и запись. Право * или пустой список прав — полный доступ.

Актуальный перечень отдаёт метод GET /key/scopes.


Создать ключ

POST /key/create

curl -X POST https://api.quescha.com/api/key/create \
-H "Authorization: КЛЮЧ_АККАУНТА" -H "Content-Type: application/json" \
-d '{
"name": "Сайт: приём заявок",
"scopes": ["lists:write", "messages:send"],
"bots": ["123456789"],
"days": 90
}'
ПолеОбязательныйОписание
nameДачтобы отличать ключи: «сайт», «1С», «n8n»
scopesНетмассив прав; пусто — полный доступ
botsНетмассив BotID: ключ увидит только эти боты
daysНетсрок жизни в днях; 0 — бессрочный
rateНетсвоя частота запросов в секунду
{
"key": {
"id": 7,
"name": "Сайт: приём заявок",
"key": "1f9c04f0f0a3f1e4d2c0a9b8e7d6c5b4",
"scopes": ["lists:write", "messages:send"],
"bots": ["123456789"],
"active": true,
"expires": "2026-11-26T…"
}
}
Ключ показывается один раз

Значение ключа целиком приходит только в ответе на создание. Дальше в списке видно лишь начало и конец: 1f9c…c5b4. Потеряли — отзовите и создайте новый.


Остальные методы

GET|POST /key/list — ключи аккаунта: права, боты, срок, сколько вызовов сделано, когда и с какого адреса использовался последний раз.

POST /key/edit — поменять название, права, список ботов, срок или выключить ключ (active: false).

POST /key/revoke — отозвать ключ навсегда. Работает сразу: следующий же запрос получит 401.


Что происходит при отказе

СитуацияОтвет
ключа нет в запросе401 unauthorized
ключ не найден401 unauthorized
ключ отозван401 key_revoked
срок ключа истёк401 key_expired
у ключа нет нужного права403 forbidden_scope
бот не в списке ключа404 no_bot — как будто такого бота нет

Ключи с правами и старые методы

Методы первой очереди — каталог, календарь, прокси, баланс — написаны раньше и ищут ключ аккаунта сами. Чтобы ключи с правами работали и с ними, перед ними стоит прослойка: она проверяет право и подставляет обработчику ключ аккаунта.

Для вас это значит, что ключ с правами работает со всеми методами одинаково. Ключ аккаунта проходит насквозь, ничего не замечая, — существующие интеграции работают как работали.