Перейти к содержимому страницы
Документация
Документация Make Agent Fast

Справочник API

Найдите каждый публичный ресурс, метод, требуемую область, правило пагинации и контракт мутации.

Кратко

Найдите каждый публичный ресурс, метод, требуемую область, правило пагинации и контракт мутации.

Путь запроса APIОграниченный ключ → версионированный ресурс → подписанный ответ
Приложение / SDKКлюч Bearermaf_live_…/api/v1/…РесурсJSON
v1123 операцииJSON

Канонический машиночитаемый контракт — 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-key

Content-Type обязателен для тел JSON POST и PATCH, включая {}. Idempotency-Key опционален, но настоятельно рекомендуется для каждого POST, PATCH и DELETE.

Аккаунт и сайты#

МетодПутьОбластьНазначение
GET/meaccount:readЧитать аккаунт, тариф, права и сводку кошелька
GET/sitessites:readПеречислить принадлежащие сайты
POST/sitessites:writeСоздать сайт и его агента по умолчанию
GET/sites/{site_id}sites:readПолучить один принадлежащий сайт
PATCH/sites/{site_id}sites:writeОбновить безопасные поля сайта
DELETE/sites/{site_id}sites:writeУдалить сайт и зависимые ресурсы
POST/sites/{site_id}/publishsites:writeОпубликовать или отменить публикацию с { "published": boolean }
GET/sites/{site_id}/agentagents:readЧитать настройки агента
PATCH/sites/{site_id}/agentagents:writeОбновить режим характера, назначение, отображаемое имя, инструкции, голос, языки, модель, внешний вид, оформление встраивания, значок, состояние встраивания или origin
GET/sites/{site_id}/billingaccount:readЧитать тариф, период, кошелёк, дополнения и ссылки оплаты в панели
PATCH/sites/{site_id}/workspaceteam:writeПереименовать компанию, которой принадлежит агент
PATCH/sites/{site_id}/retentionteam: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}/installagents:readЧитать цель установки, состояние встраивания, разрешённые origin и подтверждения установки
PATCH/sites/{site_id}/installagents:writeЗадать страницу, на которую должен быть установлен виджет
POST/sites/{site_id}/install/checkagents:writeПроверить, работает ли фрагмент встраивания на целевой странице

Знания и FAQ#

