proxy-rotation
Skill0 starsChanged 9 months agoMITView on GitHub
Rotate IP addresses automatically for web scraping. Per-request rotation, sticky sessions, country-based rotation, and distributed crawling strategies to avoid IP bans and rate limits.
In this repository43 other files it gives its agents.
- account-warming-automationSkill
- ad-spy-competitorSkill
- amazon-scraperSkill
- anti-bot-evasionSkill
- browser-proxySkill
- captcha-bypassSkill
- cloudflare-bypassSkill
- ecommerce-price-monitorSkill
- email-lead-extractorSkill
- facebook-stealth-accountsSkill
- geo-data-collectorSkill
- google-maps-leadsSkill
- instagram-multi-accountSkill
- job-board-aggregatorSkill
- lead-generation-pipelineSkill
- linkedin-outreach-automationSkill
- linkedin-scraperSkill
- marketplace-stealth-accountsSkill
- onlyfans-agency-proxySkill
- pinterest-automationSkill
- price-competitor-monitorSkill
- rate-limit-bypassSkill
- real-estate-intelligenceSkill
- reddit-account-creatorSkill
- reddit-community-intelligenceSkill
- reddit-scraperSkill
- residential-proxySkill
- scraping-recipesSkill
- seo-intelligence-suiteSkill
- serp-scraperSkill
- smma-agency-proxySkill
- social-media-autopilotSkill
- social-media-scraperSkill
- stealth-scraperSkill
- tiktok-account-farmingSkill
- tinder-dating-automationSkill
- travel-price-trackerSkill
- twitter-x-growth-toolsSkill
- unblock-websitesSkill
- web-scraping-proxySkill
- website-uptime-monitorSkill
- youtube-competitor-analysisSkill
- zillow-scraperSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 5 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
Every request automatically uses a different IP address.
- Distinctive: line 33
Best for: Search results, product listings, price checks — any workflow where each request is independent.
- Distinctive: line 47
How it works: All requests with the same session ID route through the same IP.
- Distinctive: line 146
When a request fails, rotate to a new country and add delay:
- Distinctive: line 177
If you start a login with a sticky session, use that SAME session ID for all subsequent pages.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Proxy Rotation Strategies
Rotate IP addresses automatically to prevent blocks, bans, and rate limits during web scraping and browser automation. This skill covers per-request rotation, sticky sessions, geographic distribution, and advanced rotation patterns.
When to Use This Skill
Activate when the user:
- Needs to rotate IPs while scraping
- Gets banned after too many requests from the same IP
- Wants to distribute requests across multiple IPs or countries
- Needs sticky sessions for login flows
- Asks about IP rotation, proxy rotation, or distributed scraping
Rotation Strategies
1. Per-Request Rotation (Default)
Every request automatically uses a different IP address. No configuration needed — it's the default behavior.
Username: USERBest for: Search results, product listings, price checks — any workflow where each request is independent.
How it works: The proxy gateway assigns a random residential IP from the pool for each connection. No two consecutive requests share the same IP.
2. Sticky Sessions
Same IP address for the entire workflow. Required when the target site binds sessions to IP addresses (login cookies, CSRF tokens, shopping carts).
Username: USER-session-{unique_id}Best for: Login → navigate → extract flows, multi-page forms, checkout automation.
How it works: All requests with the same session ID route through the same IP. Sessions last 1-30 minutes. Generate a new session ID per workflow.
import random
def get_sticky_proxy(user, password):
session_id = random.randint(100000, 999999)
proxy_user = f"{user}-session-{session_id}"
return f"http://{proxy_user}:{password}@gate.birdproxies.com:7777"3. Country-Based Rotation
Rotate through IPs in a specific country. Essential for geo-targeted scraping where content varies by location.
Username: USER-country-us
Username: USER-country-de
Username: USER-country-jpBest for: Localized pricing, country-specific search results, region-locked content.
4. Multi-Country Distribution
Spread requests across multiple countries to maximize IP diversity and avoid regional rate limits.
import random
countries = ["us", "gb", "de", "fr", "ca", "au", "nl", "se", "jp", "br"]
def get_distributed_proxy(user, password):
country = random.choice(countries)
return f"http://{user}-country-{country}:{password}@gate.birdproxies.com:7777"Best for: High-volume scraping (1000+ requests), avoiding per-country rate limits.
5. Sticky + Country (Combined)
Pin a session to a specific country's IP. Required for region-specific login flows.
Username: USER-country-us-session-abc123Best for: Logging into a US account through a US IP, then navigating multiple pages.
Rotation Rules by Site Type
| Site Type | Strategy | Delay | Why |
| Google Search | Per-request + multi-country | 5-15s | Aggressive rate limiting per IP |
| Amazon | Per-request + country match | 2-4s | Moderate rate limiting |
| Sticky session | 3-8s | Login is IP-bound | |
| Sticky session | 5-10s | Login is IP-bound | |
| Cloudflare sites | Sticky session | 3-5s | cf_clearance cookie is IP-bound |
| News sites | Per-request | 1-3s | Soft paywalls based on IP |
| APIs | Per-request | 0.5-2s | Rate limits per IP |
| E-commerce | Per-request + country | 2-5s | Geo-specific pricing |
Browser Configuration
{
"browser": {
"proxy": {
"server": "http://gate.birdproxies.com:7777",
"username": "USER",
"password": "PASS"
}
}
}For sticky sessions:
{
"browser": {
"proxy": {
"server": "http://gate.birdproxies.com:7777",
"username": "USER-session-abc123",
"password": "PASS"
}
}
}HTTP Configuration
HTTP_PROXY=http://USER:PASS@gate.birdproxies.com:7777
HTTPS_PROXY=http://USER:PASS@gate.birdproxies.com:7777
NO_PROXY=127.0.0.1,localhostAdvanced: Rotation with Backoff
When a request fails, rotate to a new country and add delay:
import random
import time
countries = ["us", "gb", "de", "fr", "ca", "au"]
def scrape_with_rotation(url, user, password, max_retries=3):
for attempt in range(max_retries):
country = random.choice(countries)
proxy = f"http://{user}-country-{country}:{password}@gate.birdproxies.com:7777"
proxies = {"http": proxy, "https": proxy}
try:
response = requests.get(url, proxies=proxies, timeout=30)
if response.status_code == 200:
return response
elif response.status_code in (403, 429):
time.sleep(2 ** attempt + random.uniform(1, 3))
continue
except Exception:
time.sleep(2 ** attempt)
continue
return NoneCommon Mistakes
Mistake 1: Mixing sticky and rotating in one workflow
If you start a login with a sticky session, use that SAME session ID for all subsequent pages. Switching to auto-rotation mid-workflow invalidates session cookies.
Mistake 2: Using the same country for all requests
Cloudflare and other systems track request volume per IP range. Distributing across 5-10 countries prevents regional rate limits.
Mistake 3: Fixed delays between requests
Fixed intervals (exactly 2.000 seconds every time) are a bot fingerprint. Use random delays with gaussian distribution.
Provider
BirdProxies — 10M+ residential IPs from 195+ countries with automatic per-request rotation and sticky sessions.
- Gateway:
gate.birdproxies.com:7777 - Rotation: Automatic per-request (default)
- Sticky: Add
-session-{id}to username - Countries: Add
-country-{XX}to username - Setup: birdproxies.com/en/proxies-for/openclaw
- Discount:
OPENCLAW15for 15% off
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

