JSON Diff Online

Run a JSON diff online without installing packages. Paste two payloads and review changed paths, added fields, and removed keys.

Paste your JSON → Get results instantly (no signup)

⚡ Instant resultsNo signupRuns in your browser
Try examples:

Compare these JSON inputs and return a report of changed, added, and removed fi...

{
"plan": "pro",
"features": {
"aiDraft": true,
"history": true,
"apiAccess": true
},
"limits": {
"documents": 100
}
}
Output
1{
2 "changed": [
3 {
4 "kind": "changed",
5 "path": "plan",
6 "before": "starter",
7 "after": "pro"
8 },
9 {
10 "kind": "changed",
11 "path": "features.aiDraft",
12 "before": false,
13 "after": true
14 },
15 {
16 "kind": "changed",
17 "path": "limits.documents",
18 "before": 10,
19 "after": 100
20 }
21 ],
22 "added": [
23 {
24 "kind": "added",
25 "path": "features.apiAccess",
26 "value": true
27 }
28 ],
29 "removed": [
30 {
31 "kind": "removed",
32 "path": "features.legacyExport",
33 "value": true
34 }
35 ]
36}

Love the result?

Use this exact pipeline in your app, backend, or LLM workflow.

No setup needed. Works with curl, Node, Python.

Uses example data. For edited input, copy from the playground.

Read integration guide

Works with:

  • Online JSON comparison
  • Browser-based diff review
  • Nested object changes
  • No-upload debugging

Example: input → output

JSON diff online

Use this JSON diff online page when you want a quick browser-based comparison without installing a package or writing a script. Paste the original JSON into one side, paste the updated JSON into the other, and review a structured report of changed paths.

This page is focused on no-upload, online JSON comparison. It uses the same engine as the JSON diff tool, but the content is written for people searching specifically for a fast JSON diff online workflow.

How to run an online JSON diff

Start with valid JSON on both sides. The baseline can be an old API response, an expected fixture, a previous config, or a saved export. The updated side can be the new response, actual fixture, changed config, or regenerated export. Run the diff and scan for added fields, removed keys, and changed values.

For cleaner output, format both sides with JSON Formatter and validate them with JSON Validator before comparing.

Online JSON diff example

If features.aiDraft changes from false to true, or limits.documents changes from 100 to 500, a structured JSON diff reports those paths directly. That is easier to review than a raw text block where indentation and surrounding unchanged fields compete for attention.

Common use cases

  • Compare JSON API responses after a deploy.
  • Review feature flag exports.
  • Check generated JSON from two prompts.
  • Compare staging and production config snapshots.
  • Find field changes in saved fixtures.

Why online JSON diff matters

Online JSON diff is useful when you need a fast answer before building a permanent workflow. A browser tool lets you inspect the shape, understand the difference, and decide whether the comparison should become a test, pipeline, or API check later.

Related tools

Related comparisons

Read more on the blog

Advanced usage (optional)

JSON Diff / Change Report

v1.0.0
Compare
objectarray

Description

JSON Diff / Change Report

Compare two JSON inputs and output a structured report or focused diff subset. Accepts a primary input (the new JSON) and secondary input (the old JSON), then shows what changed, was added, or was removed between them.

How It Works

This utility requires two inputs — primary (the "new" version) and secondary (the "old" version). It performs a deep comparison and outputs results based on the selected mode.

Diff Modes

Report

Return a structured report with changed, added, and removed arrays. Entries include dot paths, kind, and either before/after values or the added/removed value.

Changed Only

Return the subset of the new JSON that differs from the old JSON. Modified and added fields are included; removed fields are excluded because they do not exist in the new JSON.

Added Only

Show only fields that exist in the primary input but not in the secondary. Useful for detecting new additions.

Removed Only

Show only fields that exist in the secondary input but not in the primary. Useful for detecting deletions.

Full Annotated

Show all fields with _diff_ markers indicating their status: "unchanged", "changed", "added", or "removed". Provides a complete picture of all differences.

Configuration

FieldTypeDefaultDescription
Diff Modeenumreportreport, changed-only, added-only, removed-only, or full-annotated

Use Cases

Version Comparison

  • Config changes: Compare two versions of a configuration file to see what changed
  • API responses: Diff API responses before and after a deployment
  • Schema evolution: Identify added or removed fields between schema versions

Data Validation

  • Migration verification: Compare source and target data after migration
  • Sync detection: Find out-of-sync records between two data sources
  • Audit trail: Track exactly which fields were modified in an update

Debugging

  • State inspection: Compare application state before and after an action
  • Response diffing: Compare expected vs. actual API responses
  • Regression detection: Identify unexpected changes in output data

Configuration

NameTypeDefaultDescription
Diff Modeenumreportreport: return changed, added, and removed entries with paths. changed-only: show the new JSON subset with modified and added values. added-only: show only new keys. removed-only: show only deleted keys. full-annotated: show all with _diff markers. report changed-only added-only removed-only full-annotated

Examples

AI Prompt
Compare these JSON inputs and return a report of changed, added, and removed fields.
{
"plan": "pro",
"features": {
"aiDraft": true,
"history": true,
"apiAccess": true
},
"limits": {
"documents": 100
}
}
Output
1{
2 "changed": [
3 {
4 "kind": "changed",
5 "path": "plan",
6 "before": "starter",
7 "after": "pro"
8 },
9 {
10 "kind": "changed",
11 "path": "features.aiDraft",
12 "before": false,
13 "after": true
14 },
15 {
16 "kind": "changed",
17 "path": "limits.documents",
18 "before": 10,
19 "after": 100
20 }
21 ],
22 "added": [
23 {
24 "kind": "added",
25 "path": "features.apiAccess",
26 "value": true
27 }
28 ],
29 "removed": [
30 {
31 "kind": "removed",
32 "path": "features.legacyExport",
33 "value": true
34 }
35 ]
36}
Config
Diff Mode
report

API Usage

POST /api/v1/utilities/compare.json-diff
Example:
curl -X POST https://your-domain.com/api/v1/utilities/compare.json-diff \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"inputs":{"primary":{"plan":"pro","features":{"aiDraft":true,"history":true,"apiAccess":true},"limits":{"documents":100}},"secondary":{"plan":"starter","features":{"aiDraft":false,"history":true,"legacyExport":true},"limits":{"documents":10}}},"config":{"mode":"report"}}'
Response
1{
2 "changed": [
3 {
4 "kind": "changed",
5 "path": "plan",
6 "before": "starter",
7 "after": "pro"
8 },
9 {
10 "kind": "changed",
11 "path": "features.aiDraft",
12 "before": false,
13 "after": true
14 },
15 {
16 "kind": "changed",
17 "path": "limits.documents",
18 "before": 10,
19 "after": 100
20 }
21 ],
22 "added": [
23 {
24 "kind": "added",
25 "path": "features.apiAccess",
26 "value": true
27 }
28 ],
29 "removed": [
30 {
31 "kind": "removed",
32 "path": "features.legacyExport",
33 "value": true
34 }
35 ]
36}