Guides
Proxy Configuration
SessionKit routes browser traffic through high-quality proxies. Choose between residential, datacenter, and ISP proxies depending on your use case.
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
const session = await sk.sessions.create({
proxy: {
type: 'residential',
country: 'US',
},
})
Geo-Targeting
Target specific regions, cities, or even ASNs:
// 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 Stateseu— European Unionasia— Asia Pacificlatam— Latin America
Sticky Sessions
By default, proxies rotate on each request. Enable sticky: true to maintain the same IP for the entire session duration:
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:
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
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
}
}