Saltar al contenido principal
Cada llave de API, cada conexión de IA y cada organización tiene un presupuesto de llamadas por minuto, según el tipo de llamada:
  • Una llamada gasta del presupuesto de su llave, y luego del de su organización. El presupuesto de la organización lo comparten todas sus llaves y conexiones de IA, así que un programa muy activo puede frenar a los demás: da a cada programa su propia llave y reparte sus llamadas.
  • Las personas en la aplicación no gastan nada de él. El trabajo de una persona en la aplicación nunca toma de estos presupuestos, así que un programa que los agota nunca deja fuera a tu equipo.
  • Los presupuestos se recargan de forma continua, no al empezar cada minuto, y guardan solo unos segundos de llamadas a la vez: un ritmo parejo rinde más que las ráfagas.

Saber cuánto queda

Obtener la credencial que llama responde los limits de tu llave y sus llamadas remaining de cada tipo, lo menor entre lo que aún tienen su propio presupuesto y el de su organización. No cuenta para ningún límite ni ocupa lugar entre las llamadas en curso, así que puedes llamarla cuando lo necesites.

Al pasarse de un límite

Una llamada que pasa un presupuesto responde 429 con el código core.rate_limited y una cabecera Retry-After, los segundos enteros que hay que esperar. No hizo nada: espera ese tiempo y vuelve a enviarla, nunca en un bucle sin pausa.

Llamadas en curso

Mantén como máximo llamadas de las llaves y conexiones de IA de tu organización en curso a la vez. Una llamada más allá de ellas puede responder 429 core.rate_limited antes de hacer nada, con su propio Retry-After. Para leer más rápido, pide páginas más grandes en lugar de más llamadas a la vez.

Trabajos sin terminar

El trabajo largo, como una importación o una exportación, corre como un trabajo: su llamada responde 202 Accepted con un jobId, que Obtener un trabajo sigue hasta que termina. Una organización tiene como máximo trabajos sin terminar, quien sea que los haya iniciado: en espera, en pausa o corriendo. Un inicio de una llave o de una IA más allá de ellos responde 429 con el código core.job_limit_reached y un Retry-After de segundos, y no inicia nada. El inicio de una persona en la aplicación nunca se rechaza. El archivo de un trabajo, como el de una exportación, se lee mediante un enlace de Obtener el enlace de un archivo del trabajo, que funciona durante minutos: pide uno nuevo cuando venza.

Repite una escritura sin riesgo

Una escritura cuya respuesta nunca llegó, porque la conexión se cortó o tardó demasiado, puede haber ocurrido o no. Envíala con una cabecera Idempotency-Key, un valor tuyo de como máximo caracteres, como un UUID hecho para esa sola escritura, y envía el mismo valor en cada reintento:
  • La primera llamada hace la escritura; un reintento con el mismo valor y la misma petición responde la respuesta de la primera, sin hacerla otra vez, durante horas.
  • Mientras la primera llamada sigue corriendo, un reintento responde 409 core.idempotency_in_progress: espera y reintenta.
  • El mismo valor con otra petición, otro cuerpo u otra ruta, responde 422 core.idempotency_mismatch.
  • Cada valor es de tu credencial: la llamada de otra llave de API con el mismo valor es una llamada aparte.
  • Un valor vacío o demasiado largo responde 400 core.bad_request.
  • Una llamada que falló no guarda nada, así que su reintento vuelve a correr.
Estas escrituras respetan un Idempotency-Key; en cualquier otra no cambia nada: Cancelar un trabajo, Restaurar una versión, Iniciar una importación, Inspeccionar un archivo de importación, Revisar una importación, Traer un archivo desde una URL, Generar los resultados de una importación, Iniciar una exportación, Crear una plantilla de exportación, Crear una vista guardada, Conectar una tienda, Crear un producto y Duplicar un producto.