IPLoop Documentation
Your complete guide to residential proxies, web scraping, and data collection with IPLoop.
What is IPLoop?
IPLoop is a residential proxy network powered by real devices across 195 countries. Our SDK-based infrastructure provides clean, reliable IP addresses for web scraping, data collection, ad verification, and market research.
Key Features
How It Works
- Sign up at iploop.io and get your API key
- Choose your method — proxy endpoint, SDK, or API
- Configure targeting — country, city, session type
- Start collecting data — clean, structured, reliable
New to IPLoop? Start with our Quick Start guide to make your first request in under 5 minutes.
Quick Start
Get up and running with IPLoop in under 5 minutes.
1. Get Your Credentials
Sign up at iploop.io to receive your API Key (new format: iploop_xxxxxxxx_xxxxxxxx...).
2. Make Your First Request
Using cURL:
bash# Basic proxy request curl -x http://[email protected]:8880 \ https://httpbin.org/ip # With country targeting (US) curl -x http://[email protected]:8880 \ https://httpbin.org/ip
Using Python:
pythonimport requests proxies = { "http": "http://[email protected]:8880", "https": "http://[email protected]:8880", } response = requests.get("https://httpbin.org/ip", proxies=proxies) print(response.json())
Using Node.js:
javascriptconst axios = require('axios'); const response = await axios.get('https://httpbin.org/ip', { proxy: { host: 'proxy.iploop.io', port: 8880, auth: { username: 'YOUR_API_KEY', password: 'API_KEY' } } }); console.log(response.data);
Authentication
All requests require authentication via your API Key (new format includes everything needed).
Basic Authentication
For proxy requests, use HTTP Basic Auth with your credentials:
texthttp://[email protected]:8880
For API requests, use a Bearer token:
textAuthorization: Bearer YOUR_API_KEY
Parameter Format
Combine credentials with parameters using the format:
textYOUR_API_KEY-param1-value1-param2-value2
Supported Parameters
| Parameter | Format | Example |
|---|---|---|
| Country | country-XX | country-US |
| City | city-NAME | city-miami |
| ASN | asn-NUMBER | asn-12345 |
| Session | session-ID | session-abc123 |
| Session Type | sesstype-TYPE | sesstype-sticky |
| Lifetime | lifetime-TIME | lifetime-30 |
Never share your API Key. Treat it like a password. If compromised, regenerate it immediately in your IPLoop dashboard.
Proxy Setup
Configure and use IPLoop proxies with HTTP, HTTPS, and SOCKS5 protocols.
Proxy Endpoints
| Protocol | Endpoint | Port |
|---|---|---|
| HTTP/HTTPS | proxy.iploop.io | 8880 |
| SOCKS5 | proxy.iploop.io | 1080 |
Connection Limits by Plan
| Plan | Concurrent Connections | Requests/sec |
|---|---|---|
| Starter (10GB) | 100 | 50 |
| Growth (50GB) | 500 | 200 |
| Business (200GB) | 2,000 | 1,000 |
| Enterprise | Unlimited | Custom |
HTTP Proxy Example
Configure your application to use IPLoop as an HTTP proxy:
bashcurl -x http://[email protected]:8880 \ -H "User-Agent: Mozilla/5.0" \ https://example.com
SOCKS5 Proxy Example
For applications that support SOCKS5:
bashcurl --socks5 [email protected]:1080 \ https://example.com
Geographic Targeting
Get IPs from specific countries, cities, and ASN networks.
Country Targeting
Route requests through specific countries using ISO 2-letter country codes:
bash# US proxy curl -x http://[email protected]:8880 \ https://httpbin.org/ip # UK proxy curl -x http://[email protected]:8880 \ https://httpbin.org/ip # Germany proxy curl -x http://[email protected]:8880 \ https://httpbin.org/ip
City Targeting
Get IPs from specific cities:
bash# Miami, Florida curl -x http://[email protected]:8880 \ https://httpbin.org/ip # New York curl -x http://[email protected]:8880 \ https://httpbin.org/ip # London curl -x http://[email protected]:8880 \ https://httpbin.org/ip
ASN Targeting
Target specific Autonomous System Networks:
bashcurl -x http://[email protected]:8880 \ https://httpbin.org/ip
Combining Parameters
You can combine country, city, and other parameters:
bash# US + Miami + sticky session curl -x http://YOUR_API_KEY-country-US-city-miami-session-abc123@proxy.iploop.io:8880 \ https://httpbin.org/ip
IPLoop covers 195 countries and thousands of cities. Contact support for a complete list of available locations and ASNs.
Sessions & Rotation
Control IP rotation and maintain session persistence with sticky sessions.
Rotating Sessions (Default)
By default, each request gets a new IP address. Perfect for avoiding rate limits and getting diverse data:
bash# Every request gets a new IP curl -x http://[email protected]:8880 \ https://httpbin.org/ip # Returns IP1 curl -x http://[email protected]:8880 \ https://httpbin.org/ip # Returns IP2 (different)
Sticky Sessions
Maintain the same IP address across multiple requests using session identifiers:
bash# Create/reuse a sticky session curl -x http://[email protected]:8880 \ https://httpbin.org/ip # Returns IP1 curl -x http://[email protected]:8880 \ https://httpbin.org/ip # Returns IP1 (same)
Session Lifetime
Control how long a sticky session persists:
| Parameter | Format | Example | Description |
|---|---|---|---|
| Lifetime | lifetime-MINUTES | lifetime-30 | Session stays active for 30 minutes |
| Session Type | sesstype-sticky | sesstype-sticky | Maintain same IP for duration |
| Session ID | session-CUSTOM_ID | session-user123 | Custom session identifier |
Session with Lifetime Example
bash# Sticky session for 30 minutes curl -x http://YOUR_API_KEY-session-user123-sesstype-sticky-lifetime-30@proxy.iploop.io:8880 \ https://httpbin.org/ip
Rotating: Web scraping, market research, data collection. Sticky: Logging in, account creation, checkout flows.
Protocols
Choose between HTTP CONNECT tunneling and SOCKS5 based on your needs.
Protocol Comparison
| Feature | HTTP CONNECT | SOCKS5 |
|---|---|---|
| HTTPS Support | ✓ Full support | ✓ Full support |
| HTTP/2 | ✓ Supported | ✓ Supported |
| Port Flexibility | 8880 | 1080 |
| Application Support | Browsers, curl, requests | Selenium, Puppeteer, browsers |
| Authentication | Basic Auth (HTTP header) | Basic Auth (SOCKS5 handshake) |
When to Use HTTP CONNECT
Use HTTP CONNECT when:
- Working with standard HTTP libraries (requests, axios)
- Using command-line tools (curl, wget)
- Connecting from web browsers
- You need maximum compatibility
When to Use SOCKS5
Use SOCKS5 when:
- Running headless browsers (Selenium, Puppeteer)
- Need system-wide proxy support
- Working with low-level socket libraries
- Prefer protocol-agnostic tunneling
Python SDK
Easiest way to integrate IPLoop with Python applications.
Installation
bashpip install iploop
Basic Usage
pythonfrom iploop import IPLoopClient client = IPLoopClient( api_key="iploop_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", ) # Simple request response = client.get("https://httpbin.org/ip") print(response.json())
Geographic Targeting
python# Request from US response = client.get("https://httpbin.org/ip", country="US") # Request from Miami, USA response = client.get("https://httpbin.org/ip", country="US", city="miami") # Request from specific ASN response = client.get("https://httpbin.org/ip", asn="12345")
Sticky Sessions
python# Create a sticky session that lasts 30 minutes response = client.get( "https://httpbin.org/ip", session="my-session", session_type="sticky", lifetime=30 ) # Subsequent requests with same session ID use same IP response = client.get("https://httpbin.org/ip", session="my-session")
Web Scraping
python# High-level scraping API data = client.scrape("https://example.com/products") print(data)
Advanced Configuration
pythonclient = IPLoopClient( api_key="iploop_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", timeout=30, retries=3, backoff_factor=0.5, verify_ssl=True )
Node.js SDK
Integrate IPLoop with Node.js and JavaScript applications.
Installation
bashnpm install iploop
Basic Usage
javascriptconst { IPLoopClient } = require('iploop'); const client = new IPLoopClient({ apiKey: 'iploop_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' }); // Simple request const response = await client.get('https://httpbin.org/ip'); console.log(response.data);
Geographic Targeting
javascript// US proxy const response = await client.get('https://httpbin.org/ip', { country: 'US' }); // Miami, USA const miamiResponse = await client.get('https://httpbin.org/ip', { country: 'US', city: 'miami' });
Sticky Sessions
javascript// Create sticky session const response = await client.get('https://httpbin.org/ip', { session: 'my-session', sessionType: 'sticky', lifetime: 30 }); // Same session for all requests const response2 = await client.get('https://httpbin.org/ip', { session: 'my-session' });
Web Scraping
javascript// High-level scraping const data = await client.scrape('https://example.com/products'); console.log(data);
Android SDK
Native integration for Android applications.
Setup
Add the IPLoop SDK to your Android project dependencies.
Basic Integration
javaimport com.iploop.sdk.IPLoopSDK; // Initialize with your partner key (monetization SDK — separate from proxy API key) IPLoopSDK.init(context, "your_partner_key"); // Start the proxy service IPLoopSDK.start(); // Check if running boolean isRunning = IPLoopSDK.isRunning(); // Stop when done IPLoopSDK.stop();
Configuration
The SDK automatically configures system-level proxying for all traffic when initialized. Configure targeting through your IPLoop dashboard or API.
The Android SDK is optimized for minimal battery drain and data usage, suitable for long-running proxy sessions.
API Overview
RESTful API for programmatic access to IPLoop services.
Base URL
texthttps://api.iploop.io/v1
Authentication
All API requests require a Bearer token in the Authorization header:
bashcurl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.iploop.io/v1/user/dashboard
Response Format
All responses are JSON:
json{ "success": true, "data": { "key": "value" }, "message": "Operation successful" }
Rate Limits
| Plan | Requests/minute | Requests/hour |
|---|---|---|
| Starter | 60 | 3,000 |
| Growth | 300 | 15,000 |
| Business | 1,000 | 50,000 |
| Enterprise | Custom | Custom |
API Endpoints
Available endpoints for authentication, user management, and system status.
Authentication Endpoints
POST /api/auth/signup
Create a new account.
bashcurl -X POST https://api.iploop.io/v1/api/auth/signup \ -H "Content-Type: application/json" \ -d '{ "email": "[email protected]", "password": "secure_password", "company": "My Company" }'
POST /api/auth/login
Authenticate and get an API token.
bashcurl -X POST https://api.iploop.io/v1/api/auth/login \ -H "Content-Type: application/json" \ -d '{ "email": "[email protected]", "password": "secure_password" }'
GET /api/auth/me
Get current user information.
bashcurl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.iploop.io/v1/api/auth/me
User & Dashboard Endpoints
GET /api/user/dashboard
Get user dashboard data (bandwidth usage, request counts, etc.).
bashcurl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.iploop.io/v1/api/user/dashboard
GET /api/proxy/locations
Get available proxy locations and coverage.
bashcurl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.iploop.io/v1/api/proxy/locations
GET /api/support/status
Check platform status and health.
bashcurl https://api.iploop.io/v1/api/support/status
Error Codes
Standard HTTP error codes and their meanings when using IPLoop.
| Code | Meaning | Action |
|---|---|---|
| 401 | Invalid credentials | Check your API Key |
| 403 | Quota exceeded | Upgrade your plan or wait for reset |
| 407 | Proxy auth required | Include credentials in proxy request |
| 429 | Rate limited | Reduce request frequency or upgrade |
| 502 | No available proxy | Retry — temporary unavailability |
| 503 | Service unavailable | Check platform status page |
If you see 502/503 errors persistently, check the platform status page immediately. These indicate infrastructure issues.
Web Scraping
Built-in support for scraping 33+ popular websites with intelligent fallback systems.
Supported Scraping Targets
| Category | Supported Sites | Data Returned |
|---|---|---|
| E-commerce | Amazon, eBay, Alibaba, Shopify | Products, prices, reviews |
| Social Media | Instagram, Twitter, TikTok, LinkedIn | Posts, followers, engagement |
| Search Engines | Google, Bing, DuckDuckGo | Search results, rankings |
| Job Boards | LinkedIn Jobs, Indeed, Glassdoor | Job listings, salaries, reviews |
| Real Estate | Zillow, Airbnb, Booking.com | Listings, prices, availability |
| News | BBC, CNN, Reuters, TechCrunch | Articles, headlines, metadata |
Smart Scrape Fallback System
The Smart Scrape feature uses a three-tier fallback system:
- Tier 1 - Residential IP: Attempts with residential IP to mimic real user
- Tier 2 - Rotating Session: Falls back to rotating IPs if detected
- Tier 3 - Browser Simulation: Uses full browser rendering as last resort
Using Smart Scrape
pythonfrom iploop import IPLoopClient client = IPLoopClient( api_key="iploop_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", ) # Smart scraping with automatic fallback data = client.scrape("https://www.amazon.com/s?k=laptop") print(data) # Returns structured product data
Enterprise Features
Advanced capabilities for large-scale operations.
Browser Profiles
Rotate through different browser profiles to increase success rates:
bash# Chrome on Windows curl -x http://[email protected]:8880 \ https://example.com # Safari on macOS curl -x http://[email protected]:8880 \ https://example.com # Mobile (iOS) curl -x http://[email protected]:8880 \ https://example.com
Performance Controls
Fine-tune performance based on your requirements:
| Parameter | Values | Purpose |
|---|---|---|
| speed | slow, normal, fast | Control request speed |
| timeout | 10-300 seconds | Request timeout |
| retries | 0-5 | Auto retry failed requests |
| concurrent | 1-100 | Concurrent connections |
Debug Mode
Enable detailed logging for troubleshooting:
pythonclient = IPLoopClient( api_key="iploop_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", debug=True, # Enable detailed logging log_file="/var/log/iploop.log" )
All Parameters Reference
| Parameter | Format | Default | Description |
|---|---|---|---|
| country | country-XX | random | Target country |
| city | city-NAME | random | Target city |
| session | session-ID | rotating | Session identifier |
| sesstype | sticky/rotating | rotating | Session type |
| lifetime | lifetime-MIN | 30 | Session lifetime in minutes |
| asn | asn-NUMBER | any | Target ASN |
| profile | profile-NAME | random | Browser profile |
| speed | slow/normal/fast | normal | Request speed |
Troubleshooting
Common issues and their solutions.
Connection Refused
Connection refused error when connecting to proxy.iploop.io:8880
Solutions:
- Check that you're using the correct endpoint:
proxy.iploop.io:8880(HTTP) orproxy.iploop.io:1080(SOCKS5) - Verify your network allows outbound connections on port 8880
- Disable corporate firewalls or VPNs that might block the connection
- Check your ISP doesn't block port 8880
407 Proxy Authentication Required
407 Proxy Authentication Required
Solutions:
- Ensure credentials are in the correct format:
YOUR_API_KEY - Verify your API Key is correct
- Check that credentials are URL-encoded if they contain special characters
- Make sure you're not using an expired API key
Slow Response Times
Requests are taking longer than expected
Solutions:
- Check your network latency with:
ping proxy.iploop.io - Try a location closer to your target: specify a nearby country/city
- Use rotating sessions instead of sticky for faster general responses
- Check IPLoop platform status for any service issues
- Increase timeout values if you need more time for target response
Getting Blocked or Detected
Target site is blocking requests or returning CAPTCHA
Solutions:
- Slow down your request rate using the
speed-slowparameter - Add realistic User-Agent headers and referers
- Use sticky sessions to maintain consistent IP for related requests
- Rotate through different browser profiles:
profile-chrome,profile-safari - Try the Smart Scrape feature for automated anti-detection
- Respect robots.txt and website terms of service
- Use appropriate User-Agent and request headers
If issues persist, contact our support team at [email protected] with details about the problem.