Aller au contenu

Idempotence et limites

Cette page indique comment relancer une écriture sans l’appliquer deux fois, et combien de requêtes l’API publique accepte.

Pour pouvoir relancer une écriture sans risque, envoyez un en-tête Idempotency-Key de 1 à 255 caractères sur toute requête POST, PUT, PATCH ou DELETE. La clé est facultative et conservée 24 heures.

Vous renvoyez la même cléVous obtenez
Avec la même requête, une fois la première terminéeLa première réponse à nouveau, avec l’en-tête Idempotent-Replayed: true
Avec une requête différenteIDEMPOTENCY_KEY_REUSED, statut 422
Pendant que la première requête est encore en coursIDEMPOTENCY_IN_PROGRESS, statut 409 ; après 60 secondes, une nouvelle tentative s’exécute de zéro

Une réponse de statut 401, 403 ou 429, une erreur serveur et un échec de validation ne sont pas conservés : la clé reste libre pour votre nouvelle tentative.

Huit opérations de rédaction d’AIP gardent plutôt leur propre idempotence de tâche : la création d’une source audio, la création d’un brouillon, le rejeu, la modification d’une politique d’intention, la rédaction d’un correctif, son application, la préparation et l’édition d’une politique. Une requête qui lancerait une tâche déjà en cours répond JOB_ALREADY_EXISTS, statut 409, avec l’identifiant de la tâche en cours dans ses détails : interrogez cette tâche au lieu d’en lancer une autre.

Chaque clé d’API puise dans deux budgets par minute, et l’organisation dans un troisième.

CompartimentCompteBudget
read, par cléLes requêtes GET300 par minute
write, par cléLes requêtes POST, PUT, PATCH et DELETE60 par minute
org, par organisationChaque appel public, de toute clé ou de tout agent1 200 par minute

Chaque réponse porte deux en-têtes. RateLimit-Policy indique les trois budgets, et RateLimit nomme le compartiment le plus contraint, avec les requêtes restantes et les secondes avant sa remise à zéro.

Au-delà d’un budget, l’API répond TOO_MANY_REQUESTS, statut 429, avec un en-tête Retry-After : attendez ce nombre de secondes avant de relancer.