Обзор

API Buluthat позволяет интегрировать уже используемое вами ПО (CRM, ERP, электронную коммерцию, службу поддержки) с облачной АТС: click-to-call, управление вызовами, управление очередями, чёрный список, аудиофайлы, кампании автодозвона, задания голосового ассистента и голосовой код подтверждения.

Все методы работают по обычному HTTP; ответы — JSON. Используются из любого языка с помощью HTTP-клиента.

Базовый адрес: https://api.buluthat.com/api/

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

Все методы одинаковы Ключ API использует. Ключ в панели Аккаунт и поддержка > Ключи API на странице создаётся уполномоченным лицом аккаунта; bt_ начинается с и показывается один раз, только в момент создания.

Ключ передаётся в заголовке каждого запроса:

Authorization: Bearer bt_xxxxxxxx

Authorization если заголовок задать нельзя X-Api-Key: bt_xxxxxxxx тоже принимается. Ключ в URL (?key=) для новых ключей отключена.

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

ОбластьМетоды
callУправление вызовами, очереди, статусы операторов
autocallАвтодозвон (для совместимости со старыми интеграциями также открывает методы голосового ассистента, голосового OTP и вызовов)
voicebotГолосовой ассистент
voice_otpГолосовой код подтверждения
smsSMS API

Запрос вне области 403 scope_denied, отключённый в вашем аккаунте модуль 403 module_disabled возвращается. Ключу список разрешённых IP, срок действия и обязательная подпись запроса HMAC можно задать; все Безопасность API на странице.

Не используйте ключ на стороне браузера (JavaScript); всегда вызывайте API со своего сервера. Если подозреваете утечку, в панели нажмите «Обновить ключ > Закрыть старый сразу» — старый ключ мгновенно станет недействительным.

Формат запроса

  • Операции чтения GET, операции, изменяющие данные POST (в аудиофайлах PUT/DELETE).
  • Тело POST application/json или application/x-www-form-urlencoded может быть.
  • Операция в методах интеграции action выбирается параметром (?action=create_campaign).
  • Метки времени — по времени Турции (2026-09-18 10:12:03).
  • Номера телефонов 05xxxxxxxxx, 5xxxxxxxxx или 905xxxxxxxxx принимается в формате; в ответах возвращается нормализованным.

Формат ответа

Методы интеграции (autocall, voicebot, voice_otp) всегда возвращают конверт:

{ "ok": true, "data": { } }
{ "ok": false, "error": "Kampanya bulunamadı.", "code": "campaign_not_found" }

Методы АТС (begin_call, queues, blocked_numbers…) отвечают HTTP-кодом состояния: при успехе 200 OK а в теле — результат (массив JSON или обычный текст), при ошибке 4xx а в теле — сообщение об ошибке на турецком.

Коды ошибок

HTTPcodeЗначение
400validation_failedПроверка поля не пройдена; в сообщении указана причина
401missing_token / invalid_token / token_expiredКлюч отсутствует, недействителен или срок его действия истёк
401query_key_disabled / signature_*Ключ пришёл в URL либо подпись не удалось проверить (Безопасность API)
403module_disabled / scope_denied / ip_not_allowedМодуль отключён, область недостаточна или IP не разрешён
404*_not_foundЗаписи нет или она принадлежит другому клиенту
405method_not_allowedДля операции, требующей POST, пришёл GET
422(для конкретной конечной точки)Отказ по бизнес-правилу: квота, срок, нет линии и т. п.
413payload_too_largeТело запроса превышает 5 МБ
429rate_limited / ip_lockedПревышен лимит запросов, либо IP временно заблокирован из-за множества неудачных попыток
503db_unavailableВременный сбой сервиса; повторите попытку немного позже

Лимиты запросов

ЛимитПо умолчанию
На каждый ключ120 запросов в минуту (можно снизить в настройках ключа)
Сумма по всем ключам аккаунта600 запросов в минуту
Статусы операторова также 2 запросов в минуту (для живого статуса лучше использовать webhook)
Автодозвон add_leads5.000 записей в одном запросе

Ответ получен X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset приходят заголовки. При превышении 429 Too Many Requests и Retry-After возвращается заголовок. В каждом ответе X-Request-Id делитесь значением в заявках в поддержку.

Тестовая среда

Отдельной песочницы нет; протестируйте на тестовом внутреннем номере и небольшой кампании в своём аккаунте. Кампании автодозвона status: "draft" создайте с помощью и results/summary эти методы можно вызывать и до поступления данных. Для голосового кода подтверждения отправьте на свой номер; тарификация по правилам вашего пакета.

Версия и изменения

Методы сохраняют обратную совместимость; добавляются новые поля, имя и тип существующих полей не меняются. Поле, которое будет удалено, объявляется в панели и на этой странице не менее чем за 90 дней.

Помощь

Если возникли трудности при интеграции, создайте заявку по теме «Интеграция / API» в Центре поддержки внутри панели; приложите пример запроса/ответа, и мы разберём вместе.