API · обмен данными · надёжность

Интеграция сервисов по API

Связать CRM, учётную систему, маркетплейс и сайт так, чтобы данные ходили сами. Сложность здесь создаёт не ваш код, а чужие системы: их лимиты, сроки жизни ключей и релизы, о которых вас не предупредят.

Обновлено: 29.07.2026Автор: Ринат Садыков
  • Лимиты систем расходятся в тысячи раз: от 50 запросов в секунду до одного в минуту.
  • Квота привязана к токену — её тратит любой сервис с тем же доступом, не только вы.
  • Без ключа идемпотентности сетевой сбой создаёт дубли записей.
  • Лимиты
  • Ошибка 429
  • Токены
  • Дубли
  • Вебхуки
  • Цены
Сводка лимитов: Ozon 50 запросов в секунду, МойСклад 20, amoCRM 7, Битрикс24 2, статистика Wildberries один запрос в минуту; квота привязана к токену и расходуется всеми подключёнными сервисами

Коротко

Где в интеграции настоящий объём работ

Передать данные из одной системы в другую — задача на несколько часов. Всё остальное время уходит на то, что происходит, когда что-то идёт не так: чужой сервис не ответил, вернул ошибку, изменил формат, упёрся в лимит или принял запрос, но не сообщил об этом.

Поэтому интеграцию оценивают не по количеству полей, а по числу внешних систем и по тому, насколько хорошо они документированы. Обмен с документированным REST API — дни. Обмен с самописной системой, про которую «спросите у бывшего разработчика», — недели, и большая часть из них не программирование.

Ограничения систем

Сколько запросов принимают популярные системы

Цифры из официальной документации. Проектируют обмен всегда под самую медленную систему в цепочке — она и определяет, за сколько пройдёт синхронизация.

Ozon Seller API — 50 запросов/секЛимит на кабинет, независимо от числа методов и потоков. Но у отдельных методов свои ограничения: получение таймслотов — не более 2 запросов в секунду. При превышении — 429 с указанием времени до следующего запроса.
МойСклад — 100 запросов за 5 секундПлюс ограничение на параллельность: не более 5 одновременных запросов от пользователя и 20 от аккаунта. Это значит, что разогнать выгрузку в двадцать потоков не получится — упрётесь в параллельность раньше, чем в частоту.
amoCRM — 7 запросов/секНа одну интеграцию; на аккаунт целиком — 50 в секунду. Отдельно живут токены: ключ доступа действует 24 часа, ключ обновления — 3 месяца и обменивается ровно один раз.
Битрикс24 — 2 запроса/секНа обычных тарифах, на Enterprise — 5. Есть и второй лимит, о котором узнают позже: если суммарное время выполнения метода превысит 480 секунд за 10 минут, метод блокируется на 10 минут. Массовые операции собирают в пакет до 50 вызовов в одном запросе.
Wildberries — у каждого хоста свойЕдиного лимита нет: у статистики это один запрос в минуту, у работы с отзывами — до 30 в минуту. При превышении приходит 429 с заголовками X-Ratelimit-Retry, X-Ratelimit-Limit и X-Ratelimit-Reset, где написано, сколько ждать.

Источники: официальная документация Битрикс24, Wildberries, МойСклад и Ozon. Лимиты пересматривают — перед проектированием сверяйте актуальные.

Отказы

Почему интеграция ломается, когда вы ничего не меняли

Самая частая жалоба по интеграциям — и самая непонятная для заказчика. Все четыре причины лежат вне вашего кода.

Чужая квота съела вашу

Лимит привязан к токену продавца или аккаунту, а не к вашей интеграции. Его расходует любой сервис, которому выдан тот же доступ: аналитика, репрайсер, выгрузка бухгалтера. Ваш код делает один запрос в минуту и всё равно получает 429.

Истёк ключ доступа

Токены живут ограниченное время. В amoCRM ключ доступа — сутки, ключ обновления — три месяца, и обменять его можно один раз: сорвался обмен — доступ потерян до ручной переавторизации. Интеграция при этом не падает с ошибкой, она просто перестаёт работать.

Чужой сервис выпустил релиз

Поле переименовали, метод объявили устаревшим, формат даты поменяли. Вас об этом не спросят и, скорее всего, не предупредят заранее. Интеграция должна замечать это сама и сообщать вам, а не молча складывать испорченные данные.

Сеть моргнула

Запрос ушёл, чужая система его приняла и создала запись, а ответ до вас не дошёл. Код считает, что операция не прошла, и повторяет — появляется дубль. Это происходит не «иногда», а регулярно на любом заметном объёме.

Устройство

Что отличает надёжную интеграцию от скрипта

Пять элементов. Скрипт «взял и положил» ни одного из них не имеет — и работает ровно до первого сбоя на другой стороне.

