Use-case guide macOSWindows

Flag likely breaking API changes before release

Label likely breaking OpenAPI or JSON Schema changes with rule codes and see the breaking count in the result. With Pro on Windows, run the same comparison in CI: identical schemas pass, and --fail-on breaking fails the job only on breaking or unclassified changes, with rule codes in JUnit and SARIF. The rules are heuristic, so a passing check still calls for contract review.

The job to be done

Catch the contract change before a client does.

An OpenAPI file can change in a pull request without anyone noticing that a response field disappeared, a query parameter became required, or an enum lost a value. In a long specification, edits like these hide among formatting changes and new endpoints.

Diff Anything compares the released specification and the candidate as parsed documents in API Schema mode and labels changes that match its breaking-change rules with a rule code. The labels give you a short list to read first; deciding whether clients are affected remains your call.

Diff Anything comparing two JSON files, with user records matched by id and a changed role value selected
Semantic mode lists changed paths and values. Here a Compare by id rule matches user records, so a reordered list shows only the real changes. View full size

Recommended path

From the released spec to a reviewed list of changes.

Use the specification clients depend on today as the left side and the proposed version as the right side.

  1. Open both specifications

    Choose OpenAPI, Swagger, or JSON Schema files written in JSON or YAML. Auto recognises them from their top-level openapi, swagger, or $schema key and opens API Schema mode.

  2. Read the verdict

    A note above the result gives the count of potentially breaking changes, or says the schemas are equivalent. When no rule matches, it reminds you that manual contract review is still required.

  3. Filter to Breaking

    Choose Breaking in the Differences pane filter. Each entry shows its rule code, such as API001 for a removed operation or API004 for a new required input, and the path of the change.

  4. Read what the rules leave unlabelled

    Switch back to All. A changed pattern or a renamed parameter appears without a rule code, and inserting a parameter can shift the positions of the ones after it.

  5. Gate the build

    With Pro in the Microsoft Store version on Windows, run --mode api --fail-on breaking, or set failOn: breaking for the pair in a batch manifest that writes JUnit or SARIF. Identical schemas pass, and the job fails only on breaking or unclassified changes.

Capabilities involved

How the three capabilities fit an API review.

Limits to know

Read the labels as a starting point.

The rules judge a change by its location in the document. They do not resolve $ref and treat request and response schemas alike, so some flagged items are harmless, and some breaking edits, such as a renamed parameter, a removed components entry, or added additionalProperties: false, carry no rule code.

A passing --fail-on breaking check means no rule matched, not that clients are unaffected. Keep a person in the loop for changes the rules cannot judge.

Semantic rules such as Ignore paths do not apply in API Schema mode. Free shows complete API results in the app within the 5 MB and 10-per-day limits; the api command-line mode and batch manifests need Pro.

Related manual

Use Diff Anything from the CLI, Git, and CI

Run repeatable comparisons, read highlighted terminal output, interpret exit codes, integrate with Git, and publish machine-readable CI results.

Its sections cover find the installed executable, enter explicit cli mode, interpret exit codes, choose output for the consumer, configure git difftool, use diff anything for git diff, run batch manifests, debug automation failures. Use it when you are ready to reproduce this workflow with your own project data.

Read the guide

Direct answers

Questions about this use case.

Which API description formats can I compare?

OpenAPI 3, Swagger 2.0, and JSON Schema documents in JSON or YAML. API Schema mode also accepts GraphQL types and SQL CREATE TABLE statements, with a narrower set of checks.

Does a flagged change always break clients?

No. A flag means the change matched a rule, for example API008 when security requirements are added or changed. Read the location and decide whether existing requests or responses are affected.

Can I use the command line as a release gate?

Yes, with Pro on Windows. --mode api --fail-on breaking, or failOn: breaking in a batch manifest, passes identical schemas and non-breaking changes and fails on breaking or unclassified ones. Because the rules are heuristic, treat it as a first gate and still review contract changes.

Can I run API comparisons on a Mac?

Yes, in the app on macOS and Windows. Command-line runs, Git difftool setup, and CI use are available with the Microsoft Store version on Windows.

Free & Pro: what’s included

Available on the Mac App Store and Microsoft Store. Free desktop use lets you try every comparison engine for files up to 5 MiB per side and 10 new comparison sessions per local day; collection previews show the first 100 items and PDF previews show the first 3 pages. The free CLI supports text and JSON. A one-time Pro purchase removes the preview and session limits and unlocks larger sources within technical limits, saved profiles and history, report export, three-way merge, folder synchronization, batch manifests, trusted preprocessors, and every CLI mode.

Next

Explore more Diff Anything workflows.

Back to use cases