HTTP & Networking
Endpoints for testing HTTP clients, status codes, and headers directly.
Status & redirects
Control the exact status code and redirect behavior of a response.
- easy Status code echo — Returns the requested HTTP status code. Try /http/status/{code}.
- easy Redirect chain — Issues N sequential 302 redirects. Try /http/redirect/{n}.
- easy Redirect to URL — Redirects to any http(s) URL you supply via ?url=, with an optional ?status_code=.
- easy Delayed response — Delays the response by N seconds (max 10). Try /http/delay/{seconds}.
Headers & cookies
Inspect what your client is sending, or set state for it to send back.
- easy Header echo — Returns the request headers as JSON.
- easy Request echo — Accepts any method and echoes back the method, headers, query, and body. Try POSTing JSON to it.
- easy Set response headers — Every query param becomes a real response header, and is echoed in the JSON body.
- medium User-Agent check — Tests header-spoofing logic: returns 403 unless your User-Agent looks like a real browser.
- easy Your IP — Returns the connecting client IP as seen by the edge.
- easy Set cookie — Sets a cookie from query params, then redirects to /cookies/get.
- easy Get cookies — Returns current cookies as JSON.
Authentication
Protected endpoints covering common HTTP-level auth schemes.
- easy Basic auth — Protected by HTTP Basic Auth (user: demo / pass: demo).
- easy Bearer token auth — Requires an Authorization: Bearer demo-token header.
Compression & rate limits
Response encoding and throttling behavior.
- medium Gzip response — A padded JSON body, transparently gzip-compressed by the edge when the client sends Accept-Encoding.
- medium Rate limiting — Returns 429 after 5 requests within 60 seconds from the same client.
Caching & conditional requests
Round-trip endpoints that exercise conditional GET (If-Modified-Since / If-None-Match) handling.
- medium Conditional GET — Returns Last-Modified/ETag headers; send either back to get a 304 with no body.
- medium ETag round-trip — Send the same value back via If-None-Match to get a 304. Try /http/etag/{value}.
Streaming & content negotiation
Chunked responses, byte-range requests, and Accept-driven content negotiation.
- medium Streamed NDJSON — Streams N newline-delimited JSON lines via a real ReadableStream. Try /http/stream/{n} (max 100).
- medium Byte-range requests — Supports Range: bytes=start-end with real 206/416 responses, for resumable-download testing.
- medium Image content negotiation — Returns a real SVG or PNG depending on the Accept header.