1. Очередь вместо циклаДанные не отправляются напрямую в цикле, а складываются в очередь, из которой уходят с учётом лимита. Всплеск обращений тогда растягивается по времени, а не превращается в серию отказов.
2. Повтор с нарастающей паузойПри временной ошибке запрос повторяется — но не сразу и не бесконечно. Пауза увеличивается с каждой попыткой, к ней добавляется случайная величина, чтобы параллельные процессы не стучались в одну секунду. Если система сама сказала, сколько ждать, слушают её.
3. Ключ идемпотентностиК каждой операции привязывается уникальный идентификатор. Повтор с тем же ключом не создаёт вторую запись. Это единственная надёжная защита от дублей — проверка «а нет ли уже такой записи» помогает, но не спасает при гонке.
4. Журнал обменаЧто отправили, что ответили, когда. Без него разбор «заявка была, а в системе нет» превращается в гадание. Журнал нужен и для другого: по нему видно, что чужой сервис начал отвечать иначе.
5. Оповещение о простоеСломанная интеграция молчит — жалоб не будет, будут пропавшие данные, которые обнаружат через неделю. Нужен контроль: если обмен не проходил дольше положенного, приходит уведомление.

Способ обмена

Вебхуки или опрос по расписанию

Два способа узнавать об изменениях в чужой системе. Выбор влияет и на скорость, и на расход лимитов, и на требования к вашей инфраструктуре.

Система сообщает сама

Вебхук

Быстро, без расхода квоты

Чужой сервис присылает уведомление о событии в момент, когда оно произошло.

  • Нужен адрес, доступный извне, и HTTPS
  • Ограничение: доставка не гарантирована
  • Одно и то же событие может прийти дважды

Вы спрашиваете сами

Опрос по расписанию

Надёжно, но с задержкой

Ваш код регулярно запрашивает, что изменилось с прошлого раза.

  • Не нужен внешний адрес — проще в закрытом контуре
  • Ограничение: тратит квоту постоянно
  • Задержка равна интервалу опроса

Для важных данных

Вебхук плюс сверка

Рабочая схема

Вебхук как основной канал и редкий опрос, чтобы находить потерянное.

  • Скорость вебхука и надёжность опроса
  • Сверка раз в час или в сутки по объёму
  • Требует защиты от повторной обработки
Обсудить схему

Отдельно про безопасность вебхука: адрес, на который приходят уведомления, доступен всему интернету. Подлинность отправителя проверяют подписью запроса — без этой проверки любой желающий может прислать вам поддельное «оплачено».

Деньги

Сколько стоит интеграция

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

от 2 500 ₽ · фриланс-площадкиНижняя граница предложений. Простая интеграция вроде подключения авторизации или карт — несколько тысяч рублей и 1–2 дня работы. Это подключение готового, а не обмен данными.
Готовый коннектор · абонентская платаДля популярных связок — заказы в CRM, остатки на маркетплейс — есть сервисы-посредники. Запускаются за часы, стоят помесячно, данные идут через чужую инфраструктуру. Проверять их стоит до заказа разработки.
от 150 000 ₽ · студийная разработкаПубличные прайсы студий на разработку API и интеграций: срок от 3 недель, для типового бизнес-сервиса 3–8 недель. В эту сумму входит проектная работа — аналитика, тестирование, документация.
Индивидуальный расчётМой формат для интеграций: считаю после того, как понятны системы, направление обмена, объём и состояние документации. Универсальной цифры здесь нет — объём определяет чужая система, а не моя часть работы.
Что стоит фиксированноИз готового у меня только боты: автоответчик — 9 990 ₽, бот со сценариями и сбором заявки — 14 990 ₽, ИИ-менеджер с базой знаний — 19 990 ₽. Интеграция к ним считается отдельно.

Рыночные ориентиры собраны из открытых прайсов в июле 2026 года и приведены для сравнения, а не как моё предложение.

Старт

Что нужно, чтобы начать

Порядок именно такой. Ожидание доступов и поиск документации обычно занимают больше времени, чем сама разработка.

  • Список систем и направление обмена: что откуда забирается и что куда кладётся.
  • Доступ с правами на создание интеграции в каждой системе, оформленный на вашу компанию.
  • Ссылка на документацию API — или честное «её нет», это тоже ответ.
  • Правило сопоставления: по какому полю считать, что это одна и та же запись в обеих системах.
  • Тестовый контур, чтобы первые проверки не создавали мусор в рабочей базе.

Четвёртый пункт выглядит формальностью, но именно он чаще всего оказывается нерешённым. Пока не определено, что считать одним и тем же клиентом или товаром в двух системах, обмен настроить нельзя — и это вопрос к бизнесу, а не к разработчику.

Доступы отзываемые

Ключи оформляются на вашу компанию и выдаются исполнителю. Отзыв доступа должен быть возможен в любой момент и без его участия.

Права по минимуму

Интеграции выдают доступ только к нужным сущностям. Ключ с полными правами в чужом коде — это ключ от всей системы.

Секреты вне репозитория

Токены живут в переменных окружения на сервере, а не в коде и не в переписке. При смене подрядчика перевыпускаются за минуту.

Честные границы

Когда интеграция не нужна

