How it works
Proxy Hopper accepts standard HTTP requests. To tell it where to send a request, you include the destination in theX-Proxy-Hopper-Target header and send the request to Proxy Hopper as if it were the target server.
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.
X-Proxy-Hopper-Target value may include a base path (https://api.example.com/v2) which is prepended to the request path:
Control headers
AllX-Proxy-Hopper-* headers are stripped before the request reaches the upstream server.
| Header | Description |
|---|---|
X-Proxy-Hopper-Target: https://api.example.com | Required. Target scheme + host (+ optional base path). |
X-Proxy-Hopper-Auth: Bearer <token> | Required when authentication is enabled. API key or JWT. |
X-Proxy-Hopper-Tag: <string> | Optional label propagated to Prometheus metrics as the tag label. Useful for identifying which endpoints are hitting rate limits. |
X-Proxy-Hopper-Retries: <int> | Override the target’s numRetries for this request only. Must be a non-negative integer; invalid values fall back to the target default. |
Tagging requests for metrics
Overriding retries per request
Target matching
When Proxy Hopper receives a request, it matches the destination URL (fromX-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
Whenauth.enabled: true is set in your config, every request must include a valid token:
401. Tokens lacking access to the matched target return 403. See Authentication for setup details.