- 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 loslimits 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 responde429 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 responder429 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 responde202 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 cabeceraIdempotency-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.
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.