> For the complete documentation index, see [llms.txt](https://docs.hypersolutions.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hypersolutions.co/request-based-basics/ip.md).

# Proxies & IP

Most Hyper Solutions APIs take your proxy's outbound IP as an input. This page explains why, and why you must use sticky (not rotating) proxies.

Most of our sensor APIs require your proxy's **outbound IP** as an input, because the anti-bot expects the generated payload to match the IP the target site actually sees. Fetch it from the `/ip` endpoint:

## Get IP from session

> Get IP from session

```json
{"openapi":"3.0.0","servers":[{"url":"https://ip.hypersolutions.co"}],"paths":{"/ip":{"get":{"summary":"Get IP from session","description":"Get IP from session","operationId":"getIp","parameters":[{"in":"header","name":"x-api-key","required":true,"schema":{"type":"string"},"description":"Your API key for authentication"}],"responses":{"200":{"description":"OK IP was returned","content":{"application/json":{"schema":{"type":"object","properties":{"ip":{"type":"string","description":"The IP"}}}}}}}}}}}
```

## Use sticky proxies, never rotating

The IP you send to the API **must** match the IP the target sees. Rotating proxies break this: they issue a new IP on each new connection (`CONNECT`), so you get one IP from `/ip` and the target sees another.

1. You call `/ip` and get `1.2.3.4`.
2. You generate a payload for the target using that IP.
3. Your proxy rotates when it opens the connection to the target.
4. The target sees `5.6.7.8`, but the payload was built for `1.2.3.4`, so you're blocked.

**Sticky (session) proxies** hold the same IP for the whole session, so `/ip`, the API, and the target all agree.

## How to use it

1. Configure your proxy in **sticky/session** mode.
2. Call `/ip` through that proxy to get your outbound IP.
3. Pass that IP as the `ip` input on every sensor call in the session.

See [Core Requirements](/start-here/core-requirements.md) for the other non-negotiables.
