Загальний огляд

API Buluthat дає змогу інтегрувати ваше наявне програмне забезпечення (CRM, ERP, e-commerce, служба підтримки) з хмарною АТС: клік-дзвінок, керування дзвінками, керування чергами, чорний список, звукові файли, кампанії автоматичного дзвінка, завдання голосового асистента та голосовий код підтвердження.

Усі кінцеві точки працюють через звичайний 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); завжди викликайте зі свого сервера. Якщо підозрюєте витік, у панелі виберіть «Оновити ключ > Закрити старий негайно» — старий ключ одразу стане недійсним.

Формат запиту

  • Операції читання 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 значення поділіться в запитах до підтримки.

Тестове середовище

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

Версії та зміни

Кінцеві точки зберігають зворотну сумісність; додаються нові поля, назви та типи наявних полів не змінюються. Про поле, що буде видалено, оголошується в панелі та на цій сторінці щонайменше за 90 днів.

Допомога

Якщо під час інтеграції виникли труднощі, створіть запис у Центрі підтримки в панелі за темою «Інтеграція / API»; додайте приклад запиту/відповіді, подивимося разом.