What is API testing?
API testing checks a service through its interface rather than its screens: send a request with a chosen method, headers and body, then verify the status code, the response headers, the body's structure and values, and the time it took. Because it runs below the UI, it is faster, more stable and catches integration defects earlier — which is why regression suites are built API-first.
Read the guide: What is API Testing? How to Test a REST API
How to use API Response Comparator
- Paste response A (e.g. staging) and response B (e.g. production).
- Keep "ignore volatile fields" on, add any extra ignore paths, and choose array-order handling.
- Compare. The summary tells you whether the responses are equivalent; the table lists each difference with its path.
- Use the line view for a visual diff and download the table as CSV.
API Response Comparator features
- Semantic JSON comparison — key order and formatting never count as differences
- Ignore volatile fields (ids, timestamps, etags, tokens, cursors) with one checkbox
- Ignore paths with patterns: $.meta.requestId, $.items[*].updatedAt, **.etag or bare key names
- Optional array-order insensitivity and null-equals-missing mode
- Difference table (only in A / only in B / changed / type changed), ignored-field list and a line diff
API Response Comparator example
Staging vs production
Input:
A: { "status": "paid", "customer": { "id": "cust_9" }, "updatedAt": "2025-08-30T10:00:00Z" }
B: { "status": "PAID", "customer": { "id": "cust_9", "tier": "gold" }, "updatedAt": "2025-08-31T09:12:44Z" }Output:
Different · Added in B 1 · Changed 1 · Ignored: $.updatedAt
$.status changed "paid" → "PAID"
$.customer.tier only in B – → "gold"Frequently asked questions about API Response Comparator
What does "ignore volatile fields" do?
It skips keys that normally differ between environments and requests — ids, timestamps (createdAt, updatedAt…), etags, request/trace ids, tokens, cursors — so the diff shows meaningful differences only.
How do ignore paths work?
One pattern per line: an exact JSON path ($.meta.requestId), array wildcards ($.items[*].updatedAt), deep wildcards (**.etag) or a bare key name to ignore it everywhere.
Does key order matter?
No — the comparison is semantic. Enable "Ignore array order" if your API returns lists in non-deterministic order.
Why is a type change highlighted separately?
A value that changed from number to string (or object to null) usually breaks clients, so it is counted as a type change rather than a simple value change.
Technical notes
Ignored fields are removed from both documents before the structural diff runs. Volatile-key detection uses a curated regular expression (id, uuid, createdAt, updated_at, etag, requestId, nonce, token, cursor…).
References
- RFC 9110: HTTP SemanticsThe meaning of HTTP methods, header fields, status codes and content negotiation, independent of the wire version.
- OpenAPI SpecificationThe standard for describing REST APIs: paths, operations, parameters, schemas, responses and security schemes.
- OWASP Cheat Sheet Series: REST SecuritySecurity rules for REST APIs: HTTPS, authentication on every request, input validation, safe error responses, rate limiting.