Начало работы
Каждый платный тариф включает полный доступ к REST API. Создайте ключ в своём аккаунте в разделе Аккаунт → API-ключи и передавайте его в каждом запросе:
curl -H "X-Api-Key: YOUR_KEY" https://mailflow.top/api/index.php/lists
Базовый URL: https://mailflow.top/api/index.php · Ответы приходят в формате JSON с полем status, равным success или error. API недоступен на бесплатном тарифе.
Основные ресурсы
Платформа совместима с MailWizz, поэтому полный базовый API — списки, подписчики, сегменты, пользовательские поля, кампании, отслеживание, шаблоны, транзакционные письма, возвраты, отписки — описан в интерактивной документации (OpenAPI) вместе со всеми эндпоинтами MailFlow с этой страницы по адресу:
→ Интерактивный справочник API (OpenAPI)
Существующие SDK для MailWizz (например, официальный PHP SDK) работают сразу — просто укажите в них базовый URL, приведённый выше.
AI-эндпоинты
AI-функции — полноправная часть API. Тот же ключ, та же аутентификация, те же лимиты тарифа и учёт кредитов, что и в веб-приложении.
GET /ai/credits
Ваш счётчик AI-кредитов за текущий месяц. Кредиты начисляются на расчётный месяц, неиспользованные кредиты не переносятся.
{"status":"success","data":{"unlimited":false,"limit":750,"used":112,"remaining":638}}
GET /ai/replies
Классификация Smart Replies для ваших кампаний: передавайте в CRM, кто заинтересован, кто задал вопрос, кто пожаловался. Фильтры: category (interested, question, complaint, unsubscribe_request, auto_reply, out_of_office, bounce, other), campaign_uid, since (YYYY-MM-DD), page, per_page (не более 50).
curl -H "X-Api-Key: YOUR_KEY" \
"https://mailflow.top/api/index.php/ai/replies?category=interested&since=2026-08-01"
{"status":"success","data":{"count":42,"current_page":1,"per_page":20,"total_pages":3,
"records":[{"from_email":"[email protected]","subject":"RE: your offer",
"category":"interested","confidence":98,"engine":"embeddings",
"summary":"...","suggested_reply":"...","date_added":"2026-08-24 18:21:19",
"campaign_uid":"py794hjqk8a8d"}]}}
GET /ai/tiers
AI-уровни вовлечённости (vip, engaged, passive, at_risk, dormant) для каждого списка — та же оценка, на которой работают автопилот и возврат подписчиков.
{"status":"success","data":{"records":[
{"list_uid":"qk661oq7nl8c1","name":"Main list","tiers":{"engaged":1200,"passive":3400,"dormant":900}}]}}
POST /ai/subject-lines
Генерация тем писем на любом языке. Тело запроса: topic (обязательно), count (1–5, по умолчанию 3), language (необязательно). Расходует AI-кредиты так же, как веб-редактор.
curl -X POST -H "X-Api-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"topic":"Summer sale for B2B customers","count":3,"language":"Greek"}' \
https://mailflow.top/api/index.php/ai/subject-lines
{"status":"success","data":{"subjects":["...","...","..."],"credits_remaining":636}}
GET /ai/flows · POST /ai/flows/author · POST /ai/flows/<uid>/enroll · POST /ai/flows/<uid>/status
AI-конструктор сценариев через API: получайте список своих сценариев с живыми счётчиками; поручите AI создать полный сценарий по цели, сформулированной простым языком ({"goal":"...","list_uid":"..."} — возвращает черновик, который вы активируете через {"status":"active"}); добавляйте подписчика в сценарий ({"email":"..."}).
curl -X POST -H "X-Api-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"goal":"When someone replies interested, notify me, wait 2 days, then send a case study"}' \
https://mailflow.top/api/index.php/ai/flows/author
Создайте собственное приложение на базе MailFlow
Всё, что вы делаете в веб-приложении, можно сделать через API, поэтому MailFlow можно управлять из вашего собственного ПО. Типичный сценарий:
- Создайте список и добавьте контакты:
POST /lists,POST /lists/<list_uid>/subscribers/bulk. - Найдите новые контакты с помощью DataStack:
POST /datastack/import. - Создайте кампанию самостоятельно (
POST /campaigns) или поручите её написание AI:POST /ai/campaigns. - Проверьте черновик AI и запланируйте отправку:
GET /ai/campaigns/<run_id>,POST /ai/campaigns/<run_id>/approve. - Получите результаты:
GET /analytics/campaigns,GET /campaigns/<campaign_uid>/clicks.
Длительные задачи (написание текстов AI, чтение сайтов, импорт из DataStack) выполняются в фоне: запрос возвращает 202 с job_id, а GET /ai/jobs/<job_id> сообщает, когда задача завершена.
Аналитика
Те же цифры, что в панели управления и отчётах по кампаниям. Даты указываются в UTC; по умолчанию from и to (YYYY-MM-DD) охватывают последние 30 дней. Итоги по аккаунту обновляются каждые несколько минут.
GET /analytics/overview— списки, подписчики, кампании и результаты отправки за период: отправлено, доставлено, открытия, клики, возвраты, жалобы, отписки и их процентные показатели.GET /analytics/timeline— те же результаты по дням (или по часам сinterval=hour), а также новые подписчики.GET /analytics/campaigns— по одной строке на кампанию с её результатами; фильтр —status.GET /campaigns/<campaign_uid>/opensи/clicks— кто открыл письмо или кликнул, когда, откуда и с какого устройства (unique=1— только первые события).GET /campaigns/<campaign_uid>/links,/locations,/devices,/timeline,/abuse-reports— клики по каждой ссылке, результаты по странам и городам, по типам устройств и по часам, а также жалобы на злоупотребления.GET /campaigns/<campaign_uid>/stats,/bounces,/unsubscribes,/complaints,/delivery-logs— основные отчёты по кампании.GET /lists/<list_uid>/stats— подписчики по статусам и источникам, ежедневный прирост и кампании, отправленные по списку.
curl -H "X-Api-Key: YOUR_KEY" \
"https://mailflow.top/api/index.php/analytics/overview?from=2026-09-01&to=2026-09-30"
{"status":"success","data":{"period":{"from":"2026-09-01","to":"2026-09-30","timezone":"UTC"},
"lists":9,"subscribers":{"total":52040,"confirmed":50102,"unsubscribed":311},
"campaigns":{"total":24,"sent":20,"draft":4},
"activity":{"sent":48210,"delivered":47650,"unique_opens":14230,"unique_clicks":2210,
"bounces":402,"complaints":3,"unsubscribes":95,"open_rate":29.86,"click_rate":4.64}}}
Аккаунт и настройка отправки
GET /account·PUT /account— ваш профиль, тариф, лимит отправки и другие ограничения; изменение имени, телефона или часового пояса.GET|POST /campaign-groups·GET|PUT|DELETE /campaign-groups/<group_uid>— группы кампаний.GET|POST /suppression-lists·GET|PUT|DELETE /suppression-lists/<list_uid>·GET|POST|DELETE /suppression-lists/<list_uid>/emails— списки исключений (до 10 000 адресов за один запрос).GET|POST /blacklist·DELETE /blacklist/<email_uid>·GET /blacklist/check?email=— ваш чёрный список и проверка, заблокирован ли адрес где-либо.GET|POST /sending-domains·GET|DELETE /sending-domains/<id>·POST /sending-domains/<id>/verify— домены отправки с записями DKIM, SPF и DMARC, которые нужно опубликовать.GET|POST /tracking-domains·GET|DELETE /tracking-domains/<id>·POST /tracking-domains/<id>/verify— ваши собственные домены для отслеживания ссылок.GET /delivery-servers·GET /countries— серверы, через которые вы можете отправлять письма, и страны с их зонами.
AI-кампании
Поручите AI писать кампании за вас — с вашей проверкой или без неё. AI использует профиль вашего бизнеса, выбирает аудиторию и время отправки, проверяет письмо на прохождение спам-фильтров и пишет его на языке каждого подписчика.
POST /ai/campaigns— укажите AI, что отправить:goal(обязательно),list_uid(список,autoилиprospects),audience,business,template_uid,follow_up,auto_send.POST /ai/campaigns/prepare— AI решает, что отправить дальше (не более 3 в день); необязательный параметрhint.GET /ai/campaigns·GET /ai/campaigns/<run_id>— AI-кампании с темами писем, аудиторией, предложенным временем и проверкой на спам (html=1добавляет само письмо).POST /ai/campaigns/<run_id>/approve— запланировать отправку:when=proposed,nowилиcustomсsend_at; необязательный параметрmax_send.POST /ai/campaigns/<run_id>/revise(сfeedback) ·POST /ai/campaigns/<run_id>/discard— запросить изменения или отказаться от черновика.GET /ai/jobs/<job_id>— состояние фоновой задачи и созданные ею AI-кампании.GET|PUT /ai/hands-off— режим автопилота: AI планирует, пишет и отправляет кампании, не дожидаясь вас ({"enabled":true}).
curl -X POST -H "X-Api-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"goal":"Invite our customers to the autumn webinar","list_uid":"auto"}' \
https://mailflow.top/api/index.php/ai/campaigns
{"status":"success","data":{"job_id":512,"job_status":"queued","check":"/ai/jobs/512"}}
curl -H "X-Api-Key: YOUR_KEY" https://mailflow.top/api/index.php/ai/jobs/512
{"status":"success","data":{"job_id":512,"type":"autopilot","status":"done","ai_campaigns":[331],"sent":false}}
Профили бизнеса
AI пишет от имени вашего бизнеса. Заведите по одному профилю на каждый сайт:
GET|POST /ai/businesses— ваши бизнесы; чтобы добавить новый, передайтеwebsite.GET|PUT|DELETE /ai/businesses/<domain>— профиль, отправитель (from_name,from_email,reply_to) и реквизиты компании (company_*).POST /ai/businesses/<domain>/read-website·PUT /ai/businesses/<domain>/main— поручить AI прочитать сайт и заполнить профиль; сделать бизнес основным.
Потенциальные клиенты из DataStack
Находите свежие рабочие и личные email-адреса и импортируйте их прямо в свои списки. Импорт учитывается в рамках вашего тарифа, а подсчёт бесплатный.
GET /datastack/credits— сколько адресов ваш тариф ещё позволяет импортировать в этом месяце.GET /datastack/count— сколько адресов доступно поcountry,niche(категории бизнеса),keywordиrole(личные адреса). Бесплатно.POST /datastack/import— импорт адресов типаbusinessи/илиpersonalвlist_uid(фоновая задача). Новые адреса проверяются до того, как на них будет отправлена какая-либо кампания.
curl -X POST -H "X-Api-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"list_uid":"cr5899rtqe668","business":2000,"country":"Greece","niche":"dentist, hotel"}' \
https://mailflow.top/api/index.php/datastack/import
{"status":"success","data":{"job_id":513,"job_status":"queued","check":"/ai/jobs/513","list_uid":"cr5899rtqe668"}}
Обращения в поддержку
GET|POST /support-tickets— ваши обращения; чтобы создать новое, передайтеsubject,message,categoryиpriority.GET /support-tickets/<ticket_uid>·POST /support-tickets/<ticket_uid>/replies·PUT /support-tickets/<ticket_uid>/close— прочитать переписку, ответить, закрыть.
Права доступа API-ключей
Ключ можно ограничить определёнными эндпоинтами. В разделе Аккаунт → API-ключи откройте ключ для редактирования, включите права доступа и отметьте, что ему разрешено использовать. Эндпоинты с этой страницы перечислены там с префиксом MailFlow.
Ошибки и лимиты
400— отсутствует или недействителенX-Api-Key, либо у ключа нет прав на этот эндпоинт402— в этом месяце недостаточно кредитов DataStack403— функция не входит в ваш тариф или достигнут лимит тарифа404— список, кампания или другой объект не существует в вашем аккаунте409— объект находится в неподходящем состоянии (например, утвердить можно только черновики)422— отсутствующие или недопустимые параметры429— достигнут лимит AI-кредитов или месячная норма AI; сбрасывается в вашу следующую дату списания оплаты
Всплески запросов ограничиваются для каждого ключа — реализуйте экспоненциальную задержку (backoff) при ответе 429. Есть вопросы? Свяжитесь с нами или создайте обращение в поддержку.