Skip to main content

How it works

Proxy Hopper accepts standard HTTP requests. To tell it where to send a request, you include the destination in the X-Proxy-Hopper-Target header and send the request to Proxy Hopper as if it were the target server.
Proxy Hopper strips the header, reconstructs the full URL, picks an IP from the relevant target’s pool, and makes the HTTPS request itself — owning the connection end-to-end. This means it can retry on failure by rotating to a different IP before your application ever sees the error.

Basic usage

Point your HTTP client at Proxy Hopper (http://localhost:8080 by default) and set X-Proxy-Hopper-Target to the scheme and host of the real destination.
The X-Proxy-Hopper-Target value may include a base path (https://api.example.com/v2) which is prepended to the request path:

Control headers

All X-Proxy-Hopper-* headers are stripped before the request reaches the upstream server.

Tagging requests for metrics

Overriding retries per request

Target matching

When Proxy Hopper receives a request, it matches the destination URL (from X-Proxy-Hopper-Target + the request path) against the regex patterns in your targets config. The first match determines which IP pool and which policies apply. If no target matches, the request is rejected with 503 No target matched.

Authentication

When auth.enabled: true is set in your config, every request must include a valid token:
Missing or invalid tokens return 401. Tokens lacking access to the matched target return 403. See Authentication for setup details.