Límites de uso
Comprende los límites de uso de la API, las cabeceras de respuesta y las buenas prácticas para gestionar los errores de límite con elegancia.
Visión general
Los límites de uso protegen la API de abusos y garantizan un uso justo para todos los clientes. Cada clave de API tiene una cuota de solicitudes que se reinicia cada hora. Cuando superas tu límite, las solicitudes devuelven un error 429 (Too Many Requests) hasta que el límite se reinicia.
Límites por defecto
Límites de uso estándar por clave de API: | Tipo de límite | Límite | Período de reinicio | |----------------|--------|---------------------| | Solicitudes | 1.000/hora | Por hora | | Ráfaga | 100/minuto | Por minuto | | Tamaño de lote | 100 elementos | Por solicitud | **Límites por endpoint:** • Verificación de email: 1.000/hora • Búsqueda de email: 500/hora • Enriquecimiento: 200/hora • Búsqueda de leads: 500/hora • Análisis SEO: 200/hora ¿Necesitas límites más altos? Contacta con soporte para hablar de opciones empresariales.
Cabeceras de límite de uso
Toda respuesta incluye información de límite de uso en las cabeceras: ``` X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 856 X-RateLimit-Reset: 1709046000 Retry-After: 3600 ``` | Cabecera | Descripción | |----------|-------------| | `X-RateLimit-Limit` | Máximo de solicitudes permitidas por hora | | `X-RateLimit-Remaining` | Solicitudes restantes en la ventana actual | | `X-RateLimit-Reset` | Marca de tiempo Unix cuando se reinicia el límite | | `Retry-After` | Segundos hasta que puedas reintentar (solo en 429) |
Gestionar los límites de uso
Cuando recibas una respuesta 429, implementa lógica de reintentos: ```javascript async function makeRequest(url, options) { const response = await fetch(url, options); if (response.status === 429) { const retryAfter = response.headers.get('Retry-After') || 60; await sleep(retryAfter * 1000); return makeRequest(url, options); // Reintento } return response; } ``` **Retroceso exponencial:** Para fallos repetidos, usa retroceso exponencial con jitter: ```javascript const delay = Math.min(baseDelay * 2 ** attempt + randomJitter, maxDelay); ```
Buenas prácticas
Optimiza tu uso de la API para evitar los límites: • **Usa endpoints por lotes** - verifica 100 emails en una solicitud en lugar de 100 solicitudes • **Cachea las respuestas** - no vuelvas a pedir datos que ya tienes • **Distribuye las solicitudes** - no las lances todas a la vez • **Monitoriza las cabeceras** - controla la cuota restante de forma proactiva • **Gestiona los errores con elegancia** - implementa una lógica de reintentos adecuada • **Usa webhooks** - en operaciones asíncronas, espera el callback en lugar de hacer polling **Enfoque basado en colas:** ```javascript // Procesa solicitudes con límite de uso const queue = new RateLimitedQueue({ maxConcurrent: 10, minDelay: 100 // ms entre solicitudes }); await queue.addAll(requests); ```
Artículos relacionados
Gestión de errores
Gestiona errores 429 y otros errores de la API con elegancia.
Autenticación
Gestión de claves de API y buenas prácticas de seguridad.
Endpoints de SEO
Genera informes SEO, analiza el rendimiento, sigue posiciones de palabras clave y monitoriza Core Web Vitals.
API de personalización con IA
Genera ganchos y líneas de asunto de correo escritos por IA a través de la API. Aprende cuándo usar sync o batch, los patrones de idempotencia y sondeo, los precios y los códigos de error.