Saltar al contenido principal

Límites

LímiteValorCuando se pasa
Peticiones por llave60 por minuto429 throttled con Retry-After
Llaves inválidas por dirección IP30 por minuto429 throttled con Retry-After, para toda llamada desde esa dirección
Días de un rango92 (un trimestre)400 range_too_long
Empleados por página del Detalle100 por defecto, hasta 200 con page_sizeUn page_size mayor da 200

Un mes de una empresa de 2 000 personas es una llamada al Resumen y 20 al Detalle: cerca de medio segundo cada una, muy dentro de las 60 por minuto.

429: más despacio​

Una llamada frenada responde los segundos que hay que esperar dos veces, en la cabecera Retry-After y en el cuerpo:

HTTP/1.1 429 Too Many Requests
Retry-After: 23
Content-Type: application/json

{ "detail": "…", "code": "throttled", "retry_after": 23 }

Como en todo este API, detail es un mensaje para una persona, en español; su programa lee code. Espere ese tiempo y repita la llamada. Pedir las páginas del Detalle una tras otra, y no todas a la vez, lo mantiene debajo del límite.

La cuenta de llaves inválidas existe para que nadie pueda probar llaves contra Kabal. Se cuenta por dirección, antes de mirar la llave, así que una llave buena mandada desde la misma dirección que una mal configurada también espera: un 401 significa corregir la llave, nunca repetirla.

503: mantenimiento​

Mientras Kabal está en mantenimiento, toda llamada responde 503 con el código maintenance y Retry-After: 60. Suele durar minutos. Vuelva a intentar después de ese tiempo; sus números siguen donde estaban.

{
"detail": "Kabal está en mantenimiento. Intenta de nuevo en unos minutos.",
"code": "maintenance"
}

Tamaño y tiempo​

Las respuestas son JSON en UTF-8. El Resumen de 2 000 personas pesa unos 1,2 MB; una página de 100 personas del Detalle de un mes, unos 3 MB. Las respuestas pueden llegar comprimidas: mande Accept-Encoding: gzip y deje que su cliente HTTP descomprima, lo que reduce una página del Detalle unas veinte veces cuando ocurre. Cuente igual con el tamaño sin comprimir.

Dé a cada llamada un tiempo de espera de al menos 60 segundos.