Справочный центр / API и ключи интеграций

API и ключи интеграций

Кратко

Раздел REST API в настройках нужен для двух задач: создать и обслуживать API-ключи, а также быстро открыть обучающую документацию. В правой шторке API сразу доступны:

Ключ REST API отличается от ключа виджета: REST/MCP используют API-ключ tps_..., виджет на сайте использует отдельный widget key.

Где найти

Раздел интеграций
Настройки → Интеграции. Используйте поиск по настройкам, если нужный блок не виден в первой части страницы.

В админ-панели: Настройки → Интеграции → REST API.

Также доступен прямой маршрут SPA: #settings/api.

Как получить API-ключ

Создание ключей доступно администраторам. Доступность и лимиты зависят от тарифа.

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

Для серверных интеграций передавайте ключ в заголовке:

X-Api-Key: tps_your_api_key_here
Content-Type: application/json

Для MCP/OpenAPI и GPT Actions используйте тот же ключ как Bearer:

Authorization: Bearer tps_your_api_key_here

Тенант определяется по ключу. Если запрос дополнительно передаёт tenant_id, он должен совпадать с тенантом ключа.

Базовый запрос

curl -X POST https://support.tehprof.kz/api/admin.php \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: tps_your_api_key_here" \
  -d '{"action":"list_tickets"}'

Все основные operator API actions вызываются через POST /api/admin.php с JSON-телом и полем action.

Основные scopes

ScopeДля чего
readчтение данных
writeизменение данных
ticketsзаявки
messagesсообщения
clientsклиенты, контакты, компании
webhooksисходящие вебхуки

Выдавайте ключам только те scopes, которые нужны конкретной интеграции.

Правила сроков через ключ

Раздел настроек sla доступен по ключу: на чтение — список правил в порядке применения, на изменение — весь список целиком. Присылается желаемый вид списка: порядок массива становится порядком применения, правила без номера создаются, ваши правила, которых в списке нет, удаляются. Встроенные правила не удаляются никогда — они уходят вниз как подстраховка. Для нового пользовательского правила без условий обязательно передайте any_ticket: true: это явное подтверждение, что правило должно совпадать со всеми заявками. Изменение требует права write, чтение — read.

Что выбрать

СценарийДокументация
Управлять заявками из CRM/бота/скриптаПолная документация API и гид интеграции
Выдать пользователю доступ к клиентскому кабинету из своего продуктаГид серверной интеграции (ctoken)
Встроить готовый интерфейс поддержки iframe/JWTEmbed документация
Подключить Claude/Cursor/VS Code к SupportMCP / AI guide
Поставить форму или кнопку поддержки на сайтWidget документация, не REST API ключ

Примеры

Получить список заявок

curl -X POST https://support.tehprof.kz/api/admin.php \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: tps_your_api_key_here" \
  -d '{"action":"list_tickets","status":"new","limit":20}'

Создать заявку

curl -X POST https://support.tehprof.kz/api/admin.php \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: tps_your_api_key_here" \
  -d '{"action":"create_ticket","subject":"Не работает принтер","description":"После обновления не печатает","category":"other","priority":"normal"}'

Создать заявку от имени клиента (карточка человека заполняется сама)

Ключ — это ваше приложение, а не человек. Чтобы в заявке появился клиент — с именем, телефоном

и компанией — присылайте его отдельными полями, а не строчками внутри текста заявки: из текста

мы ничего не вытаскиваем.

curl -X POST https://support.tehprof.kz/api/admin.php \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: tps_your_api_key_here" \
  -d '{"action":"create_ticket",
       "subject":"Утечка газа — заявка №78",
       "description":"Адрес: Степной. Заявка принята оператором в 15:55.",
       "category":"other","priority":"urgent",
       "client_name":"Ербол Смагулов",
       "client_phone":"87001999919",
       "client_email":"erbol@example.kz",
       "contact_external_id":"client-78",
       "company_name":"ТОО Ромашка",
       "company_bin":"123456789012",
       "external_ref":"zayavka-78"}'
ПолеЧто делает
client_nameИмя человека. Оно же станет подписью обращения вместо названия ключа
client_phoneТелефон. Приводится к международному виду и ложится в список номеров карточки
client_emailПочта человека
contact_external_idВаш собственный номер клиента. Самый надёжный признак: по нему мы находим ту же карточку при следующих обращениях, даже если человек сменил телефон
company_name / company_bin / company_external_idКомпания клиента. Не прислали — заявка возьмёт компанию из карточки человека, если она там уже есть. Присылайте вместе с БИН или своим номером компании: по одному названию мы её не опознаём и заведём новую
external_refВаш номер заявки. Повторная отправка с тем же номером вернёт уже созданную заявку, а не заведёт вторую

Карточку заводит любой из трёх признаков: ваш номер клиента, телефон или почта. Одного имени

мало — по имени человека не опознать, и карточка создана не будет.

Сведения о клиенте — самостоятельный обмен: если заявку не примут (кончился лимит тарифа,

недопустимая тема), карточка человека и его компания всё равно останутся заведёнными, и повторная

отправка найдёт ту же карточку по тому же номеру клиента.

Добавить сообщение

curl -X POST https://support.tehprof.kz/api/admin.php \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: tps_your_api_key_here" \
  -d '{"action":"add_message","ticket_id":42,"message":"Проверили, проблема в драйвере."}'

Безопасность

Связанные статьи

Не нашли ответ? Найдите другую статью или напишите в поддержку.