Saltar al contenido
Last updated

MoreLogin API aplica límites de tarifas para garantizar un uso justo y la estabilidad del sistema.


Límites

Tipo de APILímite de tarifaventana
API locales120 solicitudespor minuto
API abierta120 solicitudespor minuto

Respuesta de límite de velocidad

Cuando excede el límite de tasa, la API devuelve:

Estado HTTP: 429 Too Many Requests

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

Mejores prácticas

1. Implementar reintento con retroceso

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. Operaciones por lotes

En lugar de realizar llamadas API individuales, utilice puntos finales por lotes cuando estén disponibles:

# 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. Respuestas en caché

Para datos que no cambian con frecuencia (por ejemplo, listas de zonas horarias, listas de plataformas), almacene en caché la respuesta localmente:

# 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

Monitorear su uso

Realice un seguimiento de la frecuencia de sus llamadas API. Si se acerca constantemente al límite, considere:

  • Distribuir solicitudes de manera uniforme a lo largo del minuto
  • Usar webhooks (próximamente) en lugar de realizar encuestas
  • Combinar múltiples operaciones en llamadas por lotes