Free tool
Paste a JSON Schema and see exactly what Google Gemini's structured output will reject, and what it will quietly ignore. Nothing leaves your browser.
Gemini-safe
No rejected keywords, no dead ones. This schema will reach Gemini exactly as written.
Gemini's structured output (responseSchema) accepts a narrow subset of JSON Schema. Everything outside that subset doesn't degrade gracefully — the field is either rejected outright when you submit the schema, or it's silently stripped by whatever SDK you're calling through and has no effect at all. A schema that "looks right" can fail in either of those two very different ways, and this tool tells you which.
Errors
Gemini rejects the schema outright. The API call fails before any extraction happens.
{"type": ["string", "null"]} is rejected. Express optionality by leaving the field out of required instead — Gemini simply omits it when there's nothing to say.null as a type or enum member — same fix: omit the field from required rather than allowing null.properties, arrays without items — Gemini needs the full shape up front, no open-ended nodes."type": "string".properties.Warnings
The schema compiles and the call succeeds — but these keywords never reach the model. They're dead weight, not bugs, so nothing breaks. They just don't do what they look like they do.
additionalPropertiespatternminItemsuniqueItemsdefaultThis is deliberate on the provider side, not a bug to route around: enforcing something like minItems against a model's output would pressure it to fabricate data just to hit the count.
This is the exact rule engine Post Reef runs at submit time on every caller-supplied schema, before a paid extraction is even queued — not a reimplementation. When Gemini's structured output changes, this page changes with it.
Post Reef
Drop the same kind of URL into Post Reef and get back transcript, comments, media and typed JSON — against any JSON Schema you supply, no scraping code required.