Compare JSON Schema compatibility in both directions.
Compare public or illustrative JSON Schemas. Inspect directional acceptance, validated counterexamples, and undetermined results before changing your integration.
Which compatibility direction should I compare?
For requests, the revised schema should accept the inputs older callers could send. For responses, older consumers must handle the outputs the revised schema permits. A validated counterexample demonstrates a difference; an undetermined result leaves proof unavailable.
The interactive comparator submits public or illustrative JSON Schemas to the comparison service. It is not a complete arbitrary OpenAPI document diff. Do not use a type assertion or an equivalent schema result as a substitute for application tests.
Online OpenAPI and JSON Schema compatibility checks
Use this free API compatibility checker to understand how a contract change affects existing integrations. Replay a captured OpenAPI finding from OpenAI or Sentry, inspect its classification rule, or compare a pair of JSON Schemas. The examples run without an account or repository access. Each result separates contract evidence from the question of whether your application uses the affected operation.
Request narrowing
The revised request schema must accept the inputs existing callers could send. Increasing a minimum, decreasing a maximum, or tightening a string constraint can reject previously valid requests. Check the affected field and the acceptance direction.
Enum value removal
Removing a request enum value leaves callers using that value outside the new contract. Inspect where the value is selected before choosing an alternative; the specification finding does not invent a replacement for your application.
Recorded rule:
request.enum_removedRequired request field addition
Adding a required property, or making an optional request field required, can reject older payloads that omit it. A compatible migration needs an appropriate application value, not simply a placeholder added to satisfy the schema.
Response widening
Existing consumers must handle the outputs allowed by the revised response. A field becoming optional or nullable, a new enum value, or a broader type can invalidate assumptions in parsing, branching, and typed response handling.
Recorded rule:
response.now_optional_or_nullable
The JSON Schema comparison checks directional acceptance and reports equivalent, different, or undetermined. A validated counterexample demonstrates a specific difference; unsupported constructs or missing proof remain undetermined. OpenAPI detector findings have their own recorded classification rules. Schema comparison is not a complete OpenAPI upload diff or proof of repository impact. Use public or illustrative schemas, inspect the evidence, and run your own CI before merging.
Explore API specification history ยท Contract and repository coverage
API compatibility guides and tools
- oasdiff and API code impact analysis answer different questions.
- Detect breaking API changes in a GitHub workflow.
- Why a TypeScript build can pass after an API changes.
- OpenAI OpenAPI breaking changes: a captured response change.
- Sentry OpenAPI breaking changes: removed replay query values.
- Inspect classification rules interactively
- Compare JSON Schemas
- Plan your business evaluation
Rule reference
request.enum_removed: Request enum value removedrequest.now_required: Request property becomes requiredresponse.removed: Response property removedresponse.now_optional_or_nullable: Response property becomes optional or nullablerequest.removed_unknown_strictness: Request property removed, server strictness unknown