Rucho

Handles requests to the `/redirect/:n` endpoint.

Returns a 302 redirect chain that decrements n on each hop.
When n reaches 1, redirects to /get as the final destination.
When n is 0, returns 200 directly (redirect complete).

Security

The maximum number of hops is capped at MAX_REDIRECT_HOPS (20) to prevent
abuse through excessively long redirect chains.

head
https://rucho.org/redirect/{n}

Path Parameters

ninteger(int32)required

>= 0

Response

text/plain

Redirect complete (when n=0)

string
head/redirect/{n}
 
text/plain

Echoes each query parameter as a response header and in the JSON body.

GET /response-headers?x-rate-limit=100&cache-control=no-store returns:

  • Response headers x-rate-limit: 100 and cache-control: no-store
  • JSON body {"x-rate-limit": "100", "cache-control": "no-store"}

Duplicate keys emit multiple response headers (HTTP’s repeat-header model)
and collapse to a JSON array in the body. Invalid header names or values
return 400.

User-supplied headers replace any defaults — setting content-type
overrides the default application/json (body remains JSON regardless;
the mismatch is intentional for plugin-testing scenarios).

get
https://rucho.org/response-headers

Response

Echoes query params as response headers and a JSON body

get/response-headers
 

EndpointInfo

object

Represents information about an API endpoint.

descriptionstringrequired

A brief description of the endpoint’s purpose.

Example:Echoes request details for GET.

methodstringrequired

The HTTP method of the endpoint (e.g., “GET”).

Example:GET

pathstringrequired

The path of the endpoint (e.g., “/get”).

Example:/get

Example

Payload

Request payload wrapper for POST, PUT, PATCH, and DELETE handlers.

This newtype wraps a serde_json::Value to accept arbitrary JSON bodies
in requests that support request bodies.