{"ok":true,"result":{"slug":"json-diff","name":"JSON Diff","summary":"Compare two JSON documents structurally: lists added, removed, changed and moved values with JSONPath-style paths, plus an RFC 6902 JSON Patch that turns the original into the changed document.","description":"Compare two JSON documents by structure, not text. See added, removed and changed paths side by side, match arrays by id, ignore paths and export an RFC 6902 patch.","method":"POST","endpoint":"/api/v1/tools/json-diff","plan":"free","mcpName":"json_diff","input":{"type":"object","additionalProperties":false,"properties":{"original":{"type":"string","description":"The original JSON document.","maxLength":200000},"changed":{"type":"string","description":"The changed JSON document.","maxLength":200000},"arrayKey":{"type":"string","description":"Match arrays of objects by this field (e.g. \"id\") instead of by position, so reordered items show as moved, not changed.","default":"","maxLength":100},"ignorePaths":{"type":"string","description":"Paths to leave out of the comparison, one per line or comma-separated, e.g. $.meta.updatedAt, $.items[*].etag or $..timestamp.","default":"","maxLength":5000}},"required":["original","changed"]},"example":{"original":"{\"name\":\"Ada\",\"roles\":[\"admin\"],\"meta\":{\"updatedAt\":\"2026-01-01\"}}","changed":"{\"name\":\"Ada Lovelace\",\"roles\":[\"admin\",\"editor\"],\"meta\":{\"updatedAt\":\"2026-02-01\"}}","ignorePaths":"$.meta.updatedAt"},"randomOutput":false,"network":false,"docs":"https://pithlab.com/developers/tools/json-diff","page":"https://pithlab.com/tools/json-diff"}}