What Apibreak Is

Apibreak is a client-side-only OpenAPI/Swagger breaking-change detector. You paste or upload two versions of an API specification — yesterday's and today's, main and a branch, one tag and another — and the browser parses both, performs a semantic structural diff (not a text diff), and classifies every difference into three buckets:

Everything runs locally in the browser. No spec data ever leaves your machine. No account, no sign-up, no server-side storage.

How the Diff Engine Works

The engine does not read the spec as text. It parses both documents into a structured internal representation, then compares them node by node.

1. Parse and validate

Accepts JSON and YAML. Loads js-yaml from CDN for YAML parsing; uses native JSON.parse for JSON. Rejects anything that is not a valid OpenAPI 3.x or Swagger 2.0 document with a clear error message.

2. Normalize and resolve

Both specs are normalised to a common internal representation: $refs resolved from components/schemas (OpenAPI 3.x) or definitions (Swagger 2.0), Swagger 2.0 structures aligned with the OpenAPI 3.x shape, descriptions and examples stripped for structural comparison. Each spec becomes a schema tree.

3. Walk and classify

Every difference is detected at four levels and classified:

4. Render and export

Results shown in three collapsible sections with before/after values for each breaking change. Copy as Markdown with one click, or download as a .md file.

How to Use Apibreak

No account, no installation. Open the app and compare two specs in under a minute.

  1. Open the app.

    Navigate to apibreak.agen2ic.ai/app in any modern browser. The tool loads immediately — nothing to install, no sign-up.

  2. Prepare two spec versions.

    From your repository: git show HEAD~1:openapi.yaml > spec-old.yaml and git show HEAD:openapi.yaml > spec-new.yaml. Both specs must be fully self-contained — all $refs must resolve within the file.

  3. Paste or upload.

    Paste Spec A (old/yesterday) into the left textarea and Spec B (new/today) into the right textarea. Alternatively, click Upload file above each panel to load from disk. The tool accepts JSON and YAML, OpenAPI 3.x and Swagger 2.0.

  4. Click Compare.

    Click the Compare button or press Ctrl+Enter. The engine parses both specs, resolves $refs, walks the schema tree, and classifies every difference.

  5. Read the report.

    Breaking changes appear first (most important), then additive, then cosmetic (counted only). Each breaking change shows the path, method, what changed, and before/after values. Use Copy report to grab Markdown for a PR comment, or Download .md to save a file.

The Three Buckets — Reference

Bucket Meaning Examples Visual
BREAKING An existing client stops working on the new spec. A change that the old client did not expect and cannot handle.
  • Endpoint removed
  • Path parameter renamed
  • Response field removed
  • Parameter made required
  • Type narrowed (string → enum)
  • Status code removed
  • Default value removed
Red
ADDITIVE New capability that existing clients ignore. Old clients continue to function without changes.
  • New endpoint
  • New optional parameter/header
  • New response body field
  • New status code
  • Type widened (enum → string)
Green
COSMETIC No effect on the API contract. Purely informational changes that do not affect clients. Counted, not individually listed.
  • Description rewording
  • Example value changed
  • Property reordering
  • Version bump
  • Server URL change
  • Whitespace/formatting
Grey

What Apibreak Does NOT Do

These are design boundaries, not future features. Apibreak is a focused diagnostic tool:

Input & Output Reference

Accepted input formats

FormatSpec versionsSource
JSON (.json)OpenAPI 3.0, OpenAPI 3.1, Swagger 2.0Paste text or upload file
YAML (.yaml, .yml)OpenAPI 3.0, OpenAPI 3.1, Swagger 2.0Paste text or upload file

Output channels

ChannelDescription
ScreenCategorized report rendered on the page with three collapsible sections. Breaking changes show path, method, before/after values.
CopyButton copies a formatted Markdown report to clipboard via navigator.clipboard.writeText().
DownloadButton triggers download of the report as a .md file via Blob + URL.createObjectURL().

Example fixtures

The app includes built-in fixtures accessible via Load examples buttons on the app page:

Known Limitations

Apibreak is a best-effort structural analysis tool. The following are documented limitations of the current build:

Important: The classification engine is a best-effort analysis and is not infallible. The report is not a substitute for human review. If you believe a classification is incorrect, email apibreak@agen2ic.ai with the two specs (or a minimal reproduction) and we will investigate.

Technical Architecture

Apibreak is a fully static site. The architecture is minimal by design: