JSON Schema structured-output compatibility checker

Paste a schema to inspect its compatibility with the dated Claude profile. Review findings by JSON Pointer and inspect a draft with a constraint-loss report.

Local schema inspection with a reviewable loss report. JavaScript is required.

How it works

The checker walks schema positions, decodes URI-fragment escapes and records local references, and compares keywords with the linked Claude documentation. It does not traverse example or default values as schemas. Unsupported constraints are removed only in the displayed draft; your original input stays intact.

Removing a constraint weakens validation. Adding additionalProperties: false excludes undeclared keys. Review both kinds of change before use. Counts are integers; there is no rounding.

Worked examples

One numeric constraint and one object restriction

The initial example has age with minimum: 0 and omits additionalProperties. It produces 2 loss findings: remove minimum and add additionalProperties: false.

A closed object with one required string

{"type":"object","properties":{"name":{"type":"string"}},"required":["name"],"additionalProperties":false} has 0 findings and 0 optional properties.

Profile scope

Claude profile checked 2026-11-14. This single-schema checker reports optional-property and union-node counts. Repeated references and combinations of multiple schemas need request-level review. Regex patterns receive manual review even when no known unsupported construct is found. Candidate schemas can still contain blocking findings.

Frequently asked questions

Does a clean report prove the API will accept my schema?
No. This is a subset compatibility lint, not a complete JSON Schema validator or grammar compiler. Request-wide complexity and model support still need checking.
Does the draft preserve validation?
No. The loss report identifies removed constraints and changes to allowed object keys. Validate output against the original schema in your application.
What happens to unknown keywords?
They remain in the draft and receive a manual-review finding. Nothing unknown is silently treated as supported.
Are references fetched?
No. Local JSON Pointer references are checked for resolution and cycles. External references are reported without any network access.
How large can my schema be?
This tool imposes local limits of 100,000 characters, 5,000 schema nodes and 64 nesting levels. These are browser safeguards, not provider limits.

Sources

Last reviewed 2026-11-14; next review due by 2026-12-14. The method is written out above so you can check our math.