v1 · vista previa

Prueba con webhook firma, alert.created, location_withheld o 429.

↑ ↓ moverseIntro abrirEsc cerrar

Funcionamiento

Límites de uso

Peticiones y tiempo de consulta por minuto, qué pasa al superarlos, las cabeceras que lo cuentan y por qué conviene usar webhooks en vez de consultar en bucle.

En esta página

Cada cliente tiene dos límites por minuto. Los dos existen para que una integración que consulta de más no quite capacidad a las alertas de nadie, la tuya incluida.

Los dos límites

LímiteDe serie
Peticiones por minuto600
Tiempo de consulta por minuto30 segundos

El segundo es menos habitual. Cada petición gasta el tiempo que tarda en resolverse, así que una lista larga cuenta más que una alerta suelta: pedir 500 alertas de un mes consume más de ese presupuesto que pedir una por su id. Si tu integración pide listas grandes a menudo, pagina con limit más bajos o, mejor, deja de consultar y usa webhooks.

Los dos se pueden ampliar por contrato.

El endpoint del token (POST /v1/oauth/token) tiene además su propio límite, por IP. Pide un token por hora y reutilízalo (ver Renovarlo).

Cabeceras

Las respuestas llevan cuánto margen te queda:

CabeceraQué dice
X-RateLimit-LimitTu límite.
X-RateLimit-RemainingLo que te queda en la ventana actual.

Al superarlos

La API responde 429 en application/problem+json, con la cabecera Retry-After: los segundos que tienes que esperar antes de volver a intentarlo.

async function pedir(url, opciones = {}, intentos = 3) {
  const res = await fetch(url, opciones);
  if (res.status === 429 && intentos > 0) {
    const espera = Number(res.headers.get('Retry-After') ?? 1);
    await new Promise((r) => setTimeout(r, espera * 1000));
    return pedir(url, opciones, intentos - 1);
  }
  return res;
}

Respeta siempre Retry-After. Reintentar antes solo alarga la espera.

Webhooks en vez de consultar en bucle

La causa más común de un 429 es preguntar cada pocos segundos «¿hay alertas nuevas?». Es lo que los webhooks hacen mejor: te llega cada alerta en uno o dos segundos, sin gastar ni una petición.

  • Para enterarte de lo que pasa: webhooks.
  • Para ponerte al día tras un corte: GET /v1/events.
  • Para cargar el estado al arrancar o buscar algo concreto: las listas, paginadas.