HTTP me is a tiny express app initally designed to replicate the features of HTTPBin.org: being a convenient server that you can use to trigger a certain HTTP response behaviour.
Request any path you like, as long as it is not
/ (which produces this page). Most directives can be duplicated or combined, and can be specified in multiple ways. If directives are mutually exclusive, those specified later take priority, and path segments take priority over query args, which take priority over headers.
Directives that prolong the response are not subject to individual limits, but the response will be aborted after 30 seconds.
Any directive that does not require a value can be specified as a path segment. This returns the current time
Add directives to the query string:
Add directives as request headers, prefixed with
HM-Wait: 2000 HM-Status: 500
The following directives are available:
wait=<number>: Sleep for
<number>milliseconds before starting the response
<number>as the HTTP Response status code
header=<key>:<val>: Add a response header of
<key>: <val>to the response
cacheable: Make the response cacheable for a short period (shorthand for
no-cache: Make the response uncacheable (shorthand for
The following content directives are mutually exclusive. Only one will be honoured.
debug: Output a JSON object describing the directives parsed from the request
now: Output the current time
ip: Output the IP address of the requesting client
html: Output a valid HTML page
json: Output a valid JSON document
image-jpeg: Output a JPEG image
image-png: Output a PNG image
image-webp: Output a WEBP image
image-gif: Output an animated GIF image
stream-sse=<duration>: Output a Server Sent Events stream for
body=<string>: Echo the input data
base64=<data>: Echo the input data but base64-decode it first
esi: Returns an HTML containing an ESI request to /time.txt, which returns the local server date and time.
anything: Returns a JSON response describing the request