Les modifications qui concernent les clients de l'API sont listées ici, des plus récentes aux plus anciennes. Les ajouts qui ne changent pas le comportement existant (un nouveau champ facultatif, un nouvel endpoint) sont listés aussi, pour que vous voyiez ce qui est devenu disponible.
2026-10-03
- Les requêtes de liste mal formées sont refusées avec
422et undetailexplicite au lieu de500: une condition qui n'a pas 3 ou 4 éléments, un élément defiltersqui n'est ni un tableau ni un objet, un objet de groupe sans clé ou avec plusieurs clés, un groupeAND/ORdont la valeur n'est pas un tableau non vide, des groupes imbriqués sur plus de 32 niveaux, unlimit_fromnégatif et unlimit_toinférieur àlimit_from. - Les réponses
429du limiteur de débit ont le corps{"detail": "Too many requests"}comme toutes les autres erreurs (la cléreasona disparu) ;Retry-Afterest inchangé. - Une portée de clé API manquante reçoit partout la réponse
401API key is invalid. - Les endpoints
.../getet.../deleteacceptent aussi l'identifiant dans un corps JSON{"id": "<uuid>"}; le paramètre de requêteentity_idfonctionne toujours. L'absence des deux, ou deux identifiants différents, donne422. Un corps qui leur est envoyé doit être du JSON. - Nouveaux
POST /user_credit/get_selfetPOST /version(GET fonctionne toujours et partage la limite de débit) ;/versionest limité au niveau statique (1 200 requêtes par minute). POST /ai_tool/get_allne renvoie plus les outils masqués ou obsolètes.- Nouveau
POST /conversation/count(portéeayeto.conversation, même corps que/conversation/find). - Le coût d'une conversation (
POST /usage/cost/conversation) est la somme des crédits réellement débités, et non un recalcul aux prix actuels ; il inclut les tokens texte des modèles d'image et n'échoue plus avec404pour les modèles supprimés depuis. - Le chat avec un modèle qui ne peut pas streamer enregistre la réponse et la renvoie (auparavant, la réponse était perdue et la réponse HTTP renvoyait le message de l'utilisateur).
- Les pièces jointes du chat sont vérifiées et enregistrées avant toute autre chose : une
pièce jointe refusée avec
422(file is too large, un quota de stockage, des données invalides) ne laisse plus derrière elle le message de l'utilisateur. Un base64 mal formé renvoie422invalid base64 data in attachment '<filename>'(ouinvalid data URI in attachment '<filename>') au lieu de500. Le champsizedes pièces jointes n'est plus obligatoire et est ignoré. - Un message de suite dans une conversation créée dans une organisation s'exécute dans cette
organisation lorsque la requête n'en indique aucune (facturé là, appartenance requise) ;
indiquer une autre organisation renvoie
422the conversation belongs to another organization. La conversation d'un autre utilisateur est refusée avec403avant l'enregistrement de toute pièce jointe. - Le stream structuré du chat (
runner_version"2") n'envoie plus le champ inutiliséiteration. - Base de données booster : créer un enregistrement avec une clé qui existe déjà renvoie
422a record with key '<key>' already existsau lieu de500;limit_fromsanslimit_torenvoie jusqu'à 100 enregistrements à partir delimit_from(limit_fromdoit être inférieur à1000) ; les filtresAND/ORmal formés renvoient422au lieu de500. - Conversion de fichier en texte : les types de fichiers non pris en charge renvoient
422unsupported file type '<mime>'et ne sont pas facturés. - Workflows : un fichier désigné par son identifiant dans l'entrée d'une exécution reste celui de l'utilisateur et n'est plus supprimé avec l'exécution (les fichiers envoyés en base64 appartiennent toujours à l'exécution).
2026-10-02
- Les règles de collection de la base de données booster ne s'appliquent qu'aux panneaux en mode base de données publique ; en mode privé, elles sont ignorées. Les utilisateurs avec qui un panneau est partagé en lecture seule peuvent désormais écrire ses enregistrements et prendre des verrous (dans les deux modes).
POST /tts/mp3exige la nouvelle portéeayeto.ttsetPOST /data-loader/loadla nouvelle portéeayeto.data_loader. Les clés API existantes ont reçu les deux portées ; les clés créées par l'association d'un client de bureau (ayeto.connectoruniquement) ne peuvent plus appeler ces endpoints.POST /tts/mp3etPOST /data-loader/loadacceptent unorganization_idfacultatif : la requête s'exécute dans l'organisation et est facturée sur le crédit de l'utilisateur dans celle-ci (administrateurs et membres uniquement ; les invités et les non-membres reçoivent403).POST /tts/mp3renvoie422avecnot enough user credit/not enough organization creditlorsque le crédit est épuisé, au lieu de500Failed to generate audio.- Le chat refuse un modèle désactivé par les administrateurs (demandé directement ou comme
modèle de l'assistant) avec
422model is disabled, et un modèle automatique sans modèle disponible avec422model is not available;model is deprecatedest renvoyé avant que la conversation ne soit modifiée. - Lire la conversation d'un autre utilisateur avec
/conversation/get(refusé avec404) ne met plus à jour son champaccessed. - L'en-tête
languaged'une requête API ne change plus la langue préférée de l'utilisateur dans l'application AYETO (auparavant, chaque requête l'enregistrait, et une requête sans l'en-tête la remettait en anglais). POST /assistant/avatar/getaccepte les clés API avec la nouvelle portéeayeto.assistant, qui peut désormais être sélectionnée lors de la création d'une clé (elle couvre aussi/assistant/find).- Nouvelle documentation de l'API v3, qui remplace les notes bêta précédentes.
- Les workflows sont disponibles dans l'API : lecture, exécution, exécutions en streaming,
approbations, modification, publication, export et import (
ayeto.workflow,ayeto.workflow.write). - API privée de la base de données booster avec ses propres portées (
ayeto.booster.database,ayeto.booster.database.write).