IPLoop Python SDK
Residential proxy SDK — one-liner web fetching through millions of real IPs.
pip install iploop
Quick Start
from iploop import IPLoop
ip = IPLoop("your-api-key")
response = ip.get("https://httpbin.org/ip")
print(response.text)
response = ip.get("https://example.com", country="DE")
response = ip.post("https://api.example.com/data", json={"key": "value"})
Headers are automatically matched to the target country — correct language, timezone, and User-Agent:
ip = IPLoop("key", country="JP")
Sticky Sessions
Keep the same IP across multiple requests:
s = ip.session(country="US", city="newyork")
page1 = s.fetch("https://site.com/page1")
page2 = s.fetch("https://site.com/page2")
Auto-Retry
Failed requests (403, 502, 503, timeouts) automatically retry with a fresh IP:
response = ip.get("https://tough-site.com", retries=5)
Async Support
import asyncio
from iploop import AsyncIPLoop
async def main():
async with AsyncIPLoop("key") as ip:
results = await asyncio.gather(
ip.get("https://site1.com"),
ip.get("https://site2.com"),
ip.get("https://site3.com"),
)
for r in results:
print(r.status_code)
asyncio.run(main())
Support API
ip.usage()
ip.status()
ip.ask("how do I handle captchas?")
ip.countries()
Auto-extract structured data from popular sites:
products = ip.ebay.search("laptop", extract=True)["products"]
quote = ip.nasdaq.quote("AAPL", extract=True)
results = ip.google.search("best proxy service", extract=True)["results"]
profile = ip.twitter.profile("elonmusk", extract=True)
video = ip.youtube.video("dQw4w9WgXcQ", extract=True)
Smart Rate Limiting
Built-in per-site rate limiting prevents blocks automatically:
for q in ["laptop", "phone", "tablet"]:
ip.ebay.search(q)
LinkedIn (New)
ip.linkedin.profile("satyanadella")
ip.linkedin.company("microsoft")
Concurrent Fetching (v1.3.0)
Batch fetch up to 25 URLs in parallel:
batch = ip.batch(max_workers=10)
results = batch.fetch_all([
"https://ebay.com/sch/i.html?_nkw=laptop",
"https://ebay.com/sch/i.html?_nkw=phone",
"https://ebay.com/sch/i.html?_nkw=tablet"
], country="US")
prices = batch.fetch_multi_country("https://ebay.com/sch/i.html?_nkw=iphone", ["US", "GB", "DE"])
Chrome Fingerprinting (v1.3.0)
Every request auto-applies a 14-header Chrome desktop fingerprint — the universal recipe from Phase 9 testing:
html = ip.fetch("https://ebay.com", country="US")
headers = ip.fingerprint("DE")
Stats Tracking (v1.3.0)
print(ip.stats)
Debug Mode
ip = IPLoop("key", debug=True)
Exceptions
from iploop import AuthError, QuotaExceeded, ProxyError, TimeoutError
try:
response = ip.get("https://example.com")
except QuotaExceeded:
print("Upgrade at https://iploop.io/pricing")
except ProxyError:
print("Proxy connection failed")
except TimeoutError:
print("Request timed out")
Links