МетодПутьОбластьНазначение
GET/sites/{site_id}/knowledgeknowledge:readПеречислить источники знаний
POST/sites/{site_id}/knowledgeknowledge:writeПринять вставленный текст, обойти веб-сайт или импортировать источник YouTube, подкаста или ленты
PATCH/sites/{site_id}/knowledge/{source_id}knowledge:writeЗадать refresh_hours или approval_status для пакета покупателя
POST/sites/{site_id}/knowledge/{source_id}/recrawlknowledge:writeПоставить в очередь повторное чтение загруженного источника; возвращает 202
DELETE/sites/{site_id}/knowledge/{source_id}knowledge:writeУдалить один источник из будущего поиска
GET/sites/{site_id}/faqsknowledge:readПеречислить структурированные FAQ
POST/sites/{site_id}/faqsknowledge:writeСоздать { "question", "answer", "approved" }
POST/sites/{site_id}/faqs/generateknowledge:writeСоставить черновики FAQ из знаний агента
POST/sites/{site_id}/faqs/approve-allknowledge: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-sheetknowledge:read / knowledge:writeЧитать извлечённую справку о бизнесе или исправить факты, которые извлечение определило неверно
POST/sites/{site_id}/fact-sheet/reextractknowledge:writeПеречитать веб-сайт и заново собрать справку о бизнесе
POST/sites/{site_id}/qaknowledge:writeОпубликовать отобранные пары вопрос–ответ
POST/sites/{site_id}/answers/reviseknowledge:writeНаучить агента ответу, который он должен был дать
GET/sites/{site_id}/knowledge-connectionsknowledge:readПеречислить подключения знаний Notion, Drive и MCP
GET/sites/{site_id}/knowledge-connections/connect-linksknowledge:readПолучить URL панели, с которых начинается подключение Notion или Drive
PATCH / DELETE/sites/{site_id}/knowledge-connections/{connection_id}knowledge:writeЗадать частоту синхронизации, выбранные элементы или инструмент импорта; либо отключить подключение и удалить его данные
GET/sites/{site_id}/knowledge-connections/{connection_id}/itemsknowledge:readПеречислить страницы, базы данных или файлы, которые может импортировать подключение
POST/sites/{site_id}/knowledge-connections/{connection_id}/syncknowledge: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}/conversationsconversations:readПеречислить ветки диалогов
GET/sites/{site_id}/conversations/{conversation_id}conversations:readПолучить ветку и пагинированные сообщения
POST/sites/{site_id}/conversations/{conversation_id}/replyconversations:writeОтветить посетителю от имени бизнеса
POST/sites/{site_id}/conversations/{conversation_id}/pauseconversations:writeПриостановить агента в этом диалоге и взять его на себя
POST/sites/{site_id}/conversations/{conversation_id}/resumeconversations:writeВернуть диалог агенту
GET/sites/{site_id}/leadsleads:readПеречислить собранные заявки
POST/sites/{site_id}/leadsleads: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}/acceptleads:writeПринять заявку в воронку возможностей
POST/sites/{site_id}/leads/{lead_id}/followupleads:writeОтправить заявке сообщение для повторного контакта
POST/sites/{site_id}/leads/{lead_id}/followup/draftleads:writeЗаново составить сообщение для повторного контакта без отправки
GET/sites/{site_id}/analyticsanalytics:readПеречислить события аналитики
GET/sites/{site_id}/reportanalytics:readЧитать сводный отчёт аналитики
POST/sites/{site_id}/report/unanswered-faqknowledge:writeОтветить на вопрос без ответа новым FAQ
GET/sites/{site_id}/usageusage:readПеречислить учитываемые события использования

Эти коллекции событий и активностей принимают limit и cursor. Возвращённые записи могут содержать персональные данные; храните и экспортируйте их согласно вашим обязательствам приватности.

Ответы владельца поддерживаются: reply, pause и resume берут на себя веб-ветку или чат Telegram, WhatsApp, Messenger или Instagram так же, как это делает панель. Отправка сообщений от имени посетителя — не операция публичного API. Мутация заявок поддерживается; не устанавливайте consent_status: granted, если у вашей системы нет защитимой записи согласия. Неизвестное согласие исключается из рассылок.

Воронка возможностей и результаты CRM#

МетодПутьОбластьНазначение
GET / POST/sites/{site_id}/pipeline/stagespipeline:read / pipeline:writeПеречислить или настроить стадии
GET / POST/sites/{site_id}/pipeline/accountspipeline:read / pipeline:writeПеречислить или создать бизнес-аккаунты
GET/sites/{site_id}/pipeline/accounts/{account_id}pipeline:readПолучить бизнес-аккаунт
GET / POST/sites/{site_id}/pipeline/opportunitiespipeline:read / pipeline:writeПеречислить или создать возможности
GET / PATCH/sites/{site_id}/pipeline/opportunities/{opportunity_id}pipeline:read / pipeline:writeЧитать активность или обновить назначение, ценность, стадию, следующее действие и ответ человека
POST/sites/{site_id}/pipeline/outcomespipeline:writeИдемпотентно импортировать результат CRM выиграно или проиграно
GET/sites/{site_id}/pipeline/sync-recordspipeline:readПеречислить статус синхронизации, попытки и ошибки
POST/sites/{site_id}/pipeline/sync-records/{sync_record_id}/retrypipeline:writeПовторить неудачный результат из его хранимой полезной нагрузки
GET / PATCH/sites/{site_id}/pipeline-workflowpipeline:read / pipeline:writeЧитать или обновить политику ответов отдела продаж
GET / POST/sites/{site_id}/pilotspipeline: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, /deletepipeline:writeПровести пилот через настройку, измерение, проверку, решение и закрытие или удалить его вместе с доказательствами (семь операций)
POST/sites/{site_id}/pilots/{pilot_id}/outcomes, /bookingspipeline:writeЗаписать результат заявки или итог бронирования (две операции)
POST/sites/{site_id}/pilots/{pilot_id}/report/approve, /report/revokepipeline:writeУтвердить или отозвать отчёт пилота для общего доступа (две операции)
GET / POST/sites/{site_id}/buyer-packspipeline:read / pipeline:writeПеречислить пакеты покупателя или создать пакет из утверждённых источников
PATCH/sites/{site_id}/buyer-packs/{pack_id}pipeline:writeЗаменить заголовок, аудиторию, сводку, источники и разделы пакета
POST/sites/{site_id}/buyer-packs/{pack_id}/approve, /revokepipeline:writeВключить или отключить ссылку общего доступа пакета (две операции)

