API — обзор и авторизация

Что такое MCM API v1

REST API для интеграции внешних систем (CRM, BI, авто-обзвон, аналитика) с кабинетом MCM. Каждый тенант управляет своими ключами на странице /settings/api в кабинете.

Базовый URL

https://smart.mcm.ru/api/v1/...

Можно также использовать домен своего тенанта: https://your-tenant.smart.mcm.ru/api/v1/... — host не важен, тенант определяется из ключа.

Авторизация

Все запросы требуют заголовок:

Authorization: Bearer mcm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Ключ создаётся в кабинете /settings/api. Сразу после создания токен показывается только один раз — сохраните его. На сервере хранится только sha256-хэш.

Параметры ключа

  • Scopes — список разрешённых операций. Если ключу нужен только просмотр CDR — выберите только cdr.read. Если оставить пустым — выдаётся scope * (полный доступ).
  • IP allowlist — список IP-адресов, с которых разрешены запросы. Если пусто — любой IP.
  • Rate limit — максимум запросов в минуту с одного ключа (по умолчанию 600). При превышении — HTTP 429.

Тестовый запрос

curl -H "Authorization: Bearer mcm_xxxxxxxx..." \
     https://smart.mcm.ru/api/v1/me

Ответ:

{
  "tenant": { "id": "uuid", "domain": "...", "name": "..." },
  "key_id": 5,
  "scopes": ["cdr.read"],
  "time": "2026-05-01T22:00:00+00:00"
}

Список доступных scopes

* Полный доступ ко всему API
cdr.read Чтение CDR (звонки, записи, транскрипты)
cdr.write Изменение тегов и комментариев звонков
calls.originate Заказ обратного звонка
transcripts.read Чтение транскрипций
users.read Сотрудники: чтение
phonebook.read Телефонная книга: чтение
phonebook.write Телефонная книга: создание/изменение
calltracker.read Коллтрекинг: чтение
chat.read Чат с сайта: чтение
fmc.read FMC SIM-карты: чтение
webhooks.read Webhooks: чтение
webhooks.write Webhooks: подписка/отписка

Scope можно указывать с .*: phonebook.* означает и phonebook.read, и phonebook.write.

Формат ошибок

{
  "error": "Required scope: cdr.read",
  "has_scopes": ["phonebook.read"]
}
  • 401 — нет/неверный токен
  • 403 — отозван / IP не в allowlist / нет scope
  • 404 — объект не найден
  • 422 — ошибка валидации
  • 429 — превышен rate-limit (повторите через минуту)

Audit log

Каждый запрос с использованием API-ключа записывается в audit-лог (метод, путь, статус, IP, длительность). Просмотр: /settings/api → таблица «Последние запросы» (last 50).

Дальше