Skip to content
100% local

JSON size analyzer

See exactly which keys and branches make a JSON document big.

Input
Output

JSON size analyzer

Paste a JSON document and this tool breaks it down branch by branch, showing exactly how many bytes each key and value contributes to the total. Use it to find what is bloating an API response, a config file or a saved state blob before you trim it — a debug field left in production, a base64 image that snuck into a payload, or a list that grew far past what the client actually needs.

The depth option controls how many levels get expanded before a branch collapses into a single summary row, which keeps a deeply nested document readable. Turn on percentages to see each row's share of the total size at a glance, and sort by size to put the heaviest branches first instead of reading in document order. Group array items to treat a list as one row, or switch it off to see every index broken out individually — useful when one element in a long array is unusually large. Counting key names separately adds a property's own quoted label to its byte cost, which matters more than it looks once a document repeats the same verbose key thousands of times across an array.

Turning on repeated-value flags marks strings and numbers that appear more than once anywhere in the document — a strong signal that the data could be normalized or referenced instead of duplicated. Choose a tree view for a readable outline or a table for a flat, sortable list of paths, types, sizes and counts. Sizes are measured in UTF-8 bytes, not characters, so text with accents or emoji is sized the way it actually stores and transmits.

Everything runs locally in your browser — the JSON you paste, which may include private API data or internal config, is never uploaded anywhere. Copy the report, download it as a .txt file, or send it straight to another tool's input to keep working on the result.

FAQ

Why do the branch sizes not add up exactly to the total?
Each row shows the byte size of that value's own JSON serialization. Structural characters shared between siblings, such as commas and brackets, are counted once in the parent rather than split across every child, so the total reflects the real document size even though individual rows don't sum to it.
What counts as a "repeated value"?
Any string or number that appears more than once anywhere in the document, regardless of which key it sits under. Booleans and null are excluded, since they are repeated by nature and would flag almost every document.
Why are sizes measured in bytes instead of characters?
Bytes reflect what actually gets stored or sent over the network. A character with accents or an emoji can take two to four bytes in UTF-8, so a character count would understate the real size of non-ASCII text.
Can I analyze a very large JSON file?
Yes, though extremely large or deeply nested documents may take a moment to process since everything runs in your browser rather than on a server.
Is my JSON uploaded anywhere?
No. The analysis runs entirely in your browser — your document, including any private data it contains, never leaves your device.