Know If Your API Change Breaks Clients—Before You Ship

POST /diff with before and after JSON values. The API returns breakingChanges and nonBreakingChanges with types (e.g. FIELD_REMOVED, TYPE_CHANGED, FIELD_ADDED), field paths, values, metadata where useful, plus summary.breakingCount / nonBreakingCount. Deterministic rules—no ML. Stateless; request body up to ~10MB (entire payload).

Try JSON Diff Checker Basic on RapidAPI: 100 requests/month free

Stop eyeballing giant JSON blobs. Fail CI when breakingChanges.length > 0, or gate releases on summary counts—without maintaining a custom diff engine per service.

Real-world use cases

  • API versioning — Compare v1 sample response to v2 candidate before bumping the version.
  • CI/CD gates — Diff golden files against new codegen or serializer output.
  • Contract regression — Catch accidental type drift (number → string) early.
  • Partner integrations — Document what changed between two exported payloads.
  • Post-normalization checks — After normalization APIs, verify shape stability.

Why not a plain text diff?

  • Key order and whitespace shouldn’t drive “changes”
  • Type and nullability matter for compatibility
  • You want breaking vs safe changes labeled consistently

Who this API helps

  • Backend and API platform engineers
  • DevOps and CI maintainers
  • QA automating response regression
  • Product teams reviewing contract evolution

Illustrative diff

Output fragment

breakingChanges: [
  { type: "TYPE_CHANGED", field: "id", ... }
]
nonBreakingChanges: [
  { type: "FIELD_ADDED", field: "email", ... }
]

Summary

summary: {
  breakingCount: 2,
  nonBreakingCount: 1
}

What the API does

POST /diff — Body must include before and after (any JSON values Express can parse: objects, arrays, primitives).

GET /health — Liveness.

This API does not infer schemas, generate OpenAPI, or do semantic “same meaning” matching (e.g. field renames appear as remove + add).

Deterministic output

Same before and after always produce the same change lists and counts.

Request & response

Endpoint: POST https://json-diff-checker-api.p.rapidapi.com/diff with x-rapidapi-key and x-rapidapi-host: json-diff-checker-api.p.rapidapi.com (verify in your RapidAPI app).

· · ·

Try it in the playground

Pick a sample or edit JSON, add your RapidAPI key, run, then copy generated code.

Templates load into the editor; edit before running.

Subscribe on RapidAPI for production quotas.

Get code

Snippets match the playground. Path: /diff.

Integration time: One HTTP POST from CI with two JSON snapshots.

Real-world examples

1. Release gate

Store last prod sample as before; on deploy candidate, POST and fail if summary.breakingCount > 0.

2. Golden file tests

Check test output (after) against committed golden (before) with stable sorting from the API.

3. Filter noise in app code

Allow-list FIELD_ADDED under certain paths; alert on TYPE_CHANGED anywhere.

Pricing & tiers (RapidAPI)

Built for teams running many contract comparisons in CI and staging.

Plans on RapidAPI:

Basic

$0/mo

100 requests/month included

Pro

$9.99/mo

10,000 requests/month included

Mega

$99.99/mo

250,000 requests/month included

Overage and plan changes follow the live RapidAPI listing.

What to expect

200 with validJson: true and populated change lists when both sides parse and compare succeeds. 400 with validJson: false for many client errors. Rare failures may still return the error-shaped body.

About this API

Also known as

JSON diff API, breaking change detector, API contract comparator, structural JSON diff.

See the README for the full list of change type strings and design limitations (no rename detection, no semantic value equality).

Frequently asked questions

  • About 10MB for the whole JSON body (before and after together).
  • No. Stateless in-memory processing.
  • Yes—deterministic output is ideal for gates and golden tests.
  • Removed fields, type changes, root type changes, certain nullability and array structure changes—see change types section.
  • Often HTTP 400 with validJson false, empty changes, and invalidSide for the failing half.
  • No—only two concrete JSON values are compared.
  • On RapidAPI: Basic 100/mo; Pro $9.99/10k; Ultra $49.99/100k; Mega $99.99/250k.
  • Structure and types drive results; you get breaking vs non-breaking classification and paths.