SOFTWARE TESTING GUIDE
Detecting API response changes
A practical workflow for comparing saved API response envelopes. Capture responses from two deployments, compare status, headers and body, and decide what needs review.
What the tool compares
The API response comparison tool accepts two JSON objects, each with:
status: an integer HTTP status codeheaders: an object of header names and valuesbody: the JSON body value
It compares status numerically, header names case-insensitively, and the body structurally. It does not call either API.
Worked example
Baseline response from version 1.0.0:
{
"status": 200,
"headers": {
"content-type": "application/json",
"date": "Mon, 01 Jun 2026 10:00:00 GMT"
},
"body": {
"id": 42,
"name": "Ada",
"active": true
}
}
Candidate response from version 1.1.0:
{
"status": 200,
"headers": {
"Content-Type": "application/json",
"date": "Mon, 01 Jun 2026 10:01:00 GMT"
},
"body": {
"id": 42,
"name": "Ada Lovelace",
"active": true,
"plan": "pro"
}
}
The tool reports:
- Changed:
/body/name— “Ada” → “Ada Lovelace” - Added:
/body/plan— value “pro” - Header names are normalised to lowercase, so the content-type case change is ignored.
If you add the ignore path /headers/date, the timestamp change is also excluded.
What to ignore
Some fields change on every request even when the API contract is stable. Common examples:
/headers/date/body/requestId/body/generatedAt
Ignore paths use JSON Pointer syntax and exclude the matched path and its descendants. Add one path per line.
What the tool cannot decide
- Whether a changed value breaks a client contract.
- Whether a removed field is safe to remove.
- Whether a new status code or header is intentional.
- Business correctness, authentication, latency or side effects.
Use the diff as a starting point for human review, consumer tests and contract checks.
Try it
Open the API response comparison tool and click “Load example” to see the same comparison. For plain JSON objects without the status/header envelope, use the JSON diff tool.
Limitations
- Only JSON bodies are compared; non-JSON responses are not supported.
- Array order is significant and JSON numbers use JavaScript number precision.
- The tool does not make network requests or validate the API schema.
- Large responses are rejected above 2 MB.