Создавайте рабочие процессы связи операторского уровня с помощью нашего RESTful API. JSON через HTTPS, аутентификация по токену носителя и веб-перехватчики в реальном времени.
curl -X POST https://api.ajoxi.com/v1/calls \
-H "Authorization: Bearer AJX_LIVE_..." \
-H "Content-Type: application/json" \
-d '{ "to": "+14155551234", "from": "+14155550100", "ai_receptionist": true }'{
"id": "call_8f2a1b3c",
"status": "ringing",
"ai_handler": "receptionist_v2"
}Все запросы аутентифицируются с помощью токена-носителя в Authorization заголовок. Сгенерируйте ключи на вкладке API вашей консоли Ajoxi — используйте AJX_LIVE_… для производственного трафика и AJX_TEST_… для песочницы.
curl https://api.ajoxi.com/v1/calls \
-H "Authorization: Bearer AJX_LIVE_XXXXX"Размещайте, перечисляйте, передавайте и получайте голосовые вызовы.
/v1/callsПеречислите все вызовы с нумерацией курсора и фильтрами по дате.
/v1/callsИнициируйте новый исходящий звонок или запустите кампанию дозвона.
/v1/calls/{id}Получите один вызов по идентификатору с полными метаданными.
/v1/calls/{id}/transferПереведите активный вызов на другого агента или добавочный номер.
Поиск, предоставление, перенос и освобождение телефонных номеров.
/v1/numbersНайдите доступные местные, бесплатные или международные номера.
/v1/numbersУкажите новый номер в своем аккаунте.
/v1/numbers/{id}Обновите маршрутизацию, идентификатор вызывающего абонента или конфигурацию SMS на номере.
/v1/numbers/{id}Отпустите номер обратно в пул. Необратимо.
Отправляйте и получайте SMS, MMS и историю разговоров.
/v1/messagesСписок сообщений, фильтрация по направлению, каналу или разговору.
/v1/messagesОтправьте SMS или MMS. Поддерживает медиа-вложения и шаблоны.
Получите доступ к записям разговоров, расшифровкам и аналитическим данным, полученным с помощью искусственного интеллекта.
/v1/recordingsСписок записей разговоров с дополнительными фильтрами по дате и агенту.
/v1/recordings/{id}Получите одну запись с расшифровкой и сводкой AI.
/v1/transcripts/{id}Получите полную расшифровку разговора или записи.
Подпишитесь на события платформы в режиме реального времени.
/v1/webhooksПолучение списка настроенных подписок на веб-перехватчики.
/v1/webhooksПодпишитесь на одно или несколько событий (call.start, message.received).
/v1/webhooks/{id}Удалить подписку на вебхук.
Каждый ответ об ошибке возвращает JSON с error.code и error.message. Код состояния HTTP соответствует категории.
Стандартные учетные записи ограничены 100 запросами в секунду на ключ API. Планы Enterprise не имеют фиксированного ограничения — мы масштабируемся вместе с вашим трафиком. Каждый ответ включает три заголовка ограничения скорости:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1715800000При превышении лимита вы получаете ответ 429 с кодом Retry-After заголовок в секундах. Клиенты SDK автоматически реализуют экспоненциальную отсрочку обработки этих заголовков.
Конечные точки списка по умолчанию возвращают не более 50 элементов на страницу (можно настроить до 200 с помощью ?limit=200). Каждый ответ включает в себя next_cursor — передать это обратно как ?cursor=… чтобы получить следующую страницу. Когда next_cursor равно нулю, вы достигли конца.
{
"data": [ ... ],
"next_cursor": "Y3Vyc29yX2FmMmI...",
"has_more": true
}Подпишитесь на события платформы через подписанные HTTPS POST. Каждый запрос вебхука включает в себя X-Ajoxi-Signature заголовок — проверьте его как HMAC-SHA256 по необработанному телу запроса, используя секрет вашего веб-перехватчика.
call.startedСрабатывает, когда начинает звонить входящий или исходящий вызов.call.answeredСрабатывает, когда на вызов отвечает человек или администратор с искусственным интеллектом.call.completedСрабатывает при завершении вызова. Полезная нагрузка включает продолжительность, URL-адрес записи и окончательное расположение.message.receivedВызывается, когда входящее SMS или MMS поступает на подготовленный номер.message.deliveredВызывается, когда исходящее сообщение подтверждается доставкой оператором связи.recording.readyСрабатывает, когда запись разговора обработана и доступна для скачивания.transcript.readyВызывается, когда обработка AI-расшифровки записи завершена.Неудачные поставки повторяются с экспоненциальной задержкой на срок до 24 часов. После последней попытки событие перемещается в очередь недоставленных сообщений, которую можно воспроизвести с консоли.
Текущая стабильная версия: v1. Критические изменения поставляются под новым префиксом (/v2/и т. д.) — никогда внутри существующей версии. Устаревшие версии остаются доступными в течение как минимум 18 месяцев после выпуска преемника, с уведомлением по электронной почте за 6 месяцев до выхода из строя.
Собственные SDK доступны для Node.js, Python, Go и Ruby. Каждый из них поставляется с типизированными клиентами, логикой повторных попыток и verifyWebhook() помощник.
Все запросы используют аутентификацию токена на предъявителя. Создайте ключ API в консоли Ajoxi, а затем передайте его как `Authorization: Bearer AJX_LIVE_XXXXX` при каждом запросе. Используйте отдельный ключ `AJX_TEST_…` для трафика песочницы — тестовая среда изолирована и никогда не выполняет реальные вызовы.
Да. Вызовы, выполняемые с помощью клавиш тестового режима, маршрутизируются через наш симулятор, а не через действующую сеть оператора связи, что идеально подходит для конвейеров CI и нагрузочного тестирования. Запросы в тестовом режиме не учитываются в счет вашего лимита минут и никогда не звонят на реальный телефон.
100 запросов в секунду на стандартном плане, безлимит на корпоративном. Каждый ответ включает заголовки «X-RateLimit-Limit», «X-RateLimit-Remaining» и «X-RateLimit-Reset», что позволяет точно определять скорость трафика. Когда вы превысите лимит, вы получите код 429 со значением Retry-After.
Каждый запрос веб-перехватчика включает заголовок X-Ajoxi-Signature. Вычислите HMAC-SHA256 по необработанному телу запроса, используя секрет веб-перехватчика, а затем сравните два значения в постоянном времени. Клиенты SDK (Node, Python, Go, Ruby) поставляются с помощником verifyWebhook(), который сделает это за вас.
Мы никогда не нарушаем стабильную версию API. Критические изменения отправляются по новому пути версии (например, `/v2/`). Устаревшие версии остаются в силе в течение как минимум 18 месяцев после выпуска преемника, и вы получаете предупреждения по электронной почте как минимум за 6 месяцев до прекращения действия.
Не сейчас. API — это REST + JSON с дополнительными событиями, отправленными сервером, для конечных точек потоковой передачи, таких как живые стенограммы. Если GraphQL может разблокировать для вас определенный рабочий процесс, отправьте запрос через свою команду по работе с клиентами — мы отслеживаем спрос и соответствующим образом расставляем приоритеты.
Создайте ключ песочницы, установите SDK и сделайте первый программируемый звонок до обеда.