Перейти до вмісту
Last updated

MoreLogin API обмежує швидкість, щоб забезпечити справедливе використання та стабільність системи.


Межі

Тип APIОбмеження швидкостіВікно
Локальний API120 запитівза хвилину
Відкритий API120 запитівза хвилину

Відповідь на обмеження швидкості

Коли ви перевищуєте обмеження швидкості, API повертає:

Статус HTTP: 429 Too Many Requests

{
  "code": 429,
  "msg": "Rate limit exceeded",
  "data": null,
  "requestId": "..."
}

Найкращі практики

1. Застосуйте Retry with Backoff

import time
import requests

def api_request_with_retry(url, payload, max_retries=3):
    for attempt in range(max_retries):
        response = requests.post(url, json=payload)
        if response.status_code == 429:
            wait_time = 2 ** attempt  # 1s, 2s, 4s
            print(f"Rate limited. Retrying in {wait_time}s...")
            time.sleep(wait_time)
            continue
        return response
    raise Exception("Max retries exceeded")

2. Пакетні операції

Замість здійснення окремих викликів API використовуйте пакетні кінцеві точки, якщо вони доступні:

# Bad: 100 individual calls
for env_id in env_ids:
    requests.post(f"{BASE}/api/env/start", json={"envId": env_id})

# Good: Use batch endpoints
requests.post(f"{BASE}/api/env/updateGroup/batch", json={
    "envIds": env_ids,
    "groupId": "target-group"
})

3. Кешувати відповіді

Для даних, які не змінюються часто (наприклад, списки часових поясів, списки платформ), кешуйте відповідь локально:

# Cache timezone/language data — it rarely changes
timezone_data = requests.post(f"{BASE}/api/env/advanced/timezone").json()
# Reuse timezone_data for subsequent profile creations

Моніторинг вашого використання

Слідкуйте за частотою викликів API. Якщо ви постійно наближаєтеся до ліміту, врахуйте:

  • Рівномірний розподіл запитів протягом хвилини
  • Використання веб-хуків (незабаром) замість опитування
  • Об’єднання кількох операцій у пакетні виклики