Nimble Residential Proxy provides access to a global network of premium residential IPs through a single BackConnect gateway. Built for developers who need reliable, high-performance proxy infrastructure without managing IP lists.
When to use
Use the Residential Proxy when you need to:
Access geo-restricted content : View content as it appears in different countries
Avoid IP blocking : Rotate through residential IPs for reliable access
Monitor pricing : Check prices and availability across different regions
Collect SERP data : Gather search results from various locations
Test localization : Verify how content appears to users in different regions
Protect brand : Monitor web presence and detect unauthorized use
Residential Proxy uses real residential IPs from ISPs worldwide, providing the most reliable and undetectable proxy solution.
http://account- {accountName} -pipeline- {pipelineName} : {pipelinePassword} @gateway.nimbleway.com:7000
Core parameters
Required parameters
Parameter Description Example accountNameYour company gateway name mycompany pipelineNamePipeline to use (default: “residential”) residential pipelinePasswordYour pipeline authentication credential your-password
Optional parameters
Add these to your connection string using hyphens:
Parameter Description Format countryTarget specific country country-{countryCode}stateTarget US state (US only) state-{stateCode}cityTarget specific city city-{cityName}sessionMaintain sticky session session-{sessionId}geosessionGeo-consistent session (advanced) geosession-{sessionId}
Usage
Basic proxy request
Send requests through residential proxy:
curl -x http://account-accountName-pipeline-pipelineName:[email protected] :7000 \
https://ipinfo.io
Country targeting
Route requests through specific countries:
import requests
# Target United States
proxies = {
'http' : 'http://account-accountName-pipeline-pipelineName-country-US:[email protected] :7000' ,
'https' : 'https://account-accountName-pipeline-pipelineName-country-US:[email protected] :7000'
}
response = requests.get( 'https://ipinfo.io' , proxies = proxies)
print ( f "Country: { response.json()[ 'country' ] } " )
Available country codes:
US - United States
GB - United Kingdom
DE - Germany
FR - France
JP - Japan
CA - Canada
AU - Australia
ALL - Random country
State targeting (US only)
Target specific US states:
import requests
# Target California
proxies = {
'http' : 'http://account-accountName-pipeline-pipelineName-country-US-state-CA:[email protected] :7000' ,
'https' : 'https://account-accountName-pipeline-pipelineName-country-US-state-CA:[email protected] :7000'
}
response = requests.get( 'https://ipinfo.io' , proxies = proxies)
print ( f "State: { response.json()[ 'region' ] } " )
City targeting
Target specific cities for precise location control:
import requests
# Target Los Angeles
proxies = {
'http' : 'http://account-accountName-pipeline-pipelineName-country-US-state-CA-city-losangeles:[email protected] :7000' ,
'https' : 'https://account-accountName-pipeline-pipelineName-country-US-state-CA-city-losangeles:[email protected] :7000'
}
response = requests.get( 'https://ipinfo.io' , proxies = proxies)
print ( f "City: { response.json()[ 'city' ] } " )
City targeting requires both country and state to be specified. Remove spaces from city names (e.g., “Los Angeles” becomes “losangeles”).
Sticky sessions
Maintain the same IP across multiple requests:
import requests
# Use session ID to maintain same IP
session_id = "mysession123"
proxies = {
'http' : f 'http://account-accountName-pipeline-pipelineName-session- { session_id } :[email protected] :7000' ,
'https' : f 'http://account-accountName-pipeline-pipelineName-session- { session_id } :[email protected] :7000'
}
# First request
response1 = requests.get( 'https://ipinfo.io' , proxies = proxies)
ip1 = response1.json()[ 'ip' ]
# Second request - uses same IP
response2 = requests.get( 'https://example.com' , proxies = proxies)
print ( f "Both requests used IP: { ip1 } " )
Session behavior:
Sessions remain active for 10 minutes after last request
Session IDs can be up to 32 alphanumeric characters
If IP goes offline, a new IP is automatically assigned
Combined targeting and sessions
Combine geotargeting with sticky sessions:
import requests
# Sticky session with US targeting
proxies = {
'http' : 'http://account-accountName-pipeline-pipelineName-country-US-state-NY-session-mysession:[email protected] :7000' ,
'https' : 'https://account-accountName-pipeline-pipelineName-country-US-state-NY-session-mysession:[email protected] :7000'
}
# Multiple requests maintain same New York IP
for i in range ( 3 ):
response = requests.get( 'https://ipinfo.io' , proxies = proxies)
print ( f "Request { i + 1 } : { response.json()[ 'city' ] } , { response.json()[ 'region' ] } " )
Geo-sessions (advanced)
Maintain geographic proximity and ISP consistency across rotations:
import requests
# Geo-session requires 16-32 character session ID
proxies = {
'http' : 'http://account-accountName-pipeline-pipelineName-country-US-geosession-mysession12345678:[email protected] :7000' ,
'https' : 'https://account-accountName-pipeline-pipelineName-country-US-geosession-mysession12345678:[email protected] :7000'
}
response = requests.get( 'https://ipinfo.io' , proxies = proxies)
print (response.text)
Geo-session features:
IPs stay within 15km of original location
Same ISP/ASN across rotations
Session persists up to 10 days
Currently available in US only
Requires session ID of 16-32 characters
Authentication methods
Username & password
Include credentials in every request (default method):
http://account- {accountName} -pipeline- {pipelineName} : {pipelinePassword} @gateway.nimbleway.com:7000
IP allowlist
Authenticate by trusted IP addresses without credentials:
Add your IP to pipeline allowlist in Nimble dashboard
Configure custom port (9000-10000)
Send requests without username/password:
curl -x http://gateway.nimbleway.com:9000 https://ipinfo.io
Learn More About Authentication Detailed guide to authentication methods and configuration
Successful response
When requesting https://ipinfo.io:
{
"ip" : "203.0.113.45" ,
"city" : "Los Angeles" ,
"region" : "California" ,
"country" : "US" ,
"loc" : "34.0522,-118.2437" ,
"org" : "AS12345 Example ISP" ,
"timezone" : "America/Los_Angeles"
}
Error responses
Code Meaning Solution 407 Authentication failed Verify account name, pipeline, and password 525 No IP available for location Try different location or remove filtering 401 IP not in allowlist Add your IP to pipeline allowlist 403 Pipeline disabled or quota reached Check dashboard for pipeline status
Complete Response Codes View all response codes and troubleshooting steps
Best practices
Choose appropriate rotation
Use rotating IPs (default) for:
Web scraping at scale
Rate limit distribution
Maximum IP diversity
Use sticky sessions for:
Multi-step workflows
Login flows
Shopping cart sessions
Set appropriate timeouts for proxy requests:
# Recommended timeout settings
response = requests.get(
'https://example.com' ,
proxies = proxies,
timeout = 45 # 45 seconds recommended
)
Handle IP rotation
Plan for IP changes in sticky sessions:
import requests
from requests.exceptions import ProxyError
def make_request_with_retry ( url , proxies , max_retries = 3 ):
for attempt in range (max_retries):
try :
response = requests.get(url, proxies = proxies, timeout = 45 )
return response
except ProxyError:
print ( f "Attempt { attempt + 1 } failed, retrying..." )
continue
raise Exception ( "Max retries exceeded" )
Monitor quota usage
Track your proxy usage to avoid hitting limits:
Check dashboard for real-time usage
Set up alerts for quota thresholds
Plan request volume within limits
Common use cases
E-commerce price monitoring
Monitor prices across different regions:
import requests
countries = [ 'US' , 'GB' , 'DE' , 'FR' ]
for country in countries:
proxies = {
'http' : f 'http://account-accountName-pipeline-pipelineName-country- { country } :[email protected] :7000' ,
'https' : f 'http://account-accountName-pipeline-pipelineName-country- { country } :[email protected] :7000'
}
response = requests.get( 'https://shop.example.com/product/123' , proxies = proxies)
print ( f " { country } price: { extract_price(response.text) } " )
SERP data collection
Collect search results from multiple locations:
import requests
locations = [
{ 'country' : 'US' , 'state' : 'CA' },
{ 'country' : 'US' , 'state' : 'NY' },
{ 'country' : 'GB' }
]
for loc in locations:
if 'state' in loc:
proxy_url = f "http://account-accountName-pipeline-pipelineName-country- { loc[ 'country' ] } -state- { loc[ 'state' ] } :[email protected] :7000"
else :
proxy_url = f "http://account-accountName-pipeline-pipelineName-country- { loc[ 'country' ] } :[email protected] :7000"
proxies = { 'http' : proxy_url, 'https' : proxy_url}
response = requests.get( 'https://www.google.com/search?q=example' , proxies = proxies)
# Process SERP data
Multi-step automation
Maintain session through login and workflow:
import requests
session_id = "workflow123"
proxies = {
'http' : f 'http://account-accountName-pipeline-pipelineName-country-US-session- { session_id } :[email protected] :7000' ,
'https' : f 'http://account-accountName-pipeline-pipelineName-country-US-session- { session_id } :[email protected] :7000'
}
# Step 1: Login
login_response = requests.post( 'https://example.com/login' ,
data = { 'user' : 'test' , 'pass' : 'test' },
proxies = proxies)
# Step 2: Navigate (same IP)
page_response = requests.get( 'https://example.com/dashboard' , proxies = proxies)
# Step 3: Action (same IP)
action_response = requests.post( 'https://example.com/action' ,
data = { 'action' : 'submit' },
proxies = proxies)
Limitations
Geographic coverage
Global : Residential IPs available in 195+ countries
State targeting : US only
City targeting : Major cities worldwide
Geo-sessions : US only (as of current version)
Session limits
Session duration : 10 minutes of inactivity
Geo-session duration : Up to 10 days
Session ID length : Maximum 32 characters
Geo-session ID length : 16-32 characters (minimum 16)
Request limits
Timeout : Recommended 40-45 seconds
Concurrent connections : Varies by plan
Quota : Based on your subscription plan
Next steps
Explore related Proxy features: