Compare two OpenAPI specifications

Compare two OpenAPI contracts and flag client-visible changes.

freeworks offlinenothing uploaded
ToolOpenAPI Diff
Input
Output
Put this on your own site

The frame below runs the same code as this page, in the reader's own browser. Nothing is sent to us, and nothing is sent to you.

Pick a dark background and the text and panels follow it, so the frame stays readable on a dark page.

Preview

How it works

Documents are normalized by paths, operations, parameters, bodies, responses, schemas, and security; differences are classified as additions, removals, or behavior changes. Severity reflects whether a client contract narrowed or widened.

  • Removed operations and required inputs are breaking changes.
  • Widening a response is usually safer than narrowing it.

Worked example

Compare API Versions
Detect differences between two versions of an OpenAPI spec
Input
											Input1: {"openapi":"3.0.3","info":{"title":"API","version":"1.0.0"},"paths":{"/users":{"get":{"summary":"List users"}}}}
Input2: {"openapi":"3.0.3","info":{"title":"API","version":"2.0.0"},"paths":{"/users":{"get":{"summary":"List all users"}},"/posts":{"get":{"summary":"List posts"}}}}
										
Output
												Path                        Type     Details
--------------------------  -------  ---------------------------------------------------
$.info.version              changed  Value changed from "1.0.0" to "2.0.0"
$.paths./users.get.summary  changed  Value changed from "List users" to "List all users"
$.paths./posts              added    New property added
											

When to use this

Release CI, gateway migrations, and API version reviews compare OpenAPI.

Edge cases

  • Adding a required request field breaks existing clients.
  • Removing an enum value can break clients.
  • Changing nullable response fields affects generated types.

References