OpenAPI 3.2 to 3.1 compatibility checker

Paste an OpenAPI JSON document for a field-level downgrade review. Accepts 3.2.x and 3.1.x; rules are pinned to OpenAPI 3.2.1 and target 3.1.1; it does not rewrite your document.

Paste JSON to inspect downgrade risks locally. No document or reference is uploaded.

How it works

The scanner visits known OpenAPI objects and reports selected 3.2 additions by JSON Pointer. Payload examples and arbitrary extension data are excluded. Counts are exact; no rounding applies. References are not resolved; local definitions are scanned in place and external references are counted separately.

A finding requires human migration review. A zero count only means no covered features were found. Run your normal specification validator and consumer tests after migration. JSON input is limited to 1 MB, 10,000 lines, 50,000 nodes, 100 nesting levels and 256 findings; an exceeded limit stops the check.

Worked examples

Streaming response

A 3.2 response with a description and one Media Type Object containing itemSchema: {type: "object"} produces 1 finding. Its per-item streaming contract needs review.

Tag hierarchy

A tag containing name, summary, parent and kind produces 3 findings. An ordinary operation summary produces 0 findings.

Coverage

Checks include document identity, tag metadata, server names, QUERY and additional operations, querystring and cookie serialization, streaming schemas, reusable media types and references, multipart encodings, structured examples, response summaries and omitted descriptions, security metadata and device flow, URI security references, discriminator fallback, and XML nodeType. This is a feature inventory, not full schema or semantic validation. Custom vocabularies and behavior changes without a covered field require separate review.

Frequently asked questions

Can I just change openapi to 3.1.1?
A version string change does not translate features. Resolve each finding and test the result with the intended consumer.
Does this accept YAML?
This tool accepts JSON only. Export or convert your YAML to JSON first; the related converter can help.
Why is a property called itemSchema not reported?
A property name inside a JSON Schema properties map is payload data, not a Media Type Object field.
Are external references downloaded?
No. Inspect referenced documents separately or supply an appropriately bundled document. Local references are not followed, although component definitions are inspected.
Does a zero count guarantee compatibility?
No. This scanner does not validate schema correctness, custom dialects or a particular vendor’s implementation.

Sources

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