SYSTEM TIME --:--:-- IST · 152 TOOLS LIVE · RUNS IN YOUR BROWSER — NOTHING UPLOADED
← Back to DATA TOOLS
DATA TOOLS

Compare Two API Responses — Free JSON Diff

Compare two JSON API responses and see exactly which fields changed.

🔒 Nothing you enter on this page is sent anywhere.

This tool runs entirely as JavaScript in your browser. both JSON documents you paste is never transmitted over the network to this site's server or any third party, and is never written to a cookie, to browser storage, or to any log — there is nothing on our end to breach, subpoena, or accidentally leak, because it was never received in the first place. Closing or refreshing this tab clears it completely.

This describes only what this specific tool does with what you type into it. It doesn't cover the rest of this site — see the Privacy Policy for how analytics and advertising cookies are handled elsewhere.

About this tool

Paste two JSON objects — an older one and a newer one — and see exactly which fields were added, removed, or changed, including inside nested objects and arrays, not just at the top level.

This is the JSON sibling of this site's CSV Diff Tool: comparing two JSON API responses, two versions of a config file, or two exports needs to walk the actual nested structure rather than compare line by line like a plain text diff would, since JSON's formatting (spacing, key order, line breaks) can differ between two files that represent identical data.

Each change is reported by its exact path — a nested field shows as something like user.address.city, and an array element shows as items[2] — so you can see precisely where in the structure something changed, even in a large, deeply nested document.

Nothing here touches a server — both JSON documents are parsed and compared entirely in your browser.

Frequently asked questions

Does key order matter?

No — two objects with the same keys and values in a different order are correctly treated as identical. Only actual differences in values, additions, or removals are reported.

What happens with nested objects and arrays?

The comparison walks the full structure recursively — a change deep inside a nested object or a specific array element is reported with its exact path, like user.address.city or items[2], not just flagged at the top level.

What if a whole object or array is removed?

It’s reported once as a single removal at that path, showing the entire removed value — not fragmented into a separate line for every field that used to be inside it.

Does this upload my JSON anywhere?

No — both documents are parsed and compared entirely in your browser. Nothing is sent to a server.

Other countdown scenarios

Related tools