JSON size

Type characters, a model, and overhead. 1000 and utf8min give 1000 B. 1000 and utf16 give 2000 B. 500 and 64 give 564 B. A heuristic, not JSON.stringify.

Characters times bytes per character plus overhead. The calculator does not run JSON.stringify. Base64 overhead sits on Base64 size.

Input data

Additional options (optional)

Results

Enter data and click Calculate.

How it works

JSON size in this calculator multiplies characters by a model. 1000 and utf8min give 1000 B. 1000 and utf16 give 2000 B. 500, utf8min and 64 give 564 B. utf8min is 1 B/char, utf16 is 2, utf8max is 4. This is not stringify of a document.

Field json-len is the length. Select json-encoding in the examples is utf8min or utf16. Field json-overhead adds fixed bytes. 1000 × 1 + 0 = 1000. 1000 × 2 = 2000. 500 × 1 + 64 = 564. Custom B/char is not in these three cards.

1000 B is not a Blob from JSON.stringify. 2000 B does not come from a parser. 564 B is not a file from disk. You type the length. The calculator does not read an object.

Base64 size next door counts the 4-on-3 overhead. JWT token size estimates token characters. Here 1000 characters stay 1000 B at utf8min.

Type 1000, leave utf8min and overhead 0, then Calculate. The result is 1000 B. A comma is not needed. Zero characters leave 0 B. This is not a JSON parser.

1000 and utf8min give 1000 B. 1000 and utf16 give 2000 B. 500 and 64 give 564 B. Another model at 1000 changes the calculator.

Formula

bytes = chars × B/char + overhead. utf8min=1, utf16=2, utf8max=4. A heuristic, not stringify.

How to use

  1. Type 1000 characters and leave utf8min and overhead 0.
  2. Click Calculate. The result is 1000 B.
  3. 1000 and utf16 give 2000 B. 500 and overhead 64 give 564 B.
  4. Characters times bytes, not JSON.stringify.
  5. Base64 overhead sits on Base64 size.

1000 chars at utf8min = 1000 B

Characters times B/char plus overhead. 1000 and utf8min give 1000 B. This is not stringify.

JSON
A heuristic from the fields. utf8min is 1 B/char. The calculator does not read an object.
size
The result in B. 500 and 64 give 564 B. Not a Blob from stringify.
utf16
Two bytes per character. 1000 and utf16 leave 2000 B. Not a parser.

Examples

Example 1

  • 1000 chars
  • utf8min
  • overhead 0

1000 B

What JSON size at 1000 characters and utf8min? 1000 B. Characters times bytes, not stringify.

Example 2

  • 1000 chars
  • utf16
  • overhead 0

2000 B

What about 1000 and utf16? 2000 B. Two bytes per character.

Example 3

  • 500 chars
  • utf8min
  • overhead 64

564 B

What about 500 and overhead 64? 564 B.

Related calculators

Common questions

What about 1000 characters and utf8min?

1000 B. 1000 × 1 + 0. Not JSON.stringify.

What about 1000 and utf16?

2000 B. Two bytes per character, overhead 0.

What about 500 and overhead 64?

564 B. 500 × 1 + 64.

Does the calculator stringify?

No. No object and no JSON.stringify. Length only.

What is utf8max?

4 B per character. The examples keep utf8min or utf16.

Why overhead?

Fixed bytes on top of length. 64 at 500 gives 564 B.

Does zero characters count?

Yes as 0 B plus overhead. A blank field is a number error.

Where do I size Base64?

On Base64 size. Here the B/char model stays.

Is this a JSON parser?

No. A character heuristic. Bad JSON still yields the same bytes from length.

Knowledge sources

The calculator counts bits, bytes or throughput from your numbers. Below are SI and bit definitions (NIST).

Page updated in 2026.

What JSON size means in practice

Payload size is bytes of JSON text on the wire or on disk — not the number of fields. This calculator estimates character count × bytes/char + optional overhead.

Default UTF-8 min (1 B/char ASCII) fits typical APIs. It is a heuristic: measure precisely with TextEncoder / Buffer.byteLength(JSON.stringify(...)).

What increases JSON payload size

  • Long key names repeated on every array item.
  • Deep nesting — each level adds {}, [], commas.
  • Long strings, especially with escaping (", \, controls).
  • Pretty-print whitespace vs compact minified JSON.

Pretty JSON vs minified (and vs transfer)

Pretty-print is for humans. APIs usually send minified JSON. This tool only sees the length you enter — compare both versions separately.

  • Count pretty characters → estimate A.
  • Minify (JSON.stringify without spaces) → estimate B — usually much smaller.
  • Gzip lowers transfer; gateway limits often still count uncompressed bytes.

Repeated keys vs values

An array of 1000 objects with userId, createdAt, status pays for each key name a thousand times. Shorter keys or binary protocols cut that cost; JSON stays readable but verbose.

Values matter too: Base64 inside a string first grows ~33% (separate calculator), then adds to JSON length.

Escaping, Unicode, and transport

  • UTF-8 min — ASCII = 1 B/char (typical APIs).
  • UTF-8 max — pessimistic up to 4 B (emoji, rare characters).
  • UTF-16 — some JS runtime string metrics; not the same as HTTP body bytes.
  • Escaping quotes and backslashes makes strings longer than the user’s raw text.

Examples: characters → estimate (UTF-8 min)

Enter your length in the form — the table shows order of magnitude.

ScenarioChars (approx.)Est. bytesNote
Small API object200200ASCII, minified
Pretty one object500500whitespace included
Array 100× same keys80008000keys ×100
String with many \"+escmore than contentescaping costs

Illustrative — your result depends on the character count and model you choose.