Elido

Ограничения частоты запросов API

Лимиты на ключ в зависимости от тарифного плана, заголовки ответов, которые следует учитывать, и способы корректной обработки ошибок 429 в коде вашего клиента.

3 min readUpdated 2026-05-15

Elido ограничивает частоту запросов к API на уровне ключа, а не рабочего пространства. Это означает, что каждая созданная вами интеграция может использовать свой лимит, не мешая остальным. В этой статье рассматриваются лимиты для каждого тарифного плана, заголовки, которые необходимо учитывать, и способы корректного снижения нагрузки.

Цифры#

Постоянные лимиты на ключ:

PlanВ минутуBurst
Free60120
Pro6001200
Business600012000

Burst — это то, насколько вы можете кратковременно превысить лимит в 10-секундном окне. Sustained — это ограничение в устойчивом состоянии, при котором корзина пополняется.

Ограничений на отдельные эндпоинты нет — GET /v1/links учитывается так же, как и POST /v1/links. Единственные исключения:

  • POST /v1/bulk-import — 5 активных импортов на рабочее пространство одновременно.
  • POST /v1/links с кастомным слагом, конфликтующим с существующим — они все равно учитываются, но не освобождают слот при конфликте.
  • GET /v1/analytics/timeseries с interval=second — ограничение 60/минуту даже на Business, так как лежащий в основе запрос ClickHouse более ресурсоемок.

Заголовки ответов#

Каждый ответ API включает:

X-RateLimit-Limit: 600
X-RateLimit-Remaining: 587
X-RateLimit-Reset: 1747386240

X-RateLimit-Reset — это Unix timestamp, сообщающий вам, когда корзина будет полностью заполнена. Используйте его для планирования повторных попыток вместо фиксированных задержек.

Как выглядит ошибка 429#

При превышении лимита:

HTTP/1.1 429 Too Many Requests
Retry-After: 12
Content-Type: application/json

{
  "error": "rate_limited",
  "message": "API rate limit exceeded for this key",
  "retry_after_seconds": 12
}

Retry-After указан в секундах. Подождите указанное время, затем повторите попытку. SDK делают это автоматически с добавлением джиттера; если вы пишете собственный HTTP-клиент, поступайте так же.

Стратегия снижения нагрузки#

Если вы активно нагружаете API (разовая массовая задача, заполнение данных), настройте скорость вашего клиента на постоянный лимит, а не на burst. Простой цикл быстро исчерпает лимит burst, затем остановится на 50 секунд, а затем снова ударит по лимиту burst — в среднем это будет медленнее, чем просто равномерное распределение нагрузки.

Псевдокод:

const limit = 600; // per minute
const delayMs = (60 * 1000) / limit; // 100ms between requests

for (const item of items) {
  await fetch(...);
  await sleep(delayMs);
}

Этот паттерн использует 100% лимита без возникновения ошибок 429.

Параллелизм#

Параллельные запросы используют одну и ту же корзину. Если вы запускаете 100 параллельных запросов из пула воркеров на плане Pro (600/min), первые 100 будут выполнены мгновенно; затем корзина будет пополняться со скоростью 10/sec. Ваш пул воркеров должен быть ориентирован на постоянную скорость, а не на глубину очереди.

На ключ или на IP#

Корзина привязана к ключу, а не к IP. Если вы используете один и тот же ключ с 10 машин, эти 10 машин делят лимит между собой. Выпустите по ключу для каждой машины, если вам нужно в 10 раз больше ресурсов.

На уровне IP существует отдельный, очень щедрый лимит (10,000/min/IP), предназначенный только для остановки некорректно работающих клиентов. Вы никогда не столкнетесь с ним при обычном использовании; если же это произойдет, придет ответ 429 с телом "error": "ip_rate_limited".

Ключи идемпотентности не обходят лимиты#

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

Увеличение лимитов#

Если для вашего варианта использования действительно требуется более 6000/min постоянной нагрузки, напишите на support@elido.app, указав:

  • ID вашего рабочего пространства.
  • Название интеграции.
  • Ожидаемую постоянную и пиковую частоту запросов.
  • Эндпоинты (чтобы мы могли спланировать нагрузку для наиболее ресурсоемких из них).

Мы предоставляем увеличение лимитов на ключ корпоративным клиентам по контракту, обычно в течение одного рабочего дня.

Устранение неполадок#

Внезапно стали приходить ошибки 429 на ключе, который раньше работал. Либо в вашем коде возник бесконечный цикл (наиболее часто), либо кто-то еще в рабочем пространстве начал использовать тот же ключ. Проверьте вкладку Usage для API-ключа в панели управления, чтобы увидеть минутный график.

Ошибки 429 при первом запросе за день. Корзины на бесплатном тарифе сбрасываются в скользящем окне, а не в полночь по UTC. Если вы тестировали лимит вчера в 23:59 и он еще не успел полностью пополниться к 00:01, первый burst все равно может быть ограничен. Подождите 60 секунд.

X-RateLimit-Remaining имеет отрицательное значение. Превышение лимита burst. Это число показывает, насколько глубоко вы ушли "в минус"; умножьте его на 60/limit, чтобы получить количество секунд до возврата к нулю.

Was this helpful?
Need more? Email the team — replies within one working day.Contact support
Ограничения частоты запросов API · Elido