BandwidthGuard — Stop paying for bloated API payloads

Stop paying for bloated API payloads

What is this body?

Request = what a client sends to the backend. Response = what the API returns. Advice and copy-optimize follow this choice.

Response body

Valid JSON — returned by the API

Samples:

Pretty printing costs +904 B vs minified (2.13 KB).

Size analysis

Measured in your browser, nothing uploaded

Raw
3.01 KB
3,082 bytes
Gzip
0 B
0 bytes
Brotli (est.)
0 B
0 bytes
Kilobytes3.01 KB
Megabytes0.0029 MB
Gzip ratio1% smaller
Brotli ratio1% smaller
52score

Trimmable

Bloat score weighs whitespace, null fields, base64 blobs, verbose timestamps and repeated keys against the total payload size.

Strings1.91 KBNumbers4 BObjects108 BArrays9 BWhitespace904 BOther104 B

Serialization & Compression Matrix

Live benchmark across text, binary, and stream compression codecs

Raw JSON

Text

Uncompressed original payload

3.01 KB

3,082 bytes on wire

Minified JSON

Text

Whitespace stripped

2.13 KB29%

2,178 bytes on wire

MessagePack

Binary

Standard compact binary JSON equivalent

0 B

0 bytes on wire

CBOR

Binary

Concise Binary Object Representation (RFC 8949)

0 B

0 bytes on wire

Gzip (Level 6)

Compressed

Ubiquitous HTTP/1.1 & HTTP/2 compression

0 B

0 bytes on wire

Brotli (est.)

Compressed

Modern web standard, higher ratio for text

0 B

0 bytes on wire

Zstandard (est.)

Compressed

Next-gen HTTP/3 compression — estimated from Brotli ratio

0 B

0 bytes on wire

Field-level size breakdown

Top JSON fields and nested paths contributing the most bytes to your payload

Field / PathCountSize% of Total
results×12.10 KB70%
results[*].preferences×8528 B17%
results[*].created_at×8312 B10%
results[*].updated_at×8312 B10%
results[*].email_address×8280 B9%
results[*].full_name×8216 B7%
results[*].last_login_ip×8160 B5%
results[*].preferences.newsletter×8144 B5%
results[*].avatar_url×8136 B4%
results[*].preferences.locale×8128 B4%

Traffic simulator

Model your monthly load

50,000
10010M
20
1100

What-if scenarios

Monthly bandwidth

86.11 GB

3082 bytes per response

Monthly requests

30.00M

20/user/day × 30 days

Estimated peak RPS

23

uniform distribution, 2× peak factor

Mobile & Network Latency Simulator

Estimated download times for 3.01 KB on the wire, including TCP slow-start round trips

Slow 3G

Emerging markets / weak mobile signal (400 Kbps, 400ms RTT)

462 ms1 RTT
Transfer: 62msRTT: 400ms

Fast 3G

Typical 3G connection (1.6 Mbps, 150ms RTT)

165 ms1 RTT
Transfer: 15msRTT: 150ms

4G / LTE

Standard mobile LTE (12 Mbps, 50ms RTT)

52 ms1 RTT
Transfer: 2msRTT: 50ms

5G / Fiber

High-speed broadband or 5G (100 Mbps, 15ms RTT)

15 ms1 RTT
Transfer: 0msRTT: 15ms

Satellite / Starlink

Satellite link with propagation delay (25 Mbps, 220ms RTT)

221 ms1 RTT
Transfer: 1msRTT: 220ms

Monthly cost comparison

Estimates · 86.11 GB egress · best value is per architecture group

ProviderPlanIncludedEgress costRequest costTotal monthlyPer 1M requests
Edge & CDN
Cloudflare CDNCloudflare does not bill for CDN cache egress globally on any plan tier. Workers, R2, and Images are separate meters.Best Value
CDN (Free / Pro / Biz zones)Unmetered CDN egress$0.00

$0.00 / GB

$0.00

$0.00

$0.00$0.00
Azure CDNStandard Microsoft CDN Zone 1 (NA/EU) list egress is $0.081/GB; Zone 2 (APAC/Japan) is $0.117/GB; Zone 3 (LATAM) is $0.160/GB.
Microsoft StandardNone$6.97

$0.081 / GB

$0.00

included

$6.97$0.23
GCP Cloud CDNNorth America/Europe cache egress: $0.08/GiB; Asia-Pacific: $0.12/GiB; South America: $0.15/GiB.
Cache egressNone$6.89

$0.080 / GB

$22.50

$0.0075 / 10k

$29.39$0.98
AWS CloudFrontAlways-free 1 TB/month globally. Baseline US/EU is $0.085/GB; APAC (India/Japan/Singapore) averages $0.120–$0.140/GB; LATAM is $0.110/GB.
Pay-as-you-go1 TB / month (Always Free)$0.00

$0.085 / GB

$30.00

$0.0100 / 10k

$30.00$1.00
FastlyNorth America & Europe is $0.12/GB; Asia/ANZ is $0.19/GB; South America is $0.19/GB. Requests are $0.0075/10k.
Pay-as-you-go$50 free trial credit$10.33

$0.120 / GB

$22.50

$0.0075 / 10k

$32.83$1.09
Frontend & Serverless Cloud
VercelPro includes 1 TB of Fast Data Transfer per month globally; overage is flat $0.15/GB worldwide across edge regions.Best Value
Pro1 TB Fast Data Transfer$0.00

$0.150 / GB

$0.00

not modeled

$0.00$0.00
NetlifyPro includes 1 TB bandwidth/month globally. Overage is billed at flat $0.20/GB standard PAYG worldwide.
Pro ($19/seat)1 TB Bandwidth included$0.00