Предоставленные provider CRM, внешний ID и ключ идемпотентности остаются в аудиторском следе. Повтор захватывает только неудачную запись и никогда не превращает внешнюю запись в процессе в ложный успех.

Коннекторы#

МетодПутьОбластьНазначение
GET/sites/{site_id}/connectorsconnectors:readПеречислить состояние коннекторов без секретов
POST/sites/{site_id}/connectorsconnectors: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}/conciergeconnectors:writeПопросить платформу подключить канал сообщений за вас
GET/sites/{site_id}/domainsdomains:readУдалено — возвращает 409. Собственные домены не предлагаются
POST/sites/{site_id}/domainsdomains:writeУдалено — возвращает 409
PATCH/sites/{site_id}/domains/{domain_id}domains:writeУдалено — возвращает 409
POST/sites/{site_id}/domains/{domain_id}/verifydomains:writeУдалено — возвращает 409
DELETE/sites/{site_id}/domains/{domain_id}domains:writeУдалено — возвращает 409

Создание коннектора использует тело с дискриминацией по каналу. Поля учётных данных различаются для telegram, whatsapp, messenger, instagram, discord и kakao; используйте соответствующий гайд коннектора перед отправкой секретов.

Рассылки, уведомления и монетизация#

МетодПутьОбластьНазначение
GET/sites/{site_id}/broadcastsbroadcasts:readПеречислить рассылки
POST/sites/{site_id}/broadcastsbroadcasts:writeСоздать черновик рассылки Kakao
POST/sites/{site_id}/broadcasts/{broadcast_id}/sendbroadcasts:writeПоставить в очередь существующий черновик; возвращает 202
GET/sites/{site_id}/notificationsnotifications:readПеречислить уведомления владельца
POST/sites/{site_id}/notifications/read-allnotifications:writeОтметить все уведомления владельца для этого агента прочитанными
PATCH/sites/{site_id}/notifications/{notification_id}notifications:writeОтметить прочитанным или непрочитанным с { "read": boolean }
GET/sites/{site_id}/alertsnotifications:readЧитать состояние канала оповещений владельца и его ссылку в панели
GET/sites/{site_id}/monetization/productsmonetization:readПеречислить продукты сайта
POST/sites/{site_id}/monetization/productsmonetization: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}/actionsagents:read / agents:writeЧитать или настроить процедуры, публичный вебхук, ссылку бронирования и обращения в поддержку
GET/sites/{site_id}/ticketstickets: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}/messagestickets:writeДобавить внутреннюю заметку или задать internal: false, чтобы ответить клиенту по email
GET/sites/{site_id}/teamteam:readЧитать участников, приглашения и разрешённые события аудита
POST/sites/{site_id}/team/invitationsteam: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-endpointswebhooks:readПеречислить состояние конечных точек без секретов подписи
POST/webhook-endpointswebhooks:writeЗарегистрировать публичный HTTPS URL и один раз раскрыть его секрет подписи
DELETE/webhook-endpoints/{endpoint_id}webhooks:writeУдалить конечную точку и остановить будущую доставку
GET/setup/toolsAny 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-ключи используют заданный срок действия.