Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.lina.doolehealth.com/llms.txt

Use this file to discover all available pages before exploring further.

Límites por plan

PlanLímiteVentana
Standard100 peticionespor minuto
Enterprise1.000 peticionespor minuto
Los límites se aplican por API key. Si necesitas un límite superior, contacta con soporte@lina.health.

Headers de respuesta

Cada respuesta de la API incluye headers que indican el estado actual de tu cuota:
HeaderDescripción
X-RateLimit-LimitNúmero máximo de peticiones permitidas por ventana
X-RateLimit-RemainingPeticiones restantes en la ventana actual
X-RateLimit-ResetTimestamp Unix (segundos) en que se restablece la ventana
Ejemplo de headers:
HTTP/1.1 200 OK
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 73
X-RateLimit-Reset: 1747224120

Respuesta 429 (Too Many Requests)

Cuando superas el límite, recibirás un error 429:
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Has superado el límite de peticiones. Inténtalo de nuevo en 34 segundos.",
    "retryAfter": 34
  }
}
El header Retry-After también indica los segundos de espera:
HTTP/1.1 429 Too Many Requests
Retry-After: 34
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1747224120

Gestión recomendada

async function fetchWithRetry(url, options, maxRetries = 3) {
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
    const response = await fetch(url, options);

    if (response.status === 429) {
      const retryAfter = parseInt(response.headers.get('Retry-After') || '60', 10);
      console.log(`Rate limited. Reintentando en ${retryAfter}s...`);
      await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
      continue;
    }

    return response;
  }
  throw new Error('Se ha superado el número máximo de reintentos');
}

Buenas prácticas

Implementa backoff exponencial

Si recibes un 429, espera el tiempo indicado en Retry-After antes de reintentar.

Cachea respuestas

Almacena en caché las respuestas que no cambian frecuentemente (formularios, configuración).

Usa webhooks

En lugar de hacer polling, configura webhooks para recibir actualizaciones.

Peticiones en lote

Agrupa operaciones cuando sea posible para reducir el número de peticiones.
Los endpoints de webhooks (recibir eventos) no cuentan para tu límite de peticiones. Solo las llamadas salientes a la API consumen cuota.