On-demand generator
Generate a test file of any size, instantly
Pick a type and a size and get a direct download URL. Nothing is stored — a Cloudflare Worker streams the bytes as you download, so even multi-gigabyte files are free and instant. Paste the URL into curl, Postman or your test suite.
Build your file
The URL updates as you change the options — copy it straight into a script.
Tip: sizes accept kb, mb and gb
(e.g. 500mb, 2gb). Files are generated deterministically, so the same URL always
returns the same bytes.
Response behaviour
Things a static file can't do — for testing timeouts, retries and error handling.
/slow?size=10mb&bps=50000Throttled download, for timeout testing/truncate?size=10mbDeclares a length, then closes at half/no-content-length?size=5mbChunked, no Content-Length header/delay?ms=5000Stalls before the first byte/status/503Any HTTP status code/redirect/5An N-hop redirect chainRequest inspection & auth httpbin-style
Echo back what your client actually sent — useful when debugging headers, auth and CORS.
/anythingEchoes your method, headers, query & body/headersThe request headers you sent/ipYour IP address/uuidA random UUIDv4/basic-auth/user/pass401 unless correct Basic auth is sent/cors?origin=echoConfigurable CORS headers & preflightMock REST API
Three deterministic collections — 250 users, 500 products, 1,000 posts. The same id always returns the same record, so you can assert against it. Nothing is stored; writes are echoed back with the correct status.
/api/usersA paginated collection. Also /api/products and /api/posts/api/users/42One record — out-of-range ids return a JSON 404/api/products?page=2&limit=50Pagination, with Link and X-Total-Count headers/api/posts?q=cacheCase-insensitive search across text fields/api/products?sort=-priceSort by any field; prefix - for descending/api/users?delay=2000Slow the response, to test loading statesWrites: POST /api/users returns 201 with a
Location header, PUT/PATCH return 200 and DELETE
returns 204 — all echoing your body back, all completely stateless.
Unreliable on purpose
For retry logic, backoff and timeout handling — the failures a healthy staging environment never gives you.
/flaky?rate=30Fails 30% of requests with 503 + Retry-After/flaky?rate=50&status=500Choose the failure status code/flaky?rate=50&seed=7Add a seed to make the outcome reproducible/jitter?min=100&max=3000Random latency in a range, every requestFull list at
/endpoints — everything is stateless and free.
Prefer a ready-made file, or your own machine?
Browse the deterministic catalog — every file has a published SHA-256 — or copy commands to build files locally.