Справочник API
Найдите каждый публичный ресурс, метод, требуемую область, правило пагинации и контракт мутации.
Найдите каждый публичный ресурс, метод, требуемую область, правило пагинации и контракт мутации.
Канонический машиночитаемый контракт — OpenAPI JSON. Эта страница — человекочитаемый индекс операций и объясняет правила, общие для каждой конечной точки.
Базовый URL и версия#
https://makeagent.fast/api/v1Мажорная версия — часть пути. Добавочные поля могут появляться без смены мажорной версии, поэтому игнорируйте неизвестные поля ответа. Все запросы управления используют HTTPS и ключ API bearer или токен доступа OAuth.
Общие заголовки#
Authorization: Bearer maf_live_...
Accept: application/json
Content-Type: application/json
Idempotency-Key: your-stable-operation-keyContent-Type обязателен для тел JSON POST и PATCH, включая {}. Idempotency-Key опционален, но настоятельно рекомендуется для каждого POST, PATCH и DELETE.
Аккаунт и сайты#
| Метод | Путь | Область | Назначение |
|---|---|---|---|
GET | /me | account:read | Читать аккаунт, тариф, права и сводку кошелька |
GET | /sites | sites:read | Перечислить принадлежащие сайты |
POST | /sites | sites:write | Создать сайт и его агента по умолчанию |
GET | /sites/{site_id} | sites:read | Получить один принадлежащий сайт |
PATCH | /sites/{site_id} | sites:write | Обновить безопасные поля сайта |
DELETE | /sites/{site_id} | sites:write | Удалить сайт и зависимые ресурсы |
POST | /sites/{site_id}/publish | sites:write | Опубликовать или отменить публикацию с { "published": boolean } |
GET | /sites/{site_id}/agent | agents:read | Читать настройки агента |
PATCH | /sites/{site_id}/agent | agents:write | Обновить режим характера, назначение, отображаемое имя, инструкции, голос, языки, модель, внешний вид, оформление встраивания, значок, состояние встраивания или origin |
GET | /sites/{site_id}/billing | account:read | Читать тариф, период, кошелёк, дополнения и ссылки оплаты в панели |
PATCH | /sites/{site_id}/workspace | team:write | Переименовать компанию, которой принадлежит агент |
PATCH | /sites/{site_id}/retention | team:write | Задать, как долго хранятся диалоги |
Создание сайта требует title и content.headline. Опциональные поля включают slug, type, template, дополнительный контент, persona_mode и от одного до четырёх языков из en, ko, uz и ru.
PATCH /agent пропускает model, appearance, embed_chrome и badge_hidden через те же проверки тарифа, что и панель; badge_hidden: true требует подходящего тарифа или дополнения для значка.
Установка и виджет сайта#
| Метод | Путь | Область | Назначение |
|---|---|---|---|
GET | /sites/{site_id}/install | agents:read | Читать цель установки, состояние встраивания, разрешённые origin и подтверждения установки |
PATCH | /sites/{site_id}/install | agents:write | Задать страницу, на которую должен быть установлен виджет |
POST | /sites/{site_id}/install/check | agents:write | Проверить, работает ли фрагмент встраивания на целевой странице |
Знания и FAQ#
| Метод | Путь | Область | Назначение |
|---|---|---|---|
GET | /sites/{site_id}/knowledge | knowledge:read | Перечислить источники знаний |
POST | /sites/{site_id}/knowledge | knowledge:write | Принять вставленный текст, обойти веб-сайт или импортировать источник YouTube, подкаста или ленты |
PATCH | /sites/{site_id}/knowledge/{source_id} | knowledge:write | Задать refresh_hours или approval_status для пакета покупателя |
POST | /sites/{site_id}/knowledge/{source_id}/recrawl | knowledge:write | Поставить в очередь повторное чтение загруженного источника; возвращает 202 |
DELETE | /sites/{site_id}/knowledge/{source_id} | knowledge:write | Удалить один источник из будущего поиска |
GET | /sites/{site_id}/faqs | knowledge:read | Перечислить структурированные FAQ |
POST | /sites/{site_id}/faqs | knowledge:write | Создать { "question", "answer", "approved" } |
POST | /sites/{site_id}/faqs/generate | knowledge:write | Составить черновики FAQ из знаний агента |
POST | /sites/{site_id}/faqs/approve-all | knowledge:write | Утвердить и опубликовать все черновики FAQ |
PATCH | /sites/{site_id}/faqs/{faq_id} | knowledge:write | Обновить вопрос, ответ или состояние утверждения |
DELETE | /sites/{site_id}/faqs/{faq_id} | knowledge:write | Удалить FAQ |
GET / PATCH | /sites/{site_id}/fact-sheet | knowledge:read / knowledge:write | Читать извлечённую справку о бизнесе или исправить факты, которые извлечение определило неверно |
POST | /sites/{site_id}/fact-sheet/reextract | knowledge:write | Перечитать веб-сайт и заново собрать справку о бизнесе |
POST | /sites/{site_id}/qa | knowledge:write | Опубликовать отобранные пары вопрос–ответ |
POST | /sites/{site_id}/answers/revise | knowledge:write | Научить агента ответу, который он должен был дать |
GET | /sites/{site_id}/knowledge-connections | knowledge:read | Перечислить подключения знаний Notion, Drive и MCP |
GET | /sites/{site_id}/knowledge-connections/connect-links | knowledge:read | Получить URL панели, с которых начинается подключение Notion или Drive |
PATCH / DELETE | /sites/{site_id}/knowledge-connections/{connection_id} | knowledge:write | Задать частоту синхронизации, выбранные элементы или инструмент импорта; либо отключить подключение и удалить его данные |
GET | /sites/{site_id}/knowledge-connections/{connection_id}/items | knowledge:read | Перечислить страницы, базы данных или файлы, которые может импортировать подключение |
POST | /sites/{site_id}/knowledge-connections/{connection_id}/sync | knowledge:write | Поставить в очередь синхронизацию подключения знаний |
POST /knowledge принимает три вида тела: { "name", "text" } с 5–200 000 символов; { "url", "max_pages", "refresh_hours" } для обхода веб-сайта (max_pages 1–40, refresh_hours 1–8 760 или null); и { "kind": "youtube" | "podcast" | "feed", "url", "refresh_hours" }. Источники YouTube, подкастов и лент требуют Operate или Scale; на Launch они возвращают 409 conflict. Загрузка файлов остаётся процессом панели.
Диалоги, заявки, аналитика и использование#
| Метод | Путь | Область | Назначение |
|---|---|---|---|
GET | /sites/{site_id}/conversations | conversations:read | Перечислить ветки диалогов |
GET | /sites/{site_id}/conversations/{conversation_id} | conversations:read | Получить ветку и пагинированные сообщения |
POST | /sites/{site_id}/conversations/{conversation_id}/reply | conversations:write | Ответить посетителю от имени бизнеса |
POST | /sites/{site_id}/conversations/{conversation_id}/pause | conversations:write | Приостановить агента в этом диалоге и взять его на себя |
POST | /sites/{site_id}/conversations/{conversation_id}/resume | conversations:write | Вернуть диалог агенту |
GET | /sites/{site_id}/leads | leads:read | Перечислить собранные заявки |
POST | /sites/{site_id}/leads | leads:write | Создать каноническую заявку с явным согласием и предпочтениями контакта |
GET | /sites/{site_id}/leads/{lead_id} | leads:read | Получить одну заявку |
PATCH | /sites/{site_id}/leads/{lead_id} | leads:write | Обновить, квалифицировать или изменить политику контакта заявки |
POST | /sites/{site_id}/leads/{lead_id}/accept | leads:write | Принять заявку в воронку возможностей |
POST | /sites/{site_id}/leads/{lead_id}/followup | leads:write | Отправить заявке сообщение для повторного контакта |
POST | /sites/{site_id}/leads/{lead_id}/followup/draft | leads:write | Заново составить сообщение для повторного контакта без отправки |
GET | /sites/{site_id}/analytics | analytics:read | Перечислить события аналитики |
GET | /sites/{site_id}/report | analytics:read | Читать сводный отчёт аналитики |
POST | /sites/{site_id}/report/unanswered-faq | knowledge:write | Ответить на вопрос без ответа новым FAQ |
GET | /sites/{site_id}/usage | usage:read | Перечислить учитываемые события использования |
Эти коллекции событий и активностей принимают limit и cursor. Возвращённые записи могут содержать персональные данные; храните и экспортируйте их согласно вашим обязательствам приватности.
Ответы владельца поддерживаются: reply, pause и resume берут на себя веб-ветку
или чат Telegram, WhatsApp, Messenger или Instagram так же, как это делает панель.
Отправка сообщений от имени посетителя — не операция публичного API. Мутация заявок поддерживается; не устанавливайте
consent_status: granted, если у вашей системы нет защитимой записи согласия.
Неизвестное согласие исключается из рассылок.
Воронка возможностей и результаты CRM#
| Метод | Путь | Область | Назначение |
|---|---|---|---|
GET / POST | /sites/{site_id}/pipeline/stages | pipeline:read / pipeline:write | Перечислить или настроить стадии |
GET / POST | /sites/{site_id}/pipeline/accounts | pipeline:read / pipeline:write | Перечислить или создать бизнес-аккаунты |
GET | /sites/{site_id}/pipeline/accounts/{account_id} | pipeline:read | Получить бизнес-аккаунт |
GET / POST | /sites/{site_id}/pipeline/opportunities | pipeline:read / pipeline:write | Перечислить или создать возможности |
GET / PATCH | /sites/{site_id}/pipeline/opportunities/{opportunity_id} | pipeline:read / pipeline:write | Читать активность или обновить назначение, ценность, стадию, следующее действие и ответ человека |
POST | /sites/{site_id}/pipeline/outcomes | pipeline:write | Идемпотентно импортировать результат CRM выиграно или проиграно |
GET | /sites/{site_id}/pipeline/sync-records | pipeline:read | Перечислить статус синхронизации, попытки и ошибки |
POST | /sites/{site_id}/pipeline/sync-records/{sync_record_id}/retry | pipeline:write | Повторить неудачный результат из его хранимой полезной нагрузки |
GET / PATCH | /sites/{site_id}/pipeline-workflow | pipeline:read / pipeline:write | Читать или обновить политику ответов отдела продаж |
GET / POST | /sites/{site_id}/pilots | pipeline:read / pipeline:write | Перечислить или запустить управляемые пилоты |
GET | /sites/{site_id}/pilots/{pilot_id} | pipeline:read | Читать пилот, его этап, счётчики и рабочий список |
POST | /sites/{site_id}/pilots/{pilot_id}/setup, /start, /stop, /review, /decision, /complete, /delete | pipeline:write | Провести пилот через настройку, измерение, проверку, решение и закрытие или удалить его вместе с доказательствами (семь операций) |
POST | /sites/{site_id}/pilots/{pilot_id}/outcomes, /bookings | pipeline:write | Записать результат заявки или итог бронирования (две операции) |
POST | /sites/{site_id}/pilots/{pilot_id}/report/approve, /report/revoke | pipeline:write | Утвердить или отозвать отчёт пилота для общего доступа (две операции) |
GET / POST | /sites/{site_id}/buyer-packs | pipeline:read / pipeline:write | Перечислить пакеты покупателя или создать пакет из утверждённых источников |
PATCH | /sites/{site_id}/buyer-packs/{pack_id} | pipeline:write | Заменить заголовок, аудиторию, сводку, источники и разделы пакета |
POST | /sites/{site_id}/buyer-packs/{pack_id}/approve, /revoke | pipeline:write | Включить или отключить ссылку общего доступа пакета (две операции) |
Предоставленные provider CRM, внешний ID и ключ идемпотентности остаются в
аудиторском следе. Повтор захватывает только неудачную запись и никогда не
превращает внешнюю запись в процессе в ложный успех.
Коннекторы#
| Метод | Путь | Область | Назначение |
|---|---|---|---|
GET | /sites/{site_id}/connectors | connectors:read | Перечислить состояние коннекторов без секретов |
POST | /sites/{site_id}/connectors | connectors:write | Подключить канал: проверить учётные данные вживую, обеспечить его вебхук и вернуть чек-лист настройки |
PATCH | /sites/{site_id}/connectors/{connector_id} | connectors:write | Установить status или reply_with_voice |
DELETE | /sites/{site_id}/connectors/{connector_id} | connectors:write | Деобеспечить и удалить коннектор |
POST | /sites/{site_id}/concierge | connectors:write | Попросить платформу подключить канал сообщений за вас |
GET | /sites/{site_id}/domains | domains:read | Удалено — возвращает 409. Собственные домены не предлагаются |
POST | /sites/{site_id}/domains | domains:write | Удалено — возвращает 409 |
PATCH | /sites/{site_id}/domains/{domain_id} | domains:write | Удалено — возвращает 409 |
POST | /sites/{site_id}/domains/{domain_id}/verify | domains:write | Удалено — возвращает 409 |
DELETE | /sites/{site_id}/domains/{domain_id} | domains:write | Удалено — возвращает 409 |
Создание коннектора использует тело с дискриминацией по каналу. Поля учётных данных различаются для telegram, whatsapp, messenger, instagram, discord и kakao; используйте соответствующий гайд коннектора перед отправкой секретов.
Рассылки, уведомления и монетизация#
| Метод | Путь | Область | Назначение |
|---|---|---|---|
GET | /sites/{site_id}/broadcasts | broadcasts:read | Перечислить рассылки |
POST | /sites/{site_id}/broadcasts | broadcasts:write | Создать черновик рассылки Kakao |
POST | /sites/{site_id}/broadcasts/{broadcast_id}/send | broadcasts:write | Поставить в очередь существующий черновик; возвращает 202 |
GET | /sites/{site_id}/notifications | notifications:read | Перечислить уведомления владельца |
POST | /sites/{site_id}/notifications/read-all | notifications:write | Отметить все уведомления владельца для этого агента прочитанными |
PATCH | /sites/{site_id}/notifications/{notification_id} | notifications:write | Отметить прочитанным или непрочитанным с { "read": boolean } |
GET | /sites/{site_id}/alerts | notifications:read | Читать состояние канала оповещений владельца и его ссылку в панели |
GET | /sites/{site_id}/monetization/products | monetization:read | Перечислить продукты сайта |
POST | /sites/{site_id}/monetization/products | monetization:write | Создать продукт access, consult, tip или digital |
PATCH | /sites/{site_id}/monetization/products/{product_id} | monetization:write | Обновить поля продукта и состояние активности |
DELETE | /sites/{site_id}/monetization/products/{product_id} | monetization:write | Удалить продукт |
Создание рассылки сейчас принимает только канал kakao. Постановка в очередь не работает с 409 conflict, когда нет достижимых получателей или рассылка больше не черновик.
Действия, обращения и команда#
| Метод | Путь | Область | Назначение |
|---|---|---|---|
GET / PATCH | /sites/{site_id}/actions | agents:read / agents:write | Читать или настроить процедуры, публичный вебхук, ссылку бронирования и обращения в поддержку |
GET | /sites/{site_id}/tickets | tickets:read | Перечислить обращения в поддержку |
GET | /sites/{site_id}/tickets/{ticket_id} | tickets:read | Читать обращение и его сообщения |
PATCH | /sites/{site_id}/tickets/{ticket_id} | tickets:write | Задать статус, приоритет и необязательного исполнителя |
POST | /sites/{site_id}/tickets/{ticket_id}/messages | tickets:write | Добавить внутреннюю заметку или задать internal: false, чтобы ответить клиенту по email |
GET | /sites/{site_id}/team | team:read | Читать участников, приглашения и разрешённые события аудита |
POST | /sites/{site_id}/team/invitations | team:write | Создать ссылку-приглашение без отправки email |
DELETE | /sites/{site_id}/team/invitations/{invitation_id} | team:write | Отозвать ожидающее приглашение |
PATCH / DELETE | /sites/{site_id}/team/members/{membership_id} | team:write | Изменить роль участника, не являющегося владельцем, или удалить участника |
Вебхуки разработчика и инструменты настройки#
| Метод | Путь | Область | Назначение |
|---|---|---|---|
GET | /webhook-endpoints | webhooks:read | Перечислить состояние конечных точек без секретов подписи |
POST | /webhook-endpoints | webhooks:write | Зарегистрировать публичный HTTPS URL и один раз раскрыть его секрет подписи |
DELETE | /webhook-endpoints/{endpoint_id} | webhooks:write | Удалить конечную точку и остановить будущую доставку |
GET | /setup/tools | Any valid credential | Найти инструменты настройки для интеграций API, MCP и GitHub |
POST | /setup/tools/{tool_name} | Tool-specific | Запустить инструмент настройки; запросы к платформе требуют областей своих конечных точек, проверка GitHub использует integrations:read, а подготовка PR — integrations:write |
URL вебхуков должны использовать HTTPS, не могут включать учётные данные или пользовательский порт и должны разрешаться только в публичные IP-адреса.
Пагинация#
Пагинированные коллекции принимают limit от 1 до 100; по умолчанию 50. Используйте возвращённый непрозрачный next_cursor только с той же коллекцией и фильтрами.
{
"data": [],
"has_more": false,
"next_cursor": null
}Некоторые малые коллекции конфигурации возвращают ту же оболочку с has_more: false и не нуждаются в курсоре.
Идемпотентность#
Ключ идемпотентности должен содержать 8–200 символов из букв, цифр, ., _, : и -. Результаты хранятся 24 часа и привязаны к владельцу учётных данных.
- Тот же ключ и тот же метод, путь, запрос и тело: возвращает сохранённый ответ с
x-idempotent-replayed: true. - Тот же ключ с другим вводом: возвращает
409 conflict. - Тот же ключ, пока первый запрос обрабатывается: возвращает
409 conflictиRetry-After: 2.
Сохраняйте ключ перед отправкой мутации и используйте повторно только для повторов этой логической операции.
Ответы и ошибки#
Успешные ответы оборачивают свой ресурс в data. Операции создания обычно возвращают 201; поставленные в очередь отправки рассылок возвращают 202; другие успешные операции возвращают 200. Каждый ответ включает x-request-id и использует Cache-Control: no-store для данных API.
См. Области и ошибки для полной таблицы кодов ошибок и Рецепты API для копируемых процессов.
Клиенты MCP#
Подключите клиент Streamable HTTP MCP к https://makeagent.fast/api/mcp. Клиенты с поддержкой обнаружения OAuth открывают браузер для входа и подтверждения доступа. Перед подтверждением проверьте идентификатор клиента, компанию и запрошенные права. При первом подтверждении запрашиваются права, которые используют инструменты (sites:read, sites:write, agents:write, analytics:read, conversations:read, conversations:write, leads:read, leads:write, knowledge:write); если какого-то из них нет, клиент запросит разрешение повторно. Требуется активный тариф.
Для ручной настройки создайте API-ключ с нужными правами в настройках разработчика и передавайте его в заголовке Authorization: Bearer .... Не сохраняйте ключи в репозитории или браузерном коде. API-ключи и разрешения OAuth можно отозвать в настройках разработчика.
Инструменты чтения: list_agents, get_agent, get_report, list_unanswered_questions, list_conversations, get_conversation, list_leads. Инструменты записи: create_agent_from_website, create_agent_from_notes, test_agent, add_knowledge, save_answer, reply_to_customer, update_lead, set_website_widget. Каждый инструмент агента принимает agent_id из list_agents. test_agent расходует кредиты как обычный ответ; reply_to_customer отправляет сообщение клиенту и приостанавливает агента в этом диалоге; set_website_widget включает или выключает чат-виджет на сайте; мессенджеры настраиваются в панели управления. Клиенты с включёнными MCP Apps (по умолчанию — аутентифицированное подключение Claude) также получают list_pending_approvals, list_action_runs и decide_approval, который одобряет или отклоняет подтверждённое клиентом изменение; другие клиенты видят только 15 перечисленных выше инструментов. Для инструментов настройки и интеграции с GitHub используйте встроенного помощника по настройке или /api/v1/setup/tools.
Поддерживаются версии протокола 2026-07-28, 2025-11-25 и 2025-06-18. Ответы имеют формат JSON; устаревший транспорт SSE и серверные сессии не предоставляются. Токены MCP OAuth действуют только для /api/mcp, а не для прямых запросов REST. Токены доступа действуют один час; токены обновления заменяются при использовании и истекают через 90 дней. API-ключи используют заданный срок действия.