Understanding Egress IPs
This doc explains what egress IPs are, how they work in Doppelganger, and how to use your own IPs for scraping and automation.
What is an Egress IP?#
An egress IP is the IP address that websites see when Doppelganger makes a request.
It is the exit point of your traffic to the internet.
Ingress = traffic coming in
Egress = traffic going out (this is what sites see)
Why Egress IPs Matter#
Websites use IPs to:
- Rate limit
- Detect bots
- Block scrapers
- Trigger captchas
- Track sessions
- Restrict access
If all requests use the same IP, you will get blocked quickly.
That’s why egress rotation matters.
How Doppelganger Handles Egress IPs#
Doppelganger uses a central egress layer.
Tasks do not manage proxies.
Tasks do not set headers.
Tasks do not rotate IPs.
You import IPs once, and Doppelganger does the rest.
Importing Your Own IPs#
You bring your own IPs from any provider:
- Webshare
- Oxylabs
- DataImpulse
- Bright Data
- Private servers
- Residential, mobile, or datacenter
Supported:
- HTTP
- HTTPS
- SOCKS5
Once imported, they become part of your egress pool.
Rotation Logic (Automatic)#
Rotation happens at the egress layer, not in your task code.
Doppelganger automatically:
- Rotates per request
- Rotates per session
- Rotates per browser
- Avoids reusing blocked IPs
- Respects rate limits
You never write proxy logic.
One Pool, Many Tasks#
- All tasks share the same egress pool
- IPs are borrowed, not owned
- Tasks never see raw proxy credentials
- Expired keys instantly lose access
- Limits prevent abuse
Summary#
- Egress IP = what websites see
- You import your own IPs
- Doppelganger controls rotation
- No proxy code in tasks
- One pool, all tasks
- Built for scale, not config