Sample files you can hotlink or download
loremfile.dev: sample files you can hotlink, or download for tests that run offline.
Free and CC0, with stable URLs. PDFs, images, audio, video, office documents, data files, text in many encodings and exact-size binary blobs. Open CORS, byte ranges and a SHA-256 manifest. No ads, no signup, no keys.
- Hotlink the URL from a page or a test:
https://loremfile.dev/pdf/a4-3pages.pdf - Action: in a GitHub
workflow,
uses: kumarprabhashanand/loremfile/action@action-v1downloads files and checks each hash - pip:
pip install loremfile, thenloremfile get --format pdf - npm:
npx loremfile get --format pdf - MCP:
npx -y loremfile mcporuvx loremfile mcpgives an agent three read-only tools
Production is checked from outside every day, and what the check finds is public: status.
Find a file
Browse by format below, or see all formats in one table.
Formats
Data
Edge cases
- EDGE 21
By task
- Sample files for testing file uploads: Files on the edge of every upload check: exact size limits, mislabelled types, rotated and CMYK images, hostile and encrypted archives. Free, CC0, hotlinkable.
- Sample files for testing parsers and error handling: Files that must load correctly, must fail, may be recovered or split readers, each with its known contents or measured outcome. Free, CC0, hotlinkable.
- Sample files for testing media playback and seeking: Video and audio that test playback and seeking: where the index sits, range requests, codecs, missing tracks and adaptive HLS. Free, CC0, hotlinkable.
Popular
-
pdf/a4-3pages.pdf4.4 KB (4,351 bytes)A4 portrait, 3 pages of Lorem Ipsum in the Helvetica core font with page numbers. No embedded fonts.
-
png/640x480.png4.2 KB (4,208 bytes)A colour-bar test card with a border, centre cross and a label giving the dimensions and mode. 640x480, RGB.
-
jpg/1920x1080.jpg56.8 KB (56,817 bytes)A colour-bar test card with a border, centre cross and a label giving the dimensions and mode. 1920x1080, quality 85, 4:2:0 chroma subsampling.
-
mp4/720p-5s.mp42 MB (1,974,574 bytes)1280x720 at 30 fps, five seconds, H.264 plus AAC. The default sample if you need just one.
-
mp3/sine-440hz-30s.mp3480.8 KB (480,788 bytes)A 440 Hz sine wave, thirty seconds, 128 kbps stereo, long enough to test seeking and scrubbing.
-
csv/people-1000.csv249.6 KB (249,645 bytes)1,000 rows of the shared synthetic people dataset with a header row. The same rows appear in every other people-1000 fixture.
-
json/people-1000.json512.7 KB (512,687 bytes)An array of 1,000 people objects, pretty-printed with two-space indentation.
-
docx/1page.docx37.2 KB (37,209 bytes)One page: a heading and three paragraphs of Lorem Ipsum in the default Word styles. The page count is what Word renders it as; .docx stores no page count of its own.
-
xlsx/1sheet-1000rows.xlsx156.7 KB (156,719 bytes)One sheet: a bold, frozen header row plus a thousand records of the shared people dataset. The first ten rows are the same records as the ten-row fixture.
-
bin/10mib-plus-1.bin10.5 MB (10,485,761 bytes)Exactly one byte over 10mib, for testing an upload limit's boundary rather than its middle.
Use it from anywhere
JavaScript
const response = await fetch("https://loremfile.dev/json/people-1000.json");
const people = await response.json();
Python
import urllib.request
with urllib.request.urlopen("https://loremfile.dev/csv/people-1000.csv") as response:
data = response.read()
curl
curl -O https://loremfile.dev/pdf/a4-3pages.pdf
For agents
Read llms.txt for a short summary, llms-full.txt for every file, or manifest.json for sizes, hashes and measured properties. Each format also has its own list at /{format}/index.json.
Rules
- Stable URLs. The bytes at a published path do not change; a fix is a new path.
- Rate limit. Stay under 30 requests per second per IP. In CI, download once and cache.
- Licence. Every file is CC0 1.0: use it for anything, no credit needed.
- Host. If this host is ever unavailable, the repository README states the current canonical host.