~/tools / Structured Output Schema Checker
Structured Output Schema Checker — Vérifiez un JSON Schema par rapport aux limites d'OpenAI, d'Anthropic et de Gemini
Vérifiez un JSON Schema par rapport aux limites documentées des sorties structurées d'OpenAI, d'Anthropic et de Gemini. Voyez quels mots-clés sont refusés, ignorés ou non documentés avant d'envoyer le schéma à l'API. Rien ne quitte votre navigateur.
Règles vérifiées par rapport à la documentation de chaque éditeur le 2026-10-23.
Non vérifié : la profondeur d'imbrication, la limite sur les longs enum, et tout ce que les éditeurs ne documentent pas. Les éditeurs modifient ces règles ; confirmez donc avec la documentation actuelle.
Tout s'exécute dans votre navigateur. Le schéma n'est pas envoyé.
Les API d'IA peuvent contraindre la réponse d'un modèle à suivre un JSON Schema, mais chaque éditeur n'accepte qu'une partie de JSON Schema, et ces parties diffèrent. Un schéma qui fonctionne chez un éditeur peut être refusé par un autre, ou accepté alors que certaines de ses règles sont discrètement abandonnées. Cet outil lit votre schéma et le vérifie par rapport à ce que dit la documentation de chaque éditeur : les règles obligatoires, comme additionalProperties à false, les mots-clés non pris en charge, les mots-clés acceptés mais non appliqués, et les limites de taille publiées. Les constats sont classés en trois sortes, pour que vous puissiez distinguer une erreur documentée d'un mot-clé que la documentation ne mentionne simplement pas. Les règles ont été vérifiées par rapport à la documentation des éditeurs à la date indiquée sous l'outil.
Cas d'usage
- Vérifier un schéma avant de l'envoyer dans une requête de sortie structurée, pour ne pas découvrir le problème par une erreur 400
- Repérer les mots-clés qu'il faut retirer du schéma et déplacer dans votre propre code de validation
- Comparer ce que OpenAI, Anthropic et Gemini acceptent chacun pour un même schéma
Utilisation
- Collez le JSON Schema que vous comptez envoyer, ou chargez l'exemple.
- Lisez le résultat pour chaque éditeur. Refusé signifie que la documentation indique que le schéma échouera ou doit être modifié. Ignoré signifie que le mot-clé est accepté mais non appliqué. Non documenté signifie que le mot-clé ne figure pas dans la liste des mots-clés pris en charge par l'éditeur.
- Corrigez ce qui est marqué Refusé, puis vérifiez le reste en lançant une vraie requête.
FAQ
Un résultat sans problème signifie-t-il que l'API acceptera mon schéma ?
Non. L'outil vérifie les règles que les éditeurs documentent. Il n'appelle aucune API, et la documentation ne couvre pas tout : un schéma peut donc quand même être refusé. Considérez un résultat sans problème comme « aucun problème connu » et testez avec une vraie requête.
Que signifient Refusé, Ignoré et Non documenté ?
Refusé : la documentation indique que le mot-clé n'est pas pris en charge ou qu'une règle doit être respectée, par exemple additionalProperties doit être false. Ignoré : la documentation indique que le mot-clé est accepté mais non appliqué, si bien que le modèle peut ne pas le respecter. Non documenté : le mot-clé ne figure pas dans la liste des mots-clés pris en charge par l'éditeur ; il peut donc être refusé ou ignoré, et la documentation ne dit pas lequel.
Pourquoi OpenAI exige-t-il que toutes les propriétés soient required ?
En mode strict, OpenAI exige que toutes les propriétés figurent dans required et que additionalProperties soit false. Pour rendre un champ facultatif, la documentation indique d'utiliser une union avec null, par exemple un type valant ["string", "null"].
Mon schéma utilise minimum, maxLength ou similaire. Que faire ?
Anthropic ne prend pas en charge les contraintes numériques ni les limites de longueur des chaînes, et Gemini n'applique pas les limites de longueur. Retirez-les du schéma, décrivez la limite dans le champ description, et vérifiez vous-même la valeur à l'arrivée de la réponse. L'outil JSON Schema Validator peut effectuer cette vérification.
Cet outil vérifie-t-il la récursivité ?
Oui, pour Anthropic, dont la documentation indique que les schémas récursifs ne sont pas pris en charge. OpenAI et Gemini documentent les schémas récursifs ; ils ne sont donc pas signalés.
Qu'est-ce qui n'est pas vérifié ?
La profondeur d'imbrication, la limite sur les longs enum, et tout ce que les éditeurs ne documentent pas. L'outil ne connaît pas non plus les modèles plus récents ni les fonctionnalités ajoutées après la date de vérification ; confirmez donc avec la documentation actuelle lorsque cela compte.
Mon schéma est-il envoyé à un serveur ?
Non. La vérification s'exécute dans votre navigateur.