# How proxies work

A proxy is an intermediate server that forwards your HTTP(S) requests to a target site. The target sees the proxy's IP, not yours. helodata operates pools of proxies sourced from real residential, mobile, and ISP networks worldwide.

## Request lifecycle

```
┌─────────┐         ┌──────────────────┐         ┌──────────────┐
│  Your   │  HTTP   │  helodata proxy  │  HTTP   │   Target     │
│  app    ├────────►│  gateway         ├────────►│   website    │
│         │◄────────┤                  │◄────────┤              │
└─────────┘         └──────────────────┘         └──────────────┘
```

1. Your application sends a request to `gate.helodata.io:7777` with credentials.
2. For **gateway products** (Residential, Mobile), the gateway parses your [username string](/getting-started/username-format.md), authenticates the sub-user, then selects a backend IP matching the requested `type`, `region`, `state`, `city`, `asn`, and `session`. For **ISP proxies**, your client connects directly to a specific IP from your purchased list — no gateway routing.
3. The target site responds. The body streams back through the gateway to you.

A single request is metered by **bandwidth (GB)** on every helodata product currently live.

## Pool types at a glance

| Pool            | `type` code                       | IP source          | Best for                               | Trade-offs                       |
| --------------- | --------------------------------- | ------------------ | -------------------------------------- | -------------------------------- |
| **Residential** | gateway, `type-res`               | Real consumer ISPs | Anti-bot sites, geo-restricted content | Variable speed                   |
| **Mobile**      | gateway, `type-mob`               | 3G/4G/5G carriers  | Mobile-only content, social platforms  | Highest cost, smaller pool       |
| **ISP**         | per-IP list (`ip:port:user:pass`) | Static residential | Account farming, long-lived sessions   | Manual rotation, fixed pool size |

Coming soon: Datacenter proxies, Web Unblocker, Scraping API.

If unsure, jump to [Choose a product](/getting-started/choose-a-product.md).

## Authentication models

helodata supports two authentication models on every product:

* **User + password** — pass credentials in the `Proxy-Authorization` header or `http://user:pass@host:port` URL form. Most flexible — works from any IP. The username carries all targeting parameters (see [Username format](/getting-started/username-format.md)).
* **IP whitelist** — register your egress IPs in the dashboard and authenticate by source IP. Useful for environments that can't store credentials. Targeting is selected from the dashboard rather than the username.

See [Authentication](/api-reference/authentication.md) for full details.

## Sessions and rotation

The two credential models handle session affinity very differently.

**Gateway products (Residential, Mobile)** — sessions are opt-in via the `session` + `sesstime` segments of the username:

```
helo_s1a2b3c4d5e-type-res-region-us-session-abc123-sesstime-30
```

* `session-abc123` — any string you choose; identifies the session.
* `sesstime-30` — keep this IP for up to 30 minutes (residential cap = 30, mobile cap = 60).

Drop both segments to get a new IP on every connection (rotating mode).

**ISP proxies** — each IP in your purchased list is permanently stable. Rotation is a client-side concern: your code picks the next entry from the list. See [Client-side rotation](/products/overview-2/rotation.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.helodata.com/getting-started/how-proxies-work.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
