# Sessions & rotation

Mobile sessions follow the same model as residential, with one key difference: **`sesstime` can go up to 60 minutes** (residential cap = 30). This matches how long a real mobile device typically holds the same carrier-assigned IP.

For the full session model, syntax, and best-practice patterns, see [Residential sessions & rotation](/products/overview/sessions-and-rotation.md). The mobile-specific notes are below.

## Mobile-specific behavior

### 60-minute cap

```
helo_s1a2b3c4d5e-type-mob-region-us-asn-6167-session-job1-sesstime-60
```

Specifying `sesstime` > 60 returns `400` + `X-Helodata-Error-Code: sesstime-out-of-range`.

### Higher repinning rate

Mobile devices change cells, lose signal, or switch IPs at the carrier's discretion. Expect the `X-Helodata-Session-Repinned: true` header more often than on residential — plan for 5–15 % of long sessions to be repinned mid-flight.

### Pair sessions with ASN

A session without ASN can drift between carriers if the chosen device drops and a different-carrier device picks up. **Always combine `session` with `asn`** when you need carrier consistency:

```
helo_s1a2b3c4d5e-type-mob-region-us-asn-6167-session-job1-sesstime-60
```

### Rotation pattern for high-throughput mobile

Mobile pools are smaller; rotating per connection can exhaust a small filtered pool. A workable pattern:

* Open N sticky sessions, each pinned to one carrier
* Round-robin requests across them
* When a session returns more than 3 target errors in a row, mint a new session ID

```python
import requests, random, string

BASE = "helo_s1a2b3c4d5e-type-mob-region-us-asn-6167"

def new_session():
    sid = "".join(random.choices(string.ascii_lowercase + string.digits, k=8))
    return f"{BASE}-session-{sid}-sesstime-30"

pool = [new_session() for _ in range(10)]
```

## What sessions do **not** do (mobile-specific)

* They don't bypass carrier-side rate limits. Each mobile IP shares the carrier's per-IP quota — sticky sessions concentrate your traffic on one IP, which can trigger the carrier's throttling sooner. Spread across more sessions, not fewer.

## Related

* [ASN targeting](/products/overview-1/asn-targeting.md) — pair with sessions for carrier consistency
* [Residential sessions & rotation](/products/overview/sessions-and-rotation.md) — full model and code patterns


---

# 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/products/overview-1/sessions-and-rotation.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.
