Proxy List
Generate ready-to-use proxy strings for a package, with optional geo-targeting and format selection.
GET /packages/:id/proxies
Returns a list of proxy connection strings for the given package. By default the response is plain text (one proxy per line), making it trivially importable into any tool. Pass plain text (one proxy per line), making it trivially importable into any tool. Pass Accept: application/json to get a JSON envelope instead.
/api/v1/packages/{id}/proxiesQuery parameters
| Parameter | Default | Description |
|---|---|---|
quantity | 10 | Number of proxy strings to return (1–1000) |
type | rotating | rotating or sticky |
protocol | http | http or socks5 |
format | user:pass@host:port | Output format — see table below |
countries | — | Comma-separated ISO 3166-1 alpha-2 country codes |
exclude_countries | — | Comma-separated country codes to exclude |
states | — | State names (lowercase, no spaces, e.g. california) |
cities | — | City names (lowercase, no spaces, e.g. newyork) |
zipcodes | — | ZIP/postal codes, comma-separated |
asns | — | Autonomous System Numbers (numeric, with or without AS prefix) |
exclude_states | — | State names to exclude (lowercase, no spaces). 2× billing applies. |
exclude_cities | — | City names to exclude (lowercase, no spaces). 2× billing applies. |
exclude_zipcodes | — | ZIP codes to exclude. 2× billing applies. |
exclude_asns | — | ASNs to exclude (numeric). 2× billing applies. |
sessid | — | Sticky-session ID. Reuse the same string within the next ~30 minutes to keep the same exit IP without occupying a sticky port. |
sessttl | 30 | Sticky-session TTL in minutes (1–120). Defaults to 30 minutes when omitted. |
unique_sessid | false | When true and sessid is set, generated proxies share the sessid prefix but append a unique suffix per line (sessid.0, sessid.1, …) — useful for issuing N independent sticky sessions in one request. |
anonymous | false | Set to true to only return high-anonymity exits. May reduce the available pool size. |
2× billing on state / city / ZIP / ASN
State, city, ZIP, and ASN targeting apply a 2× traffic multiplier for Residential, Mobile, and Datacenter packages. Premium Residential is exempt. Country targeting (countries / exclude_countries) is always free.
Output formats
| format value | Example output |
|---|---|
user:pass@host:port | abc123:pass7x9k2m@proxy.raxyproxy.com:823 |
host:port:user:pass | proxy.raxyproxy.com:823:abc123:pass7x9k2m |
user:pass:host:port | abc123:pass7x9k2m:proxy.raxyproxy.com:823 |
host:port@user:pass | proxy.raxyproxy.com:823@abc123:pass7x9k2m |
user:pass | abc123:pass7x9k2m |
host:port | proxy.raxyproxy.com:823 |
http://user:pass@host:port | http://abc123:pass7x9k2m@proxy.raxyproxy.com:823 |
socks5://user:pass@host:port | socks5://abc123:pass7x9k2m@proxy.raxyproxy.com:824 |
Geo filtering examples
# US proxies only
curl "https://raxyproxy.com/api/v1/packages/12/proxies?quantity=5&countries=us" \
-H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# US, UK, and Germany — rotating HTTP
curl "https://raxyproxy.com/api/v1/packages/12/proxies?quantity=10&countries=us,gb,de" \
-H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# California only — note: 2× billing applies
curl "https://raxyproxy.com/api/v1/packages/12/proxies?quantity=5&countries=us&states=california" \
-H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# New York city, sticky, SOCKS5, JSON response
curl "https://raxyproxy.com/api/v1/packages/12/proxies?quantity=3&countries=us&cities=newyork&type=sticky&protocol=socks5" \
-H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Accept: application/json"# Plain text response (default):
abc123def456:pass7x9k2m@proxy.raxyproxy.com:823
abc123def456:pass7x9k2m@proxy.raxyproxy.com:823
abc123def456:pass7x9k2m@proxy.raxyproxy.com:823{
"data": {
"package_id": 12,
"count": 3,
"billing_multiplier": 1.0,
"proxies": [
"abc123def456:pass7x9k2m@proxy.raxyproxy.com:823",
"abc123def456:pass7x9k2m@proxy.raxyproxy.com:823",
"abc123def456:pass7x9k2m@proxy.raxyproxy.com:823"
]
},
"meta": { "version": "v1" }
}Sticky sessions: port vs sessid
There are two ways to keep the same exit IP: connect to a port in the sticky range (10000–20000) — one IP per port — or attach a sessid parameter to the credentials and use the standard rotating port. The sessid mechanism is preferred when you need many independent sticky sessions concurrently.
# Sticky session via sessid — same IP for 10 minutes, single proxy
curl "https://raxyproxy.com/api/v1/packages/12/proxies?quantity=1&countries=us&sessid=worker-7&sessttl=10" \
-H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Sticky session via port range — same IP per port, 100 distinct sticky exits in parallel
curl "https://raxyproxy.com/api/v1/packages/12/proxies?quantity=100&type=sticky" \
-H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# 20 unique sessid sticky sessions on the standard rotating port — 20 isolated IPs, 30 min TTL
curl "https://raxyproxy.com/api/v1/packages/12/proxies?quantity=20&sessid=worker&unique_sessid=true&sessttl=30" \
-H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Anonymous-only US proxies, excluding California
curl "https://raxyproxy.com/api/v1/packages/12/proxies?quantity=10&countries=us&exclude_states=california&anonymous=true" \
-H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Code examples
# Download 100 US proxies in URL format to a file
curl -s "https://raxyproxy.com/api/v1/packages/12/proxies?quantity=100&countries=us&format=http://user:pass@host:port" \
-H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-o proxies.txtimport requests
API_KEY = 'raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
PACKAGE_ID = 12
resp = requests.get(
f'https://raxyproxy.com/api/v1/packages/{PACKAGE_ID}/proxies',
params={
'quantity': 10,
'countries': 'us',
'format': 'http://user:pass@host:port',
},
headers={
'Authorization': f'Bearer {API_KEY}',
'Accept': 'text/plain',
},
timeout=10,
)
proxies = resp.text.strip().splitlines()
print(f'Got {len(proxies)} proxies')
# Use the first one
session = requests.Session()
session.proxies = {'http': proxies[0], 'https': proxies[0]}
ip = session.get('https://httpbin.org/ip', timeout=10).json()['origin']
print(f'My IP via proxy: {ip}')const API_KEY = 'raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const PACKAGE_ID = 12;
const url = new URL(`https://raxyproxy.com/api/v1/packages/${PACKAGE_ID}/proxies`);
url.searchParams.set('quantity', '10');
url.searchParams.set('countries', 'us');
url.searchParams.set('format', 'http://user:pass@host:port');
const resp = await fetch(url, {
headers: { Authorization: `Bearer ${API_KEY}` },
});
const proxies = (await resp.text()).trim().split('\n');
console.log(`Got ${proxies.length} proxies`);
console.log(proxies[0]);