How to use Response Size Analyzer
- Pick the source: paste a response body (stays in your browser) or enter a public URL.
- Optionally paste the response headers to include header overhead and Content-Type.
- Click "Analyze" to see raw, minified, gzip and brotli sizes side by side.
- Open "Largest JSON fields" to find the properties worth trimming or paginating.
- Apply the notes (compression, minification, sparse fieldsets) and re-check.
Response Size Analyzer features
- Paste a body privately, or fetch a public URL through the relay
- Raw bytes, characters, header overhead and total transfer size
- gzip and brotli size estimates from byte entropy and repetition (no upload)
- JSON structure weight: minified size, whitespace share, key count and depth
- Ranks the JSON fields that contribute the most bytes
- Actionable notes: enable compression, minify, paginate or trim fields
Response Size Analyzer example
A pretty-printed product list
Input:
{
"data": [ { "id": 1, "name": "Sample product 1", "description": "…" }, … ],
"meta": { "page": 1, "total": 6 }
}Output:
Body: 3.9 KB · Headers: 142 B · Total: 4.0 KB
gzip (est.): 1.1 KB (72% smaller) · brotli (est.): 0.9 KB
JSON minified: 3.1 KB (20% whitespace)
Largest fields: data 97% · data[0].description 15% · data[0].images 8%Frequently asked questions about Response Size Analyzer
How is the gzip size estimated?
Locally, from the byte entropy and repetition in the body — no compressor runs in the browser. Real gzip/brotli results usually land within ±15% of the estimate.
What counts as header overhead?
Every header line ("Name: value" plus CRLF). Large cookies and verbose custom headers travel with each request and response, so a 4 KB header block on a 2 KB JSON body is worth fixing.
Which JSON fields are listed as largest?
The tool serialises each property and ranks them by UTF-8 bytes, including nested paths and the first items of arrays, so you can see which fields dominate the payload.
Does fetch mode download the compressed or raw body?
The relay requests an identity encoding so the raw size can be measured; the origin's Content-Encoding header tells you whether it normally compresses.
Is my pasted body uploaded anywhere?
No. Paste mode runs entirely in your browser; only fetch mode sends the URL to the relay.
Technical notes
The compression estimate combines order-0 Shannon entropy of the body with the share of repeated 8-character windows, a cheap proxy for LZ77 back-references. It is deterministic and runs on the first 256 KB, then scales to the full length.
Field weights are computed by serialising each property with JSON.stringify and counting UTF-8 bytes, including the key and separator. Arrays are measured as a whole and their first 20 object items are explored for nested paths.