Documentation API

Authentification et clés

Une clé par outil, deux plafonds par clé, une révocation immédiate. Comment obtenir une clé, comment la borner, et ce que vous recevez quand une borne est atteinte.

Deux en-têtes acceptés

La passerelle accepte la clé dans l'un ou l'autre de ces deux en-têtes. Les deux sont équivalents ; x-api-key existe pour les clients écrits pour l'API d'Anthropic, qui ne savent envoyer que celui-là.

En-têtes
Authorization: Bearer VOTRE_CLE_NETAIX

# ou, pour un client au format Anthropic :
x-api-key: VOTRE_CLE_NETAIX

Si les deux en-têtes sont présents, c'est x-api-key qui est lu.

Créer une clé

Les clés se créent dans l'application, jamais par l'API : une API qui peut émettre ses propres clés transforme une clé divulguée en accès permanent.

  1. Connectez-vous sur app.netaix.fr.
  2. Ouvrez la rubrique Connecteurs, puis le volet Pour les informaticiens.
  3. Onglet Intégrations, bloc Jetons d'accès : bouton Générer.
  4. Donnez à la clé un nom qui dit à quoi elle sert (par exemple Automatisation factures, Mon poste de travail).
Important

La clé n'est affichée qu'une seule fois, au moment de sa création. Elle ne peut pas être relue ensuite : seul son début reste visible, pour que vous puissiez reconnaître laquelle est laquelle. Si vous l'avez perdue, révoquez-la et créez-en une autre.

Deux points qui peuvent vous arrêter avant d'y arriver :

  • L'accès développeur doit être ouvert sur votre organisation. Sans lui, la création renvoie un refus. Pour un compte Développeur ouvert depuis la page Développeurs, c'est prévu dans le parcours ; sur une organisation existante, demandez-le nous.
  • La création demande votre mot de passe, et votre code à usage unique si vous avez activé la double authentification. Une session volée ne suffit donc pas à créer une clé. Chaque création déclenche un courriel d'alerte sur votre compte.

Deux plafonds par clé

Chaque clé porte son propre plafond de crédits, sur deux fenêtres. Ils protègent de ce qu'un plafond d'organisation ne voit pas : une clé divulguée, ou une boucle dans un agent, qui consommerait toute l'enveloppe sans jamais dépasser aucun seuil global.

FenêtreDéfaut sur un compte DéveloppeurRemise à zéro
Jour5 000 créditsÀ minuit, heure universelle (UTC)
Cycle20 000 créditsAu début de chaque cycle de facturation
  • Ces défauts ne s'appliquent qu'aux comptes Développeur. Les clés d'un espace avec abonnement naissent sans plafond propre : l'enveloppe de l'abonnement les borne déjà.
  • Vous réglez ou retirez chaque plafond dans l'application. Le plus petit plafond réglable est de 100 crédits.
  • Une clé sans plafond propre reste bornée par l'enveloppe de son organisation.
  • Les plafonds comptent les appels payés en crédits Netaix. Si l'organisation utilise ses propres clés chez les fournisseurs de modèles, ces appels ne passent pas par les crédits et ne sont donc pas plafonnés ici.

Lire ses plafonds avec sa clé

Une clé peut connaître sa propre situation sans passer par l'application : GET /v1/netaix/usage rend, pour la clé qui appelle, le consommé, le plafond et le restant du jour et du cycle. C'est la façon d'afficher une jauge dans votre interface, ou de faire ralentir un traitement automatique avant qu'il se fasse refuser. Le détail des champs est dans la référence.

L'alerte à 80 %

Quand une clé atteint 80 % de l'un de ses plafonds, un courriel part vers son détenteur, une fois par fenêtre. Le seul geste proposé est de régler le plafond. Cette alerte existe pour qu'un plafond ne se découvre pas par une panne.

Ce que vous recevez au dépassement

Code HTTPCode d'erreurCe que cela veut dire
429key_daily_quota_exceededLe plafond du jour de cette clé est atteint. Il se libère à minuit UTC.
429key_quota_exceededLe plafond de cycle de cette clé est atteint.
429quota_exceededC'est l'enveloppe de l'organisation qui est épuisée, pas le plafond de la clé.
402topup_requiredCompte Développeur sans recharge payée : aucun appel n'est encore possible.
402insufficient_balanceCompte Développeur dont le solde prépayé est épuisé. Rechargez pour reprendre.
À coder côté client

Ces trois 429 portent "type": "insufficient_quota". C'est ce que les bibliothèques officielles lisent comme un refus définitif : elles ne le réessaient pas, contrairement à un 429 de débit. Un réessai en boucle sur ces codes ne fera rien passer.

Révoquer

La révocation se fait dans le même écran, et elle est immédiate : l'appel suivant qui porte cette clé reçoit un 401. Révoquez sans hésiter, c'est le geste prévu, et créer une clé de remplacement prend quelques secondes.

Bonnes pratiques

  • Une clé par outil, par environnement et par projet. C'est ce qui rend une révocation indolore : vous coupez l'outil concerné, pas tous les autres. C'est aussi ce qui rend le relevé de consommation lisible, puisqu'il se ventile par clé.
  • Un plafond serré sur la clé d'un outil en recette. Un traitement par lot qui part en boucle coûte alors au plus le plafond du jour.
  • Jamais une clé dans un dépôt de code, un carnet de notes partagé ou une page web. Variable d'environnement, ou coffre de secrets.
  • Jamais une clé dans un code exécuté par le navigateur de vos utilisateurs. Tout ce qui part dans une page web est lisible. Appelez la passerelle depuis votre serveur.
  • Remplacez les clés à intervalle régulier, et à chaque départ d'une personne qui en détenait une.

Échecs d'authentification

CodeCause
401Tout refus de clé, sans distinction : aucun en-tête d'authentification, clé inconnue, révoquée, expirée, mal formée, ou dépourvue des droits nécessaires. Code invalid_api_key.
429Trop d'échecs d'authentification consécutifs depuis la même origine. Code too_many_auth_failures, avec un en-tête Retry-After.
Un seul refus, volontairement

Ces refus sont indiscernables : même statut, même message, même code. Un refus qui dirait « expirée » ou « révoquée » confirmerait à qui essaie des clés au hasard que celle-ci a existé. Le motif réel est enregistré de notre côté : si vous êtes bloqué sans comprendre, écrivez-nous avec l'heure de l'appel et le début de la clé. Dans tous les cas, un 401 ne se réessaie pas, il se corrige ; un 429 après des échecs répétés se résout en attendant la durée indiquée par Retry-After.