---
title: Proxy Configuration
description: Configure residential, datacenter, and ISP proxies with geo-targeting and sticky sessions.
section: Guides
---

# Proxy Configuration

SessionKit routes browser traffic through high-quality proxies. Choose between residential, datacenter, and ISP proxies depending on your use case.

<AudienceGate audience="enterprise">

## Dedicated Proxy Pools (Enterprise)

Enterprise plans include dedicated proxy pools with reserved IP ranges. Contact your account manager to provision a pool, then reference it by ID:

```typescript
const session = await sk.sessions.create({
  proxy: { pool: 'pool_acme_dedicated_01' },
})
```

</AudienceGate>

## Proxy Types

| Type | Speed | Detectability | Cost | Best For |
|------|-------|---------------|------|----------|
| `residential` | Medium | Very low | $$$ | Anti-bot sites, social media |
| `datacenter` | Fast | Medium | $ | High-volume scraping |
| `isp` | Fast | Low | $$ | Balanced speed + stealth |
| `mobile` | Slow | Very low | $$$$ | Mobile-specific targets |

## Basic Usage

```typescript
const session = await sk.sessions.create({
  proxy: {
    type: 'residential',
    country: 'US',
  },
})
```

## Geo-Targeting

Target specific regions, cities, or even ASNs:

```typescript
// Country-level targeting
const session = await sk.sessions.create({
  proxy: { type: 'residential', country: 'GB' },
})

// Region-level targeting
const session = await sk.sessions.create({
  proxy: { type: 'residential', country: 'US', region: 'us' },
})

// City-level targeting
const session = await sk.sessions.create({
  proxy: {
    type: 'residential',
    country: 'US',
    city: 'New York',
  },
})
```

### Available Regions

- `us` — United States
- `eu` — European Union
- `asia` — Asia Pacific
- `latam` — Latin America

## Sticky Sessions

By default, proxies rotate on each request. Enable `sticky: true` to maintain the same IP for the entire session duration:

```typescript
const session = await sk.sessions.create({
  proxy: {
    type: 'residential',
    country: 'US',
    sticky: true, // Same IP for entire session
  },
})
```

> **When to use sticky:** Login flows, multi-page journeys, and any scenario where IP changes would trigger re-authentication.

## Proxy Rotation

For high-volume scraping, use a fleet with automatic proxy rotation:

```typescript
const fleet = await sk.fleets.create({
  name: 'scraping-pool',
  size: 50,
  proxy: {
    type: 'datacenter',
    region: 'us',
    rotate: true, // New IP per request
  },
})
```

## Bandwidth & Limits

| Plan | Residential GB/mo | Datacenter GB/mo | Concurrent Sessions |
|------|-------------------|------------------|---------------------|
| Free | 1 GB | 10 GB | 5 |
| Pro | 25 GB | 100 GB | 50 |
| Scale | 200 GB | Unlimited | 500 |
| Enterprise | Custom | Custom | Custom |

## Error Handling

```typescript
try {
  const session = await sk.sessions.create({
    proxy: { type: 'residential', country: 'US' },
  })
} catch (error) {
  if (error.code === 'PROXY_POOL_EXHAUSTED') {
    // No proxies available in requested region
    // Try a different region or proxy type
  }
  if (error.code === 'BANDWIDTH_EXCEEDED') {
    // Monthly bandwidth limit reached
    // Upgrade plan or wait for reset
  }
}
```