$0.200 / GB

$0.00

included

$0.00$0.00
Azure Static Web AppsStandard plan includes 100 GB bandwidth/month; overage is billed at Azure data transfer rates ($0.087/GB Zone 1; $0.12/GB Zone 2; $0.18/GB Zone 3).
Standard100 GB included / month$0.00

$0.087 / GB

$0.00

included

$0.00$0.00
SupabasePro includes 250 GB database and API egress per month globally; overage is flat $0.09/GB across all project regions.
Pro ($25/mo)250 GB unified egress$0.00

$0.090 / GB

$0.00

included

$0.00$0.00
RailwayOutbound internet egress is billed at flat $0.10/GB globally across US, EU, and APAC clusters.
Hobby / Pro$5 free credit (~50 GB)$3.61

$0.100 / GB

$0.00

included

$3.61$0.12
RenderPro workspaces include 25 GB outbound per month; overage is flat $0.15/GB across US, EU, and Singapore regions.
Pro workspace25 GB included$9.17

$0.150 / GB

$0.00

included

$9.17$0.31
Backend Origin & VPS
AWS EC2 / BackendAWS provides 100 GB/month free internet egress. Baseline US East/EU is $0.090/GB; APAC (Tokyo/Singapore/India) is $0.114–$0.120/GB; São Paulo (LATAM) is $0.150/GB.Best Value
Internet Egress100 GB / month (Always Free)$0.00

$0.090 / GB

$0.00

included

$0.00$0.00
Azure VMs / BackendAzure provides 100 GB/month free egress. Zone 1 (US/EU) is $0.087/GB; Zone 2 (APAC/Australia/India) is $0.120/GB; Zone 3 (Brazil/LATAM) is $0.181/GB.
Internet Egress100 GB / month (Always Free)$0.00

$0.087 / GB

$0.00

included

$0.00$0.00
GCP Compute / Cloud RunGoogle Cloud provides 100 GB/month free egress. NA/Europe is $0.120/GB; APAC is $0.120–$0.190/GB; São Paulo (LATAM) is $0.150/GB.
Internet Egress100 GB / month (Always Free)$0.00

$0.120 / GB

$0.00

included

$0.00$0.00
DigitalOceanBasic Droplets include 1 TB (1,000 GB) of outbound transfer per month globally; overage is flat $0.01/GB ($10/TB) in all data centers worldwide (NYC, SFO, AMS, FRA, SGP, BLR, SYD).
Droplets ($6/mo)1,000 GB included$0.00

$0.010 / GB ($10/TB)

$0.00

included

$0.00$0.00
Hetzner CloudEU CX-class clouds include 20 TB outbound data; overage is €1/TB (~$0.001/GB). In US and Singapore regions, 1 TB is included.
Cloud CX20 TB included (EU) / 1 TB (US)$0.00

$0.001 / GB (€1/TB)

$0.00

included

$0.00$0.00
Fly.ioNorth America/Europe outbound egress is $0.02/GB; Asia-Pacific is $0.04/GB; South America/India is $0.12/GB.
Pay as you goNone (new orgs)$1.72

$0.020 / GB

$0.00

included

$1.72$0.06

Estimates, not invoices. List prices verified 2026-08-23 for US & Europe. Excludes compute, storage, seats, and enterprise discounts. CDN, serverless, and origin hosts are grouped separately as their architectures and pricing structures differ.

Optimization recommendations

This is an API response — do not change the contract unless clients can accept it

Minify is always included (same JSON, less whitespace). Contract changes stay off until you tick them. Gzip/Brotli, binary formats, and key renames cannot be applied in the copied text — change the server or serializer.

Minify JSON

904 B · 29.3%

Strip indentation and newlines. Same data — this is always applied when you copy.

Always applied

Convert repeated objects to columnar JSON

714 B · 23.2%

results has 8 uniform items. Converting to {columns, rows} eliminates key repetition.

Columnar encoding replaces object keys on every row with a single header row and rows array. Client deserializers must support this.

Don't repeat the same nested object on every row

528 B · 17.1%

preferences ×8 is identical on each item. Lift it to a default or omit it on the list.

If every row has the same nested object, send it once or omit it on the list. Confirm the client can live without it per row.

Keep PII off the list payload

440 B · 14.3%

Looks like personal data: email_address, last_login_ip. Prefer a detail endpoint instead of repeating them on every row.

List screens rarely need email, IP, or phone. Only drop them if no client reads those keys.

Remove null fields

312 B · 10.1%

16 null values can be omitted entirely.

Clients may still read this key. Only drop it if the UI does not need to tell null apart from a missing field.

This list is already paged — slim each row

308 B · 10.0%

Showing 8 of 128. Don't add more per-row fields; use a detail route for the rest.

Do this in code / on the server

Shorten repeated key names

272 B · 8.8%

email_address → email, last_login_ip → ip, preferences → prefer. Rename in the serializer — not applied automatically.

Do this in code / on the server

Shorten repeated keys

247 B · 8.0%

The same object shape repeats many times; key names dominate the payload. Rename in code — not applied automatically.

Do this in code / on the server

Use Unix timestamps instead of ISO 8601

166 B · 5.4%

16 ISO date strings shrink by roughly 40%.

Only convert if clients already parse numbers. Date pickers and OpenAPI schemas often require ISO strings.

Omit false / 0 / empty-string defaults

144 B · 4.7%

8 default values can be left off if missing means the same thing.

Clients often treat a missing key as false/0/"". Only drop defaults if the UI already does that.

Approved rewrite (minified · 0/6 contract changes ticked): 2.13 KB vs 3.01 KB original.

API Optimization & Bandwidth FAQ

Engineering reference and frequently asked questions for API performance