postreef
All free tools

Free tool

Gemini-Safe JSON Schema Linter

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.

Why Gemini's responseSchema isn't full JSON Schema

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 unions {"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.
  • Missing type — every node needs exactly one concrete type.
  • Objects without properties, arrays without items — Gemini needs the full shape up front, no open-ended nodes.
  • enum must be a non-empty list of strings, and only next to "type": "string".
  • required naming a property that doesn't exist in 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.

  • additionalProperties
  • pattern
  • minItems
  • uniqueItems
  • default

This 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.

Where this ruleset comes from

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

This tool is free. Full extraction isn't manual.

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.