Saltar al contenido
LinkProfit

Límites de solicitudes

Límites por clave de API con ventana deslizante, las cabeceras X-RateLimit y una estrategia de reintento correcta.

Actualizado el 13 de agosto de 2026

Los límites se cuentan por clave sobre una ventana deslizante de un minuto. Por defecto: 600 solicitudes por minuto para las claves de espacio de trabajo y 1200 para las de partner; tu plan puede fijar otros valores, y el límite real está siempre en las cabeceras de la respuesta.

Cabeceras

Todas las respuestas llevan el estado actual:

X-RateLimit-Limit: 600
X-RateLimit-Remaining: 273
X-RateLimit-Reset: 1755081600
  • X-RateLimit-Limit — la capacidad de la ventana para esta clave.
  • X-RateLimit-Remaining — solicitudes que quedan en la ventana actual.
  • X-RateLimit-Reset — momento (Unix, en segundos) en que se libera la ventana.

Al superar el límite, la API responde 429 con Retry-After:

{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded, retry later",
    "doc_url": "https://linkprofit.com/docs/api/errors"
  }
}
Retry-After: 12

La ventana se desliza

El contador no se pone a cero al empezar el minuto: una ráfaga a las 10:00:55 sigue contando en la ventana de las 10:01:05. Planifica un ritmo constante en lugar de ráfagas alineadas con el minuto.

Las solicitudes rechazadas también cuentan: un bucle de reintento agresivo sobre un 429 solo mantiene la clave bloqueada.

Un reintento que se porta bien

async function withRateLimit(request) {
  for (let attempt = 0; attempt < 5; attempt += 1) {
    const response = await request();
    if (response.status !== 429) return response;

    const wait = Number(response.headers.get("retry-after") ?? "1");
    await new Promise((resolve) => setTimeout(resolve, wait * 1000 + attempt * 250));
  }
  throw new Error("Rate limit retries exhausted");
}

Respeta Retry-After en lugar de adivinar, añade jitter para que varios procesos en paralelo no reintenten a la vez y limita el número de intentos.

Cómo mantenerte por debajo del límite

  • Vigila X-RateLimit-Remaining y baja el ritmo antes de llegar a cero.
  • Usa POST /links/bulk: una sola solicitud crea hasta 100 enlaces.
  • Prefiere los webhooks al sondeo: los eventos te llegan en segundos y no consumen ninguna solicitud.