Developer API
API разработчика

Полное руководство по API для разработчиков

Этот документ является официальным и исчерпывающим справочником по API для всей платформы Chirps AI. Мы наметили все безопасные для разработчиков конечные точки в системе. Вы можете программно реплицировать 100% функциональности информационной панели без головы.

Developer API

1. Аутентификация и основные принципы

Базовый URL: https://chirps.cc

Для всех конечных точек API требуется ключ API Chirps в заголовке Authorization. Вы можете сгенерировать ключ API в диспетчере API в [разделе «Разработчики» на панели управления] (https://chirps.cc/dashboard/developers).

http
Authorization: Bearer <YOUR_CHIRPS_API_KEY>

Пример запроса:

bash
curl -X GET https://chirps.cc/api/billing/usage \
  -H "Authorization: Bearer <YOUR_CHIRPS_API_KEY>" \
  -H "Content-Type: application/json"

Стандартная обработка ошибок

Код состоянияОписание
200 ОКЗапрос был успешным.
400 неверных запросовПолезная нагрузка JSON не прошла проверку. Включает массив деталей.
401 НесанкционированныйТокен отсутствует или срок действия которого истек.
402 Требуется оплатаВ рабочей области превышен лимит выставления счетов.
403 ЗапрещеноУ пользователя нет необходимых разрешений RBAC.
404 не найденЗапрошенный ресурс не существует.
500 Ошибка сервераНеожиданная ошибка платформы.
Developer API

2. Жизненный цикл помощника (создание)

GET /api/assistants

Список помощников

Получает список всех помощников, связанных с рабочей областью ключа API.

Создать помощника

POST /api/assistants

Создает нового помощника со всеми базовыми конфигурациями.

json
{

  "businessName": "Acme Corp",
  "businessUrl": "https://acme.com",
  "knowledgeBaseType": "both",
  "knowledgeBaseUrl": "https://acme.com/help",
  "knowledgeBaseText": "Raw text content of a document...",
  "knowledgeBaseFileName": "company_handbook.pdf",
  "language": "en",
  "isMultiLanguage": false,
  "tonePersonality": "professional",
  "isCustomPersonality": false,
  "supportEmail": "[email protected]",
  "maxPages": 5,
  "maxDepth": 2,
  "welcomeMessageDelay": 2
}
ПараметрТипНеобходимыйОписание
businessNameНитьДаНазвание компании (2-100 символов).
businessUrlНитьДаДействительный URL-адрес бизнес-сайта (максимум 500 символов).
knowledgeBaseTypeПеречислениеДаОдин из: `"url", "document", "both", "none".
knowledgeBaseUrlНитьНетДолжен быть указан, если тип — «url» или «both».
knowledgeBaseTextНитьНетНеобработанный текст, если тип — «документ» или «оба».
имя_базы_файла_знанийНитьНетИмя загруженного файла при предоставлении текста.
языкНитьДаКод языка (например, "en", "es").
isMultiLanguageлогическое значениеНетВключите автоматический перевод. По умолчанию «ложь».
тон ЛичностьНитьДаНапример, «профессиональный», «дружелюбный». Макс. 100 символов.
isCustomPersonalityлогическое значениеНетВключить собственный тон. По умолчанию «ложь».
customPersonalityDescriptionНитьНетПользовательские инструкции по тону, если они включены (максимум 2000 символов).
дополнительные инструкцииНитьНетОсновные подсказки (максимум 10 000 символов).
поддержка по электронной почтеНитьДаДействительный адрес электронной почты для эскалации.
maxPagesЧислоНетСтраницы для сканирования. Мин. 1, макс. 100. По умолчанию «5».
maxDepthЧислоНетГлубина сканирования. Мин. 1, макс. 20. По умолчанию «2».
welcomeMessageDelayЧислоНетЗадержка в секундах перед приветствием. Мин. 0, Макс. 6. По умолчанию «2».

Удалить помощника

DELETE /api/assistants/:id

Безвозвратно удаляет помощника и каскадно удаляет все его узлы знаний и историю. Полезная нагрузка не требуется.

Developer API

3. Помощник по аналитике и статистике

Сразу после создания и использования вы можете программно получить показатели производительности помощника.

GET /api/analytics/overview?assistantId=uuid&range=30

Получите статистику использования, общее количество сообщений, привлеченных потенциальных клиентов и общие показатели вовлеченности для указанного помощника. Параметр range является необязательным (количество дней, минимум 7, максимум 365, по умолчанию 30).

Ожидаемый ответ

json
{

  "totalConversations": 1245,
  "totalMessages": 8420,
  "totalLeads": 156,
  "totalBookings": 42,
  "satisfactionRate": 94,
  "avgMessagesPerSession": 6.7,
  "avgSessionsPerDay": 41.5,
  "liveNow": 3,
  "onlineNow": 12,
  "dailySeries": [
    {
      "date": "2026-07-15",
      "conversations": 45,
      "messages": 310,
      "leads": 5,
      "bookings": 2
    }
  ],
  "agentStats": [
    {
      "name": "Jane Doe",
      "messagesSent": 120,
      "csat": 98
    }
  ]
}
СвойствоТипОписание
totalConversationsЧислоОбщее количество сеансов чата, обработанных помощником.
totalMessagesЧислоОбщее количество сообщений (пользователь + ИИ), отправленных во всех разговорах.
totalLeadsЧислоОбщее количество извлеченных уникальных потенциальных клиентов (имя, адрес электронной почты, телефон).
totalBookingsЧислоОбщее количество успешно забронированных встреч в календаре.
satisfactionRateЧислоПроцент (0–100) положительных отзывов от общего числа оценок.
avgMessagesPerSessionЧислоСреднее количество сообщений, которыми обмениваются за разговор.
avgSessionsPerDayЧислоСреднее количество разговоров в день в запрошенном диапазоне.
liveNowЧислоКоличество активных разговоров, которые в данный момент ведет агент-человек.
онлайнсейчасЧислоКоличество пользователей, активно общавшихся с ИИ за последние 2 минуты.
dailySeriesМножествоМассив ежедневных объектов, содержащий количество разговоров, сообщений, потенциальных клиентов и заказов на дату.
агентстатсМножествоПоказатели производительности для агентов-людей, включая messagesSent и csat (оценка удовлетворенности клиентов).
Developer API

4. Знания и обучение

После создания помощника вы управляете его мозгом через «Узлы знаний». Каждый узел представляет собой фрагмент данных (просканированный URL-адрес, загруженный документ или фрагмент текста, введенный вручную).

Управление узлами знаний

GET /api/assistants/:id/nodes — список всех узлов знаний для этого помощника.

POST /api/assistants/:id/nodes – вручную добавить новый блок знаний.

json
{

  "title": "Return Policy",
  "refined_content": "We offer a 30-day return policy for all unused items...",
  "type": "text",
  "metadata": {}
}

PATCH /api/assistants/:id/nodes/:nodeId — изменение содержимого существующего узла или переключение его активного состояния.

json
{

  "title": "Updated Return Policy",
  "refined_content": "We offer a 60-day return policy now...",
  "is_active": true
}

DELETE /api/assistants/:id/nodes/:nodeId — полностью удалить блок знаний.

POST /api/assistants/:id/nodes/:nodeId/re-crawl — заставить парсер повторно сканировать URL-адрес, связанный с этим узлом, и обновить его содержимое. Полезная нагрузка: {}.

Обучение искусственному интеллекту

POST /api/assistants/:id/train — скомпилируйте все узлы знаний is_active и используйте оркестратор ИИ для динамического синтеза нового приглашения главной системы. Полезная нагрузка: {}.

Developer API

5. Внешний вид и конфигурация виджета

Настройте внешний интерфейс всплывающего окна помощника и окна чата.

Обновить внешний вид виджета

ИСПРАВЛЕНИЕ /api/assistants/:id/widget-config

json
{

  "primaryColor": "#000000",
  "position": "bottom-right",
  "language": "en",
  "welcomeMessage": "Hi! How can I help you today?",
  "title": "Acme Support",
  "theme": "light",
  "fontFamily": "default",
  "bubbleStyle": "circle",
  "bubbleText": "Chat with us",
  "headerSubtitle": "We typically reply instantly",
  "inputPlaceholder": "Type your message...",
  "privacyPolicyUrl": "https://acme.com/privacy",
  "voiceEnabled": true,
  "voiceName": "Fenrir",
  "welcomeMessageDelay": 2,
  "fileUploadEnabled": true,
  "dictationEnabled": true,
  "copilotEnabled": true,
  "welcomeSuggestions": ["Pricing plans", "Contact sales"],
  "pageVisibility": {
    "mode": "all",
    "paths": []
  }
}
ПараметрТипНеобходимыйОписание
primaryColorНитьНетШестнадцатеричный код цвета (например, "#000000").
позицияПеречислениеНет"внизу справа", "внизу слева", "вверху справа", "вверху слева"`.
языкНитьНетКод языка виджета (например, "en", "fr").
приветственное сообщениеНитьНетНачальное приветственное сообщение.
титулНитьНетЗаголовок в шапке виджета.
темаПеречислениеНет«светлый» или «темный».
fontFamilyПеречислениеНет"default" (Inter) или "inherit".
bubbleStyleПеречислениеНет"круг", "бар", "ящик", "фирменный-круг", "фирменный-бар", "фирменный-ящик".
bubbleTextНитьНетТекст, отображаемый рядом с пузырьком (для стилей панели/ящика).
headerSubtitleНитьНетПодзаголовок в шапке виджета.
inputPlaceholderНитьНетТекст-заполнитель для ввода сообщения.
privacyPolicyUrlНитьНетURL-адрес вашей политики конфиденциальности.
avatarUrlНитьНетURL-адрес пользовательского изображения аватара.
customLogoUrlНитьНетURL-адрес пользовательского изображения логотипа заголовка.
voiceEnabledлогическое значениеНетВключите голосовые вызовы.
имя голосаНитьНетГолосовая идентификация для аудиоответов. См. доступные голоса ниже.
welcomeMessageDelayЧислоНетЗадержка в секундах перед приветствием.
fileUploadEnabledлогическое значениеНетРазрешить пользователям загружать вложения.
диктовка включеналогическое значениеНетВключите голосовую диктовку (преобразование речи в текст).
copilotEnabledлогическое значениеНетВключите чипы предложений второго пилота.
добро пожаловатьПредложенияМножествоНетМассив строк для начальных фишек быстрого ответа.
pageVisibilityОбъектНетОпределяет, на каких страницах отображается виджет («режим», «пути»).
rateLimitEnabledлогическое значениеНетВключите ограничение скорости чата. По умолчанию правда.
rateLimitMaxMessagesЧислоНетМаксимальное количество сообщений в окне. По умолчанию 30.
rateLimitTimeWindowЧислоНетВременное окно в минутах. По умолчанию 60.
gdprDataMaskingEnabledлогическое значениеНетЗамаскируйте PII перед сохранением. По умолчанию ложь.

Доступные голосовые имена

  • Самки: Зефир, Аоеде, Коре, Леда, Каллирро, Деспина, Эринома, Лаомедея, Ахернар, Пульчеррима, Гакрукс, Альгениб, Сульфат.
  • Мужчины: Пак, Харон, Фенрир, Орус, Энцелад, Япет, Умбриэль, Альгиеба, Аутоное, Расалгети, Альнилам

Пользовательский логотип

POST /api/assistants/:id/widget-logo

Формат: multipart/form-data с полем file.

Developer API

6. Интеграция и развертывание

После того как ваш помощник настроен и обучен, у вас есть два основных способа его развертывания:

Вариант А: веб-встраивание (интерфейс)

Самый простой способ интегрировать помощника в стандартный сайт (WordPress, Shopify, React и т. д.). Код для внедрения является чисто детерминированным. Вам не нужна конечная точка для его получения. Просто добавьте это в <head> вашего сайта:

json
<script src="https://chirps.cc/widget.js" data-assistant-id="YOUR_ASSISTANT_ID_HERE"></script>

Вариант Б: Безголовая интеграция (бэкэнд/CRM/боты)

Если вы создаете собственный клиент (например, бот Discord, интеграцию Telegram или собственное приложение для iOS), вы НЕ будете использовать Web Embed. Вместо этого вы будете напрямую взаимодействовать с конечной точкой /api/chat.

POST /api/chat или /api/chat?stream=true

Примечание. Эта конечная точка является общедоступной и *не* требует заголовка API-ключа Authorization: Bearer. Аутентификация осуществляется неявно через assistantId.

json
{

  "assistantId": "123e4567-e89b-12d3-a456-426614174000",
  "sessionId": "unique-session-id-for-user",
  "conversationId": "optional-uuid",
  "message": "Hello, I need help with my billing."
}

*(Также поддерживается multipart/form-data с полем file для вложений, если fileUploadEnabled имеет значение true).*

ПараметрТипНеобходимыйОписание
assistantIdНитьДаUUID помощника.
sessionIdНитьДаВы создаете это. Уникальный идентификатор из вашей собственной системы для группировки истории чата (например, идентификатор пользователя Discord, идентификатор чата Telegram или случайный UUID).
сообщениеНитьДаТекстовое содержание сообщения (максимум 5000 символов).
conversationIdНитьНетUUID разговора (возвращается в первом запросе).
idНитьНетНеобязательный идентификатор сообщения на стороне клиента для предотвращения дедупликации.

Режим 1: стандартный ответ JSON (по умолчанию)

Отправляя запрос POST в /api/chat (без параметра потока), вы ожидаете полного ответа AI и получаете стандартный объект JSON.

json
{

  "message": "Here is the information you requested...",
  "conversationId": "uuid-of-conversation",
  "messageId": "uuid-of-message"
}

*(Если возвращается is_active_agent: true, управление чатом взял на себя человек, а message будет null.)*

Режим 2: потоковая передача событий, отправленных сервером (?stream=true)

Добавляя ?stream=true к URL-адресу, вы получаете поток событий, отправленных сервером (SSE) в реальном времени. Ваш код должен прослушивать следующие типы событий:

  • `event: token`: Содержит {"text": "chunk"}. Запускается для каждого фрагмента текста ответа ИИ.
  • `event: status`: Содержит {"text": "Поиск в базе знаний..."}. Представляет состояния выполнения серверного инструмента.
  • `event: Done`: Содержит {"messageId": "uuid", "conversationId": "uuid", "message": "full text"}. Запускается, когда генерация полностью завершена.
  • `event: error`: Содержит {"error": "Сообщение об ошибке"}. Вызывается при возникновении ограничений скорости или ошибок.

Конечные точки оперативного поглощения

GET /api/chat/sessions

Получить исторические сеансы.

POST /api/chat/toggle-agent

Приостановите ИИ для захвата человеком. Полезная нагрузка: { "sessionId": "..." }

POST /api/chat/agent-message

Отправьте человеческое сообщение. Полезная нагрузка: { "sessionId": "...", "message": "..." }

Developer API

7. Расширенные настройки помощника

ИСПРАВЛЕНИЕ /api/assistants/:id

Обновить базовую конфигурацию

Измените основные настройки, личность и границы очистки помощника.

json
{

  "business_name": "Acme Corp",
  "business_url": "acme.com",
  "business_description": "We sell anvils.",
  "system_prompt": "You are a helpful assistant.",
  "language": "en",
  "tone_personality": "Friendly",
  "support_email": "[email protected]",
  "additional_instructions": "Never mention the Roadrunner.",
  "is_multi_language": true,
  "is_dev_mode": false,
  "is_active": true,
  "max_pages": 15,
  "max_depth": 2,
  "widget_config_merge": {
    "rateLimitEnabled": true
  }
}

*Примечание: Все поля являются необязательными. Отправляйте только те поля, которые хотите обновить.*

Удалить помощника

DELETE /api/assistants/:id

Безвозвратно удаляет помощника и каскадно удаляет все узлы знаний, беседы и сообщения. Если помощник так и не был настроен полностью, будет возмещена ежемесячная квота создания.

Developer API

8. Телефония и голос

GET /api/phone-numbers — список доступных номеров.

POST /api/phone-numbers/:id/assign — укажите номер. Полезная нагрузка: {}

POST /api/assistants/:id/outbound – инициировать исходящий вызов. Полезная нагрузка: { "to": "+123...", "message": "..." }

Developer API

9. Извлечение потенциальных клиентов

GET /api/leads?assistantId=uuid&page=1&limit=50&status=new – получение структурированных потенциальных клиентов с разбивкой по страницам, извлеченных ИИ во время разговоров.

GET /api/leads?id=leadId — получение подробной информации об одном интересе, включая полную стенограмму разговора.

Developer API

10. Бронирование и календарь

GET /api/bookings?assistantId=uuid&start=ISO-8601&end=ISO-8601 – получение встреч в календаре, запланированных помощником, с возможностью фильтрации по дате.

GET /api/bookings?id=bookingId — получение сведений об одном бронировании, включая стенограмму разговора.

POST /api/bookings/cancel — Отменить активное бронирование. Полезная нагрузка: { "bookingId": "uuid" }

POST /api/bookings/reschedule — корректировка бронирования. Полезная нагрузка: { "bookingId": "uuid", "newTime": "ISO-8601" }

Developer API

11. Использование учетной записи и выставления счетов

GET /api/billing/usage

Получите информацию об использовании платежного цикла рабочей области, ограничениях плана подписки и общем количестве помощников. Примечание. При использовании ключа API запрос автоматически ограничивается рабочей областью ключа API; вам не нужно указывать «teamId».

Ответ («200 ОК»):

json
{

  "planName": "Pro",
  "periodStr": "2023-10-01",
  "assistantCount": 3,
  "usage": {
    "message_count": 1450,
    "harvest_count": 12,
    "recrawl_count": 5,
    "train_count": 2,
    "assistants_created_count": 1,
    "voice_minutes_used": 0,
    "sms_count": 0,
    "email_count": 0,
    "whatsapp_count": 0
  },
  "limits": {
    "messages": 5000,
    "assistants": 5,
    "training": 50,
    "recrawls": 20
  },
  "workspaceOwnerId": "uuid"
}
Готовы начать?

Запустите своего помощника
через 10 минут.

Зарегистрируйтесь, тренируйтесь на своем сайте, настраивайте оповещения и встраивайте их на свой сайт.