Skip to main content

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")

# Fetch any URL through a residential proxy
response = ip.get("https://httpbin.org/ip")
print(response.text)

# Target a specific country
response = ip.get("https://example.com", country="DE")

# POST request
response = ip.post("https://api.example.com/data", json={"key": "value"})

Smart Headers

Headers are automatically matched to the target country — correct language, timezone, and User-Agent:

ip = IPLoop("key", country="JP")  # Japanese Chrome headers automatically

Sticky Sessions

Keep the same IP across multiple requests:

s = ip.session(country="US", city="newyork")
page1 = s.fetch("https://site.com/page1")  # same IP
page2 = s.fetch("https://site.com/page2")  # same IP

Auto-Retry

Failed requests (403, 502, 503, timeouts) automatically retry with a fresh IP:

# Retries up to 3 times with different IPs
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()     # Check bandwidth quota
ip.status()    # Service status
ip.ask("how do I handle captchas?")  # Ask support
ip.countries() # List available countries

Data Extraction (v1.2.0)

Auto-extract structured data from popular sites:

# eBay — extract product listings
products = ip.ebay.search("laptop", extract=True)["products"]
# [{"title": "MacBook Pro 16", "price": "$1,299.00"}, ...]

# Nasdaq — extract stock quotes
quote = ip.nasdaq.quote("AAPL", extract=True)
# {"price": "$185.50", "change": "+2.30", "pct_change": "+1.25%"}

# Google — extract search results
results = ip.google.search("best proxy service", extract=True)["results"]
# [{"title": "...", "url": "..."}, ...]

# Twitter — extract profile info
profile = ip.twitter.profile("elonmusk", extract=True)
# {"name": "Elon Musk", "handle": "elonmusk", ...}

# YouTube — extract video metadata
video = ip.youtube.video("dQw4w9WgXcQ", extract=True)
# {"title": "...", "channel": "...", "views": 1234567}

Smart Rate Limiting

Built-in per-site rate limiting prevents blocks automatically:

# These calls auto-delay to respect site limits
for q in ["laptop", "phone", "tablet"]:
    ip.ebay.search(q)  # 15s delay between requests

LinkedIn (New)

ip.linkedin.profile("satyanadella")
ip.linkedin.company("microsoft")

Concurrent Fetching (v1.3.0)

Batch fetch up to 25 URLs in parallel:

# Concurrent fetching (safe up to 25)
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")

# Multi-country comparison
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:

# Auto fingerprinting — no setup needed
html = ip.fetch("https://ebay.com", country="US")  # fingerprinted automatically

# Get fingerprint headers directly
headers = ip.fingerprint("DE")  # 14 headers for German Chrome

Stats Tracking (v1.3.0)

# After making requests...
print(ip.stats)
# {"requests": 10, "success": 9, "errors": 1, "total_time": 23.5, "avg_time": 2.35, "success_rate": 90.0}

Debug Mode

ip = IPLoop("key", debug=True)
# Logs: GET https://example.com → 200 (0.45s) country=US session=abc123

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

Metadata

Release files for iploop-sdk 1.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iploop-sdk 1.6.0
File Size Uploaded Provenance Actions
iploop_sdk-1.6.0.tar.gz 53.6 kB Without provenance Details for iploop_sdk-1.6.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for iploop-sdk 1.6.0
File Interpreter ABI Platform Actions
iploop_sdk-1.6.0-py3-none-any.whl Python 3 none any Details for iploop_sdk-1.6.0-py3-none-any.whl

Total release size: 129.5 kB

Release files / iploop_sdk-1.6.0.tar.gz

Download URL iploop_sdk-1.6.0.tar.gz
Size 53.6 kB
Tags Source
SHA-256 checksum
How to use checksums
e565be6cf45200cec4f7c76db938d4b1482824c5febc34828e597b25cee49b62
BLAKE2b-256 checksum
How to use checksums
4268cf80ad4140dfb9d09c6d06e1df6171d962dd013161d421059e4d76e11884
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / iploop_sdk-1.6.0-py3-none-any.whl

Download URL iploop_sdk-1.6.0-py3-none-any.whl
Size 76.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
720c482c7ddf294934906e95e2c632e5a32d8d9f0d7e426764bd5b8b97dfb65a
BLAKE2b-256 checksum
How to use checksums
c988d15ae23f4f85465f64c0e516ba9401ef44103817486096ccfe5cd705ea51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for iploop-sdk 1.6.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page