Key Takeaway:
Every Proxy-Seller setup comes down to three things: the proxy address and port, how you authenticate (allow-listed IP or login and password), and — for residential proxies — the targeting and session suffixes you add to the login. Check the exit IP before you run anything real, and slow down before you rotate harder. For what Proxy-Seller is and whether it suits you, read the Proxy-Seller review first.
Contents
- Before you start: credentials and authentication
- Check the proxy works
- Residential targeting and sticky sessions
- Python: Requests and Scrapy
- Browser automation: Playwright, Selenium, Puppeteer
- Check the addresses you were given
- Troubleshooting
- Using proxies responsibly
- FAQ
Before You Start: Credentials and Authentication
After you buy from Proxy-Seller (the code EXAMINEIP gives a discount at checkout), the dashboard lists your proxies with their address, port, login and password. Use the values from your own dashboard — every example below uses placeholders.
Two ways to authenticate
- Login and password. Works from anywhere. The credentials go in the proxy URL or in your tool’s proxy settings. Needed for residential targeting, which is controlled through the login.
- Allow-listed IP. You register your own public IP address in the dashboard and connect with no credentials. Simplest for browser automation, but it stops working the moment your IP changes — common on home connections. Check yours with the IP address tool, and see dynamic vs static IP addresses.
The proxy URL format
http://LOGIN:PASSWORD@HOST:PORT
socks5h://LOGIN:PASSWORD@HOST:PORT
For residential proxies, Proxy-Seller’s documentation gives regional hosts such as res.proxy-seller.com (Netherlands) and us.res.proxy-seller.com (United States) on port 10000, accepting HTTPS and SOCKS5 on the same port. Static proxies (IPv4, IPv6, ISP, mobile) each have their own address and port in the dashboard; check which port is HTTP and which is SOCKS5 for your plan.
If your password contains characters such as @, : or #, URL-encode it, or the URL will be read wrongly. There’s a Python example in the troubleshooting section.
🔍 Check the Proxy Works
Before you run a script, confirm three things: the connection succeeds, the exit IP isn’t yours, and the location is the one you ordered. ExamineIP’s IP endpoint returns all of that as JSON:
curl -x "http://LOGIN:PASSWORD@res.proxy-seller.com:10000" https://tools.examineip.com/ip.php
The response includes ip, country, isp, asn, and two flags: hosting (the address belongs to a data centre) and proxy (the address is known as a proxy or VPN exit). For a residential proxy you’d expect a consumer ISP and hosting: false; for an IPv4 data centre proxy, hosting: true is normal.
Use it for one-off checks, not inside a scraping loop — it’s a free endpoint with its own limits.
Through SOCKS5
curl --socks5-hostname res.proxy-seller.com:10000 --proxy-user "LOGIN:PASSWORD" https://tools.examineip.com/ip.php
--socks5-hostname (or socks5h:// in a URL) makes the proxy resolve domain names. Plain socks5:// resolves them on your own machine, which sends your DNS lookups outside the proxy — see what is a DNS leak?
Residential Targeting and Sticky Sessions
Residential proxies are controlled through suffixes added to your login, separated by underscores. This is the syntax from Proxy-Seller’s documentation:
| Control | Suffix | Example |
|---|---|---|
| Country | _c_XX | _c_US |
| City | _city_Name | _city_New-York |
| ISP | _isp_ID | _isp_51811 |
| ASN | _asn_Number | _asn_12389 |
| ZIP code | _zip_Code | _zip_10001 |
| Session | _s_ID | _s_100 |
| Session length | _ttl_Time (after _s_) | _ttl_30s, _ttl_15m, _ttl_1h |
How it behaves:
- No session suffix: every request gets a fresh IP.
- Same session ID: the same exit IP, while that address stays online and the session is alive.
- With a TTL: once the time runs out, the next request gets a new IP. Inactive sessions expire after 60 minutes.
# United States, New York, same IP for 15 minutes
curl -x "http://LOGIN_c_US_city_New-York_s_job42_ttl_15m:PASSWORD@us.res.proxy-seller.com:10000" https://tools.examineip.com/ip.php
Run it twice within 15 minutes and you should see the same IP; change job42 to anything else and you should get a new one.
Python: Requests and Scrapy
Requests: a single proxy
import requests
PROXY = "http://LOGIN:PASSWORD@res.proxy-seller.com:10000"
proxies = {"http": PROXY, "https": PROXY}
r = requests.get("https://tools.examineip.com/ip.php", proxies=proxies, timeout=20)
print(r.json())
The https key still uses an http:// proxy URL. That’s correct: Requests opens an encrypted tunnel through the proxy to the site.
Requests: country targeting with sticky sessions
import time
import uuid
from urllib.parse import quote
import requests
LOGIN = "LOGIN"
PASSWORD = quote("PASSWORD", safe="") # safe for special characters
HOST = "res.proxy-seller.com:10000"
def proxy_for(country, session_id, ttl="10m"):
user = f"{LOGIN}_c_{country}_s_{session_id}_ttl_{ttl}"
url = f"http://{user}:{PASSWORD}@{HOST}"
return {"http": url, "https": url}
def fetch_all(urls, country="DE", per_session=10, delay=2.0):
session_id = uuid.uuid4().hex[:12]
for i, url in enumerate(urls):
if i and i % per_session == 0: # new IP every N requests
session_id = uuid.uuid4().hex[:12]
r = requests.get(url, proxies=proxy_for(country, session_id), timeout=20)
print(r.status_code, url)
time.sleep(delay) # be polite to the site
Requests over SOCKS5
# pip install "requests[socks]"
PROXY = "socks5h://LOGIN:PASSWORD@res.proxy-seller.com:10000"
proxies = {"http": PROXY, "https": PROXY}
Scrapy
Scrapy’s built-in proxy middleware reads the proxy from each request’s meta, including credentials in the URL:
import scrapy
PROXY = "http://LOGIN_c_GB:PASSWORD@res.proxy-seller.com:10000"
class PricesSpider(scrapy.Spider):
name = "prices"
custom_settings = {
"DOWNLOAD_DELAY": 2,
"AUTOTHROTTLE_ENABLED": True,
"ROBOTSTXT_OBEY": True,
}
def start_requests(self):
for url in ["https://example.com/products"]:
yield scrapy.Request(url, meta={"proxy": PROXY})
def parse(self, response):
self.logger.info("Got %s", response.url)
Browser Automation: Playwright, Selenium, Puppeteer
Playwright (Python) — the easiest option
Playwright accepts a proxy with a username and password directly:
# pip install playwright ; playwright install chromium
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(proxy={
"server": "http://res.proxy-seller.com:10000",
"username": "LOGIN_c_FR_s_demo1_ttl_15m",
"password": "PASSWORD",
})
page = browser.new_page()
page.goto("https://tools.examineip.com/ip.php")
print(page.inner_text("body"))
browser.close()
Selenium (Chrome)
Chrome’s --proxy-server flag doesn’t accept a username and password. The reliable approach is to allow-list your own IP in the Proxy-Seller dashboard and connect without credentials:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--proxy-server=http://203.0.113.10:50100") # your proxy, IP allow-listed
driver = webdriver.Chrome(options=options)
driver.get("https://tools.examineip.com/ip.php")
print(driver.find_element("tag name", "body").text)
driver.quit()
If you need login authentication in a browser, use Playwright instead.
Puppeteer (Node.js)
const puppeteer = require("puppeteer");
(async () => {
const browser = await puppeteer.launch({
args: ["--proxy-server=http://res.proxy-seller.com:10000"],
});
const page = await browser.newPage();
await page.authenticate({ username: "LOGIN_c_US", password: "PASSWORD" });
await page.goto("https://tools.examineip.com/ip.php");
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();
})();
In a normal browser
Firefox has its own proxy settings (Settings → Network Settings → Manual proxy configuration), separate from the operating system. Chrome and Edge use the system settings. A proxy-switching extension is handier if you move between several proxies. After connecting, open the IP address tool, then run the VPN leak test — WebRTC can reveal your real IP address in a browser even when the page itself loads through the proxy.
Check the Addresses You Were Given
Proxy-Seller replaces faulty addresses within a day of purchase and handles refund claims within 72 hours for most products, so check static proxies straight away:
- Location and network: paste the list into the bulk IP lookup and confirm the countries and ISPs match your order.
- Blacklists: run any address you’ll rely on through the IP reputation check. An address listed for spam is more likely to be blocked.
- Ownership: the WHOIS lookup shows which organisation the address range is registered to.
- Latency: time a request through each proxy to your real target, not to a test page — distance to the target is what matters.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| 407 Proxy Authentication Required | Wrong login or password, unencoded special characters, or a typo in a suffix | Copy credentials from the dashboard; URL-encode the password; test without suffixes first |
| Worked yesterday, refused today | You use IP allow-listing and your own IP changed | Check your IP, update the allow-list, or switch to login authentication |
| Timeouts | Wrong port or protocol, a firewall blocking the port, or an exit that went offline | Confirm HTTP vs SOCKS5 port; try another network; start a new session ID |
| 403, CAPTCHAs or empty pages | The site detects automation or blocks that address type | Slow down first; use realistic headers or a real browser; move from data centre to residential |
| Wrong country | Missing or misspelled country suffix, or a stale sticky session | Check _c_XX; use a new session ID; verify with ip.php |
| Site sees your real location anyway | DNS resolved locally, or WebRTC in a browser | Use socks5h://; run the leak test in the browser |
| SSL certificate errors | A proxy URL written as https:// when the tool expects http:// | Use http:// for the proxy URL even for HTTPS sites |
Encoding a password with special characters
from urllib.parse import quote
password = quote("p@ss:w#rd", safe="")
proxy = f"http://LOGIN:{password}@res.proxy-seller.com:10000"
Retrying without hammering the site
import time
import requests
def fetch_with_retry(url, proxies, attempts=3):
for n in range(attempts):
try:
r = requests.get(url, proxies=proxies, timeout=20)
if r.status_code == 429: # rate limited: wait, don't rotate
time.sleep(int(r.headers.get("Retry-After", 30)))
continue
r.raise_for_status()
return r
except requests.RequestException as exc:
print(f"attempt {n + 1} failed: {exc}")
time.sleep(2 ** n) # 1s, 2s, 4s
return None
Using Proxies Responsibly
- Read robots.txt and the site’s terms. A proxy changes your address, not the rules.
- Rate-limit before you rotate. A 429 response means “slow down”. Rotating to dodge it is what gets whole address ranges blocked.
- Don’t get around logins or paywalls, and don’t run accounts in ways a platform forbids.
- Treat personal data carefully. Scraping information about people is regulated in the EU and elsewhere, even when it’s publicly visible.
- Follow Proxy-Seller’s terms. They prohibit torrenting copyrighted material, phishing, brute-force attacks, fraud including ad and click fraud, and other illegal use.
Checking robots.txt correctly in Python — note it’s read from the site root, not the page path:
from urllib.parse import urljoin
from urllib.robotparser import RobotFileParser
def allowed(url, agent="*"):
rp = RobotFileParser()
rp.set_url(urljoin(url, "/robots.txt"))
rp.read()
return rp.can_fetch(agent, url)
Frequently Asked Questions
HTTP or SOCKS5 — which should I use?
Use HTTP for web requests; almost every scraping library and browser supports it. Use SOCKS5 for non-web traffic or when a tool only speaks SOCKS, and prefer socks5h so DNS goes through the proxy.
Do proxies encrypt my traffic?
No. HTTPS sites stay encrypted end to end, but the proxy itself adds no encryption. For privacy, use a VPN — see VPN or proxy: which is safer?
How do I keep the same IP for a multi-step task?
Add a session suffix with a TTL longer than the task, for example _s_checkout1_ttl_30m, and use the same login for every step.
How many proxies do I need?
There’s no fixed ratio — it depends on how strict the target is. Start small at a slow rate, watch for 403 and 429 responses, and add addresses only when you’re blocked at a rate the site should tolerate.
Can I use Proxy-Seller proxies for Netflix or other streaming?
It isn’t what they’re for. Streaming services block known proxy and data centre addresses, and a proxy that works elsewhere but not on a streaming service doesn’t qualify for a refund.
Why does ip.php say “hosting: true” for my proxy?
The address belongs to a data centre range. That’s expected for IPv4 and IPv6 proxies. For residential proxies, it would suggest the exit isn’t a home connection — worth raising with support within the refund window.