Proxy List
DocsProxy List

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.

GET/api/v1/packages/{id}/proxies

Query parameters

ParameterDefaultDescription
quantity10Number of proxy strings to return (1–1000)
typerotatingrotating or sticky
protocolhttphttp or socks5
formatuser:pass@host:portOutput format — see table below
countriesComma-separated ISO 3166-1 alpha-2 country codes
exclude_countriesComma-separated country codes to exclude
statesState names (lowercase, no spaces, e.g. california)
citiesCity names (lowercase, no spaces, e.g. newyork)
zipcodesZIP/postal codes, comma-separated
asnsAutonomous System Numbers (numeric, with or without AS prefix)
exclude_statesState names to exclude (lowercase, no spaces). 2× billing applies.
exclude_citiesCity names to exclude (lowercase, no spaces). 2× billing applies.
exclude_zipcodesZIP codes to exclude. 2× billing applies.
exclude_asnsASNs to exclude (numeric). 2× billing applies.
sessidSticky-session ID. Reuse the same string within the next ~30 minutes to keep the same exit IP without occupying a sticky port.
sessttl30Sticky-session TTL in minutes (1–120). Defaults to 30 minutes when omitted.
unique_sessidfalseWhen 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.
anonymousfalseSet 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 valueExample output
user:pass@host:portabc123:pass7x9k2m@proxy.raxyproxy.com:823
host:port:user:passproxy.raxyproxy.com:823:abc123:pass7x9k2m
user:pass:host:portabc123:pass7x9k2m:proxy.raxyproxy.com:823
host:port@user:passproxy.raxyproxy.com:823@abc123:pass7x9k2m
user:passabc123:pass7x9k2m
host:portproxy.raxyproxy.com:823
http://user:pass@host:porthttp://abc123:pass7x9k2m@proxy.raxyproxy.com:823
socks5://user:pass@host:portsocks5://abc123:pass7x9k2m@proxy.raxyproxy.com:824

Geo filtering examples

geo-examples.sh
# 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"
proxies-plain.txt
# Plain text response (default):
abc123def456:pass7x9k2m@proxy.raxyproxy.com:823
abc123def456:pass7x9k2m@proxy.raxyproxy.com:823
abc123def456:pass7x9k2m@proxy.raxyproxy.com:823
proxies-json.json
{
  "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-sessid.sh
# 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

proxies.sh
# 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.txt
proxies.py
import 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}')
proxies.mjs
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]);