100 KB sample files
A 102,400-byte file that sits exactly on the default request-body limit of Express. Available in 39 formats.
Download a 100 KB file
Each file is exactly 102,400 bytes and is a valid file of its format.
| File | Format | Size | Contents | Download |
|---|---|---|---|---|
| 100 KB PDF samplesample-pdf-100kb.pdf | 100 KB102,400 bytes | Pages: 19 | Download PDF | |
| 100 KB TXT samplesample-txt-100kb.txt | TXT | 100 KB102,400 bytes | Numbered lines: 1,028 | Download TXT |
| 100 KB CSV samplesample-csv-100kb.csv | CSV | 100 KB102,400 bytes | Data rows: 782 | Download CSV |
| 100 KB JSON samplesample-json-100kb.json | JSON | 100 KB102,400 bytes | Records: 297 | Download JSON |
| 100 KB XML samplesample-xml-100kb.xml | XML | 100 KB102,400 bytes | Elements: 320 <customer> records | Download XML |
| 100 KB PNG samplesample-png-100kb.png | PNG | 100 KB102,400 bytes | 212 × 160 px | Download PNG |
| 100 KB JPG samplesample-jpg-100kb.jpg | JPG | 100 KB102,400 bytes | 580 × 434 px | Download JPG |
| 100 KB ZIP samplesample-zip-100kb.zip | ZIP | 100 KB102,400 bytes | Entries: 4 | Download ZIP |
| 100 KB BIN samplesample-bin-100kb.bin | BIN | 100 KB102,400 bytes | Pseudo-random bytes | Download BIN |
| 100 KB JSONL samplesample-jsonl-100kb.jsonl | JSONL | 100 KB102,400 bytes | Lines: 302 | Download JSONL |
| 100 KB SQL samplesample-sql-100kb.sql | SQL | 100 KB102,400 bytes | Statements: 1 CREATE TABLE, 456 INSERT | Download SQL |
| 100 KB LOG samplesample-log-100kb.log | LOG | 100 KB102,400 bytes | Lines: 627 | Download LOG |
| 100 KB GZ samplesample-gz-100kb.gz | GZ | 100 KB102,400 bytes | Uncompressed size: 1,180,002 bytes | Download GZ |
| 100 KB TAR samplesample-tar-100kb.tar | TAR | 100 KB102,400 bytes | Entries: 2 (README.txt, payload.bin) | Download TAR |
| 100 KB DOCX samplesample-docx-100kb.docx | DOCX | 100 KB102,400 bytes | Headings, paragraphs, a bulleted list, a table and one image | Download DOCX |
| 100 KB XLSX samplesample-xlsx-100kb.xlsx | XLSX | 100 KB102,400 bytes | Data rows: 1,451 | Download XLSX |
| 100 KB PPTX samplesample-pptx-100kb.pptx | PPTX | 100 KB102,400 bytes | Slides: 5 | Download PPTX |
| 100 KB EPUB samplesample-epub-100kb.epub | EPUB | 100 KB102,400 bytes | Chapters: 6 | Download EPUB |
| 100 KB GIF samplesample-gif-100kb.gif | GIF | 100 KB102,400 bytes | 203 × 152 px | Download GIF |
| 100 KB WebP samplesample-webp-100kb.webp | WebP | 100 KB102,400 bytes | 213 × 159 px | Download WebP |
| 100 KB BMP samplesample-bmp-100kb.bmp | BMP | 100 KB102,400 bytes | 213 × 159 px | Download BMP |
| 100 KB SVG samplesample-svg-100kb.svg | SVG | 100 KB102,400 bytes | Shapes: 1,391 circles and rectangles | Download SVG |
| 100 KB MP3 samplesample-mp3-100kb.mp3 | MP3 | 100 KB102,400 bytes | 6.4 s | Download MP3 |
| 100 KB WAV samplesample-wav-100kb.wav | WAV | 100 KB102,400 bytes | 0.6 s | Download WAV |
| 100 KB MP4 samplesample-mp4-100kb.mp4 | MP4 | 100 KB102,400 bytes | 640 × 360 px | Download MP4 |
| 100 KB HTML samplesample-html-100kb.html | HTML | 100 KB102,400 bytes | Sections: 181 | Download HTML |
| 100 KB Markdown samplesample-md-100kb.md | Markdown | 100 KB102,400 bytes | Sections: 221 | Download Markdown |
| 100 KB RTF samplesample-rtf-100kb.rtf | RTF | 100 KB102,400 bytes | Sections: 288 | Download RTF |
| 100 KB YAML samplesample-yaml-100kb.yaml | YAML | 100 KB102,400 bytes | Records: 426 | Download YAML |
| 100 KB TOML samplesample-toml-100kb.toml | TOML | 100 KB102,400 bytes | Tables: 633 [[record]] entries | Download TOML |
| 100 KB INI samplesample-ini-100kb.ini | INI | 100 KB102,400 bytes | Sections: 888 | Download INI |
| 100 KB CSS samplesample-css-100kb.css | CSS | 100 KB102,400 bytes | Features: Custom properties, class selectors, rem and px units | Download CSS |
| 100 KB JS samplesample-js-100kb.js | JS | 100 KB102,400 bytes | Array entries: 833 | Download JS |
| 100 KB SRT samplesample-srt-100kb.srt | SRT | 100 KB102,400 bytes | Cues: 881 | Download SRT |
| 100 KB VTT samplesample-vtt-100kb.vtt | VTT | 100 KB102,400 bytes | Cues: 880 | Download VTT |
| 100 KB ICS samplesample-ics-100kb.ics | ICS | 100 KB102,400 bytes | Events: 300 | Download ICS |
| 100 KB EML samplesample-eml-100kb.eml | EML | 100 KB102,400 bytes | Body paragraphs: 306 | Download EML |
| 100 KB GeoJSON samplesample-geojson-100kb.geojson | GeoJSON | 100 KB102,400 bytes | Features: 529 | Download GeoJSON |
| 100 KB OBJ samplesample-obj-100kb.obj | OBJ | 100 KB102,400 bytes | Vertices: 1,944 | Download OBJ |
What is a 100 KB test file?
At 102,400 bytes this file is precisely the "100kb" default limit of the Express JSON and URL-encoded body parsers. A body of this size is accepted, and one byte more is refused, which makes it an exact boundary test.
It is also close to the point at which Gmail clips long HTML emails, about 102 KB, so it is useful when testing email templates and generated messages.
In everyday terms: A short PDF report, or a medium-quality photo at screen size.
Limits near 100 KB
Default limits in widely used software that a 100 KB file is useful for testing. Defaults change between versions, so confirm them in the documentation for the version you run.
| System | Limit | What happens at 100 KB |
|---|---|---|
| Express body parsers | 100 KB (102,400 bytes) by default | A request body of exactly this size passes; anything larger returns 413 Payload Too Large. |
| Gmail message clipping | About 102 KB of HTML | Longer messages are truncated behind a "view entire message" link. |
| Amazon DynamoDB items | 400 KB per item | 100 KB fits; the 500 KB sample does not. |
Good for
- Boundary tests for JSON API body limits
- Testing image uploads at typical web sizes
- Checking email size handling
Transfer time
How long 102,400 bytes take to move, before any compression.
| 1 Mbit/s (slow mobile or uplink) | under 1 second |
|---|---|
| 10 Mbit/s (basic broadband) | under 1 second |
| 100 Mbit/s (fast broadband) | under 1 second |
Related
Next sizes: 50 KB sample files and 500 KB sample files.
100 KB files: questions
- Will uploading this file through a form hit a 100 KB limit?
- Yes, usually. A multipart form adds boundaries and headers around the file, so the request body is a little larger than the file itself and crosses a limit that the bare file would just meet.