Три ситуации, где разработка обмена — лишние деньги.

Есть готовый коннектор

Для популярных связок посредники уже написаны. Если типовой обмен покрывает вашу задачу, платить за разработку смысла нет — по крайней мере пока не упрётесь в ограничения платформы.

Обмен нужен раз в месяц

Если данные переносят двадцать раз в год за десять минут, автоматизация не окупится: разработка стоит дороже, а поддерживать её всё равно придётся.

В данных не наведён порядок

Если в одной системе клиент записан тремя разными способами, обмен разнесёт этот беспорядок по всем системам сразу и сделает его дороже в исправлении. Сначала правила, потом автоматизация.

FAQ

Вопросы об интеграциях

Почему интеграция перестала работать, хотя мы ничего не меняли?

Три обычные причины, и все три не зависят от вашего кода. Первая: истёк токен доступа — например, в amoCRM ключ живёт 24 часа, а ключ обновления 3 месяца и обменивается ровно один раз. Вторая: чужой сервис выпустил обновление и изменил формат ответа. Третья: закончилась квота запросов, потому что её расходует не только ваша интеграция, а любой сервис, которому выдан тот же доступ.

Сколько запросов в секунду выдерживают популярные системы?

По официальной документации: Ozon Seller API — 50 запросов в секунду на кабинет, но получение таймслотов ограничено 2 запросами в секунду; МойСклад — не более 100 запросов за 5 секунд и 5 параллельных от пользователя; amoCRM — 7 запросов в секунду на интеграцию и 50 на аккаунт; Битрикс24 — 2 запроса в секунду на обычных тарифах; Wildberries — у каждого хоста свой лимит, у статистики это один запрос в минуту. Разброс между системами — в тысячи раз, и архитектуру обмена проектируют под самую медленную.

Что делать при ошибке 429?

Не повторять запрос сразу — это усугубляет ситуацию. Правильное поведение: прочитать заголовки ответа, где система сообщает, сколько ждать. У Wildberries это X-Ratelimit-Retry с числом секунд, а также X-Ratelimit-Limit и X-Ratelimit-Reset. Ozon возвращает время до следующего запроса в теле ответа. Если заголовков нет, ждут с увеличивающейся паузой и случайной добавкой, чтобы параллельные процессы не стучались одновременно.

Вебхуки или опрос по расписанию?

Вебхук — чужая система сама шлёт вам уведомление о событии: быстро и без расхода лимитов, но требует доступного извне адреса с HTTPS, и доставка не гарантирована — уведомление может потеряться. Опрос — вы сами регулярно спрашиваете об изменениях: надёжнее и не требует внешнего адреса, но тратит квоту и даёт задержку. Рабочая схема для важных данных — вебхук как основной канал плюс редкая сверка опросом, чтобы находить потерянное.

Почему в системе появляются дубли после интеграции?

Потому что сеть ненадёжна. Ваш код отправил запрос, чужая система его приняла и создала запись, но ответ до вас не дошёл — и код повторяет запрос, создавая вторую запись. Лечится ключом идемпотентности: к каждой операции привязывают уникальный идентификатор, и повтор с тем же ключом не создаёт новую запись. Второй слой защиты — искать существующую запись перед созданием.

Сколько стоит интеграция по API?

По рынку в 2026 году: простая интеграция вроде авторизации или карт — несколько тысяч рублей и 1–2 дня, на фриланс-площадках предложения начинаются примерно от 2 500 ₽. Разработка собственного API для бизнеса у студий — от 150 000 ₽, срок от 3 недель, для типового сервиса 3–8 недель. Разброс объясняется тем, что под словом «интеграция» продают и подключение готового модуля, и двусторонний обмен с очередью и защитой от дублей.

Что нужно от нас, чтобы начать?

Список систем и направление обмена: что откуда забирается и что куда кладётся. Доступ с правами на создание интеграции в каждой системе. Ссылка на документацию их API. Ответ на вопрос, что считать одной и той же записью в обеих системах — по какому полю их сопоставлять. И тестовый контур, чтобы первые проверки не создавали мусор в рабочей базе.

Можно ли обойтись готовым коннектором?

Часто да, и это честный ответ. Если системы популярные, а обмен типовой — заказы в CRM, остатки на маркетплейс — готовый коннектор запускается за часы и стоит абонентскую плату. Своя интеграция нужна, когда логика нестандартная, данные не должны проходить через посредника или коннектор не покрывает нужные поля. Начинать разумно с проверки готовых решений.

Следующий шаг

Назовите системы — скажу, во что упрётся обмен

По паре названий и направлению обмена уже видно, хватит ли готового коннектора, какой лимит станет узким местом и где придётся наводить порядок в данных.

  • Какие системы и в какую сторону должны ходить данные.
  • Какой объём: записей в день или в час.
  • Насколько критична задержка — секунды, минуты или раз в сутки.

Разобрать обмен Чат

Если удобнее написать текстом — откройте чат, он ведёт тот же разбор. Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и согласием на обработку данных.