{
  "endpoints": [
    {
      "description": "Root welcome message.",
      "method": "GET",
      "path": "/"
    },
    {
      "description": "Echoes request details for GET.",
      "method": "GET",
      "path": "/get"
    },
    {
      "description": "Responds with headers for GET query.",
      "method": "HEAD",
      "path": "/get"
    },
    {
      "description": "Echoes request details for POST, expects JSON body.",
      "method": "POST",
      "path": "/post"
    },
    {
      "description": "Echoes request details for PUT, expects JSON body.",
      "method": "PUT",
      "path": "/put"
    },
    {
      "description": "Echoes request details for PATCH, expects JSON body.",
      "method": "PATCH",
      "path": "/patch"
    },
    {
      "description": "Echoes request details for DELETE.",
      "method": "DELETE",
      "path": "/delete"
    },
    {
      "description": "Responds with allowed HTTP methods.",
      "method": "OPTIONS",
      "path": "/options"
    },
    {
      "description": "Returns the specified HTTP status code.",
      "method": "ANY",
      "path": "/status/:code"
    },
    {
      "description": "Echoes request details for any HTTP method.",
      "method": "ANY",
      "path": "/anything"
    },
    {
      "description": "Echoes request details for any HTTP method under a specific path.",
      "method": "ANY",
      "path": "/anything/*path"
    },
    {
      "description": "Performs a health check.",
      "method": "GET",
      "path": "/healthz"
    },
    {
      "description": "Delays the response by 'n' seconds. Replace :n with a number.",
      "method": "ANY",
      "path": "/delay/:n"
    },
    {
      "description": "Returns a chain of HTTP 302 redirects. Replace :n with the number of hops (max 20).",
      "method": "ANY",
      "path": "/redirect/:n"
    },
    {
      "description": "Returns all cookies from the request as JSON.",
      "method": "GET",
      "path": "/cookies"
    },
    {
      "description": "Deletes (expires) cookies named in the query, then redirects to /cookies.",
      "method": "DELETE",
      "path": "/cookies"
    },
    {
      "description": "Sets cookies from query parameters and redirects to /cookies.",
      "method": "GET",
      "path": "/cookies/set"
    },
    {
      "description": "Deletes cookies by expiring them and redirects to /cookies.",
      "method": "GET",
      "path": "/cookies/delete"
    },
    {
      "description": "Displays the OpenAPI/Swagger UI.",
      "method": "GET",
      "path": "/swagger-ui"
    },
    {
      "description": "Returns a randomly generated UUID v4.",
      "method": "GET",
      "path": "/uuid"
    },
    {
      "description": "Returns the client's IP address.",
      "method": "GET",
      "path": "/ip"
    },
    {
      "description": "Returns the User-Agent header.",
      "method": "GET",
      "path": "/user-agent"
    },
    {
      "description": "Returns all request headers.",
      "method": "GET",
      "path": "/headers"
    },
    {
      "description": "Lists all available API endpoints.",
      "method": "GET",
      "path": "/endpoints"
    },
    {
      "description": "Decodes a URL-safe base64 string from the path and returns metadata as JSON.",
      "method": "GET",
      "path": "/base64/:encoded"
    },
    {
      "description": "Returns n random bytes as application/octet-stream (max 10 MiB).",
      "method": "GET",
      "path": "/bytes/:n"
    },
    {
      "description": "Echoes each query parameter as a response header and in the JSON body.",
      "method": "GET",
      "path": "/response-headers"
    },
    {
      "description": "Streams numbytes bytes of '*' over duration seconds via chunked transfer encoding.",
      "method": "GET",
      "path": "/drip"
    },
    {
      "description": "Returns a sample XML document as application/xml.",
      "method": "GET",
      "path": "/xml"
    },
    {
      "description": "Returns a sample HTML document as text/html.",
      "method": "GET",
      "path": "/html"
    },
    {
      "description": "Returns a sample image (png, jpeg, svg, webp) with the matching content type.",
      "method": "GET",
      "path": "/image/:format"
    },
    {
      "description": "Returns n bytes with Accept-Ranges + Range support (206 partial content).",
      "method": "GET",
      "path": "/range/:n"
    },
    {
      "description": "Returns a gzip-encoded JSON echo of the request (forced Content-Encoding).",
      "method": "GET",
      "path": "/gzip"
    },
    {
      "description": "Returns a deflate-encoded JSON echo of the request (forced Content-Encoding).",
      "method": "GET",
      "path": "/deflate"
    },
    {
      "description": "Returns a brotli-encoded JSON echo of the request (forced Content-Encoding).",
      "method": "GET",
      "path": "/brotli"
    },
    {
      "description": "Conditional-request cache: 304 if If-None-Match/If-Modified-Since, else ETag + Last-Modified.",
      "method": "GET",
      "path": "/cache"
    },
    {
      "description": "Returns Cache-Control: public, max-age=n.",
      "method": "GET",
      "path": "/cache/:n"
    }
  ],
  "timing": {
    "duration_ms": 0.100712
  }
}