Skip to content
Spec diff · breaking detection · SemVer · Markdown

API Changelog Generator

Paste two versions of an API spec and get a categorized changelog — breaking changes, additions and non-breaking edits — with a derived SemVer bump and a copy-ready Markdown export. A real recursive diff, run entirely in your browser.

01 · Previous version
Valid JSON
02 · New version
Valid JSON
1
Breaking
2
Added
4
Changed
Suggested bump
MAJOR
Breaking changes present
Breaking
Endpoint removedpaths./legacy/export
Added
Addedcomponents.schemas.Order.properties.currency{"type":"string"}
Endpoint addedpaths./orders/{id}/refund
Changed
Enum value addedcomponents.schemas.Order.properties.status.enum[3]"refunded"
Value changedcomponents.schemas.Order.properties.total.type"integer""number"
Value changedinfo.version"1.4.0""2.0.0"
Value changedpaths./orders/{id}.get.summary"Get an order""Retrieve an order"
Markdown changelog
## v2.0.0 — suggested bump: MAJOR

> 1 breaking · 2 added · 4 changed

### ⚠️ Breaking changes
- Endpoint removed: `paths./legacy/export`

### ✨ Added
- `components.schemas.Order.properties.currency` — Added (`{"type":"string"}`)
- Endpoint added: `paths./orders/{id}/refund`

### 🔧 Changed (non-breaking)
- `components.schemas.Order.properties.status.enum[3]` — Enum value added (`"refunded"`)
- `components.schemas.Order.properties.total.type` — Value changed: `"integer"` → `"number"`
- `info.version` — Value changed: `"1.4.0"` → `"2.0.0"`
- `paths./orders/{id}.get.summary` — Value changed: `"Get an order"` → `"Retrieve an order"`
Field notes

A diff that knows what actually breaks a client

The hard part of an API changelog isn't listing what changed — it's knowing which of those changes will break the people consuming your API. A text diff of two spec files drowns you in formatting noise and can't tell a renamed description from a removed field. This tool runs a real structural diff instead: it walks both JSON documents key-by-key, unions object keys, aligns arrays by index, and reports each difference with its exact dotted path like components.schemas.Order.properties.total — so the output is the set of semantic changes, not lines that moved.

On top of that walk sits a small set of heuristics that mirror how clients actually fail. Removing anything a consumer might depend on — an endpoint, a field, a required entry, an enum value — is breaking. Changing a value's type, say integer to number or string to object, is breaking because deserialization and validation can fall over. Adding a new endpoint, an optional field, or a fresh enum value is backward-compatible. Editing a description or a value while keeping the same type is a non-breaking change. The OpenAPI paths map gets special treatment so endpoint additions and removals lead the changelog, where they belong.

Those three buckets map cleanly onto Semantic Versioning, which is why the tool can suggest a bump you can defend in review: any breaking change forces major, a backward-compatible addition with no breakage means minor, and a release of pure edits is a patch. The Markdown export reproduces the same grouping under a version heading, ready to paste into a CHANGELOG.md, a GitHub release, or a migration guide — the breaking section doubling as your upgrade checklist. Everything runs locally, so even an unreleased proprietary spec never leaves your browser.

For the related views: compare two live responses with the API Response Comparator, drill into structural deltas with the Schema Difference Analyzer, and generate readable reference docs from a whole spec with the OpenAPI Documentation Generator.

API Changelog FAQs

Have more questions? Contact us

Trusted by API & Platform Teams

4.7
Based on 1,190 reviews

We run this before every release to draft the changelog and sanity-check the version bump. It caught a total → number type change a reviewer had missed and correctly flagged it as MAJOR. The Markdown drops straight into our release notes — it's saved us from shipping a silent breaking change twice now.

P
Priya Nair
API platform lead
June 9, 2026

The endpoint added/removed surfacing on the paths map is exactly right — that's the headline of most releases and it's at the top of the diff. Recursive paths down to components.schemas.Order.properties mean I never have to eyeball two specs side by side again. And it's all local, so our private spec never leaves the laptop.

M
Marcus Feld
Backend engineer
May 20, 2026

Great for writing migration guides — the breaking section is basically the checklist. The only thing to watch is enum reordering showing up as changes, but once you know that it's a non-issue. The suggested SemVer bump has settled a few 'is this minor or major' debates in code review.

S
Sofia Reyes
Developer experience engineer
April 15, 2026

A real structural diff with sensible breaking-change heuristics, not a line diff dressed up. Type changes are breaking, added optional fields are minor, description edits are patch — exactly how SemVer is supposed to map. We wired the Markdown export into our release template and stopped hand-writing changelogs.

T
Tobias Lindqvist
Staff engineer
March 2, 2026

Love using our calculator?

Connected instruments

Related API tools

Learn More

Related Articles

Dive deeper with our expert guides and tutorials related to API Changelog Generator

Loading articles...

recursive diff · breaking detection · SemVer · Markdown export · in-browser · Last reviewed: 2026-06