Перейти к содержимому
Инструменты

API Follu: quickstart за 15 минут

Когда заказов больше 10–15 в день, ручной ввод превращается в отдельную работу. С API на это уходит ноль времени. Разбираем подключение, авторизацию, первый заказ и вебхуки — с примерами на Python, TypeScript и cURL.

Максим КареловМаксим Карелов·2 марта 2026·8 мин
API Follu: quickstart за 15 минут

Если в кабинет ежедневно прилетает больше 10–15 заказов или вы — агентство, которое запускает заказы для нескольких клиентов одновременно, ручной ввод превращается в отдельную должность. API убирает эту работу полностью: интеграция занимает один спринт у одного разработчика, дальше система живёт сама и требует внимания только при изменении бизнес-логики на вашей стороне.

Эта статья — не сухая API-референс, а карта подключения от выпуска токена до получения статуса по вебхуку. С пометками о граблях, на которые наступили первые 30 интеграторов, и примерами кода на трёх языках, которые работают как есть.

Когда переходить на API

  • Больше 10–15 заказов в день — ручной ввод съедает час-полтора
  • Несколько клиентов в работе и нужна сегментация по биллингу
  • Хочется триггерить заказ из внешней CRM по событию (новый пост → автоматический разгон)
  • Нужны исторические данные по заказам в собственной БД для отчётов
  • Хотите интегрировать накрутку в воронку продукта (например, разгонять контент внутри своей платформы)

Шаги подключения

  1. 1В настройках кабинета выпускаете API-токен. Токены отзываются и пересоздаются по одному клику
  2. 2Опционально — добавляете URL вебхука. Можно один на все события или разные на старт/успех/ошибку
  3. 3Делаете GET /services, чтобы получить актуальный каталог с providerServiceId, минимумами, максимумами и ценами
  4. 4POST /orders с serviceId, link и quantity — получаете обратно orderId и стартовый статус
  5. 5Слушаете обновления статуса через вебхук или периодический pull /orders/:id

Авторизация

Все запросы авторизуются bearer-токеном в заголовке Authorization. Токен живёт до отзыва — мы не делаем «истечение через 24 часа», потому что это создаёт больше проблем, чем решает (нужно где-то хранить refresh-токен, перевыдавать, синхронизировать между сервисами). При компрометации токен отзывается одной кнопкой в кабинете и всё, что было сделано до этого момента, остаётся в истории — при выпуске нового токена ничего не теряется.

Первый запрос — три варианта

Запрос на создание заказа — самый простой эндпоинт API. Минимум: serviceId (берём из /services), link (публичный URL объекта) и quantity. Опциональные поля: idempotencyKey (страховка от двойного списания при ретрае), webhookUrl (override на конкретный заказ), comment (метка для собственных отчётов).

cURL — для дебага и быстрых проверок

curl -X POST https://api.follu.biz/v1/orders -H 'Authorization: Bearer YOUR_TOKEN' -H 'Content-Type: application/json' -d '{"serviceId": 814, "link": "https://t.me/example", "quantity": 1000, "idempotencyKey": "order-2026-04-01-001"}'

Python — для скриптов и кронов

import requests; r = requests.post('https://api.follu.biz/v1/orders', headers={'Authorization': f'Bearer {TOKEN}'}, json={'serviceId': 814, 'link': 'https://t.me/example', 'quantity': 1000}); print(r.json())

TypeScript — для бэкендов на Node

const r = await fetch('https://api.follu.biz/v1/orders', { method: 'POST', headers: { Authorization: `Bearer ${TOKEN}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ serviceId: 814, link: 'https://t.me/example', quantity: 1000 }) }); const data = await r.json();

Вебхуки vs polling

Если ваша интеграция боевая (а не разовый скрипт), вебхуки — правильный выбор. Polling /orders/:id раз в 30 секунд работает, но создаёт паразитный трафик и быстро упирается в лимиты. Вебхук приходит ровно тогда, когда статус меняется: started, in_progress, partial, completed, cancelled, error. Все события отправляются POST'ом, в теле — orderId, новый статус, дельта по выполнению, временная метка.

Подпись вебхука
Каждый вебхук подписан HMAC-SHA256 с секретом, который вы вводите при настройке URL. Не доверяйте payload без проверки подписи — в публичном вебхуке кто угодно может прислать вам POST с фейковым «completed».

Обработка ошибок

Ответы — JSON с строгой схемой. Ошибки приходят со стандартными HTTP-кодами и человекочитаемым полем message — никаких «Error 0» без описания. 400 — валидация (неправильные параметры), 401 — нет/невалидный токен, 402 — недостаточно средств на балансе, 404 — сервис не найден, 409 — конфликт идемпотентности (повторный запрос с тем же idempotencyKey), 429 — rate limit, 5xx — наши проблемы. На 5xx можно ретраить через экспоненциальную задержку — система идемпотентна по idempotencyKey.

Лимиты и rate limiting

Стандартный лимит — 10 запросов в секунду на токен. Burst — 30 запросов в окне 3 секунды. Для большинства интеграций этого хватает с большим запасом. Если предполагается высокая нагрузка (агентство с сотнями заказов в час, интеграция в продуктовую воронку) — пишите в поддержку, поднимем индивидуально под задачу. Лимит проверяется на стороне gateway, при превышении приходит 429 с заголовком Retry-After.

Для агентств
Доступны подаккаунты, отдельные токены на каждый проект и раздельный биллинг (один счёт, расщепление по подаккаунтам). Пишите на support@follu.biz, выдадим sandbox с тестовым балансом и поможем с интеграцией.

Что мы добавим в API в ближайшие месяцы

  • Batch endpoints — отправка до 50 заказов одним POST'ом
  • GraphQL для гибких запросов по истории заказов
  • Streaming-ответы для long-poll сценариев (полезно для дашбордов реального времени)
  • OpenAPI-спецификация и автогенерируемые клиенты для Go, Java, PHP

Полная документация — на developers.follu.biz. Если что-то описано непонятно или не работает как ожидается — пишите, исправим в день обращения. API мы держим как продукт, а не как костыль.

Максим Карелов
Автор
Максим Карелов
Фаундер
Читайте также

Ещё несколько полезных статей

Все статьи
Как разогнать Reels в 2026: чек-лист из 12 пунктов
Гайды
Как разогнать Reels в 2026: чек-лист из 12 пунктов
Алгоритм Reels в 2026 стал внимательнее к первому часу жизни ролика — если за 60 минут видео не набирает «интерес», шанс попасть в рекомендации падает почти втрое. Разбираем по шагам, что считается «интересом», какие метрики поменялись и как заложить идеальный первый час с минимальными усилиями.
Анна ВишневскаяАнна Вишневская·11 апреля 2026·11 мин
Новый поток возвратов: теперь быстрее, прозрачнее, понятнее
Новости сервиса
Новый поток возвратов: теперь быстрее, прозрачнее, понятнее
С 1 апреля мы переписали механику возврата средств с нуля. Возвраты стали полностью автоматическими, теперь видны в реальном времени, а средний срок упал с 19 часов до 2 часов 11 минут.
Анна ВишневскаяАнна Вишневская·1 апреля 2026·6 мин
Кейс: как блогер-кулинар вырос с 20k до 120k за три месяца
Кейсы
Кейс: как блогер-кулинар вырос с 20k до 120k за три месяца
Честный разбор с цифрами, бюджетом, графиками и ошибками. Что работало, что не зашло, сколько стоила связка автонакрутки и закупов, и как мы перестроили план на ходу, когда в середине второго месяца выручка от клуба не пошла по прогнозу.
Игорь СёминИгорь Сёмин·28 марта 2026·13 мин
Рассылка

Одно письмо в две недели — только кейсы и гайды

Без промо и «последних спецпредложений». Можно отписаться в любой момент.

Нажимая «Подписаться», вы соглашаетесь с политикой конфиденциальности и согласием на обработку персональных данных по 152-ФЗ.