Authorise your server IP
The list opens only from IPs you add in the dashboard. Your API key stays in your code; the proxy just carries the connection.
Working with AI at volume means many API calls and pages, often from a region where the service is available. Advanced.name gives IPv4 pools on one link, authorised by your server IP, so your ChatGPT, Claude or Midjourney workload runs from the country you need and spreads across addresses instead of one.
Two things decide an AI pipeline: reaching the service and not stacking every call on one address.
Access from a region where the API answers
World MIX, Europe, CIS and China pools; pick the country from the CSV export
Many addresses for high call volume
From 5,000 to 50,000 IPs per package, about a third replaced daily
Threads for parallel requests and parsing
500 to 5,000 threads depending on the package, all protocols on one port
No meter on prompts, images and pages
Traffic is not counted on any unlimited package
Region, package, term. The price is per one authorised IP; each extra IP adds 10%.
The list opens only from IPs you add in the dashboard. Your API key stays in your code; the proxy just carries the connection.
Pick the country from the CSV export so the service sees a local, allowed address. World MIX covers the widest pool.
Load the list, take the next address per call and retry on another when one is slow. The script below does this with the standard library.
Set API_URL, your API_KEY and MODEL, put one prompt per line in prompts.txt. Each call goes through the next proxy and retries on another when it is slow; answers land in a CSV. Use it only with keys and services you are authorised for. Check the pool with the proxy checker.
#!/usr/bin/env python3
"""Rotating-proxy client for OpenAI-compatible chat APIs (Advanced.name proxies).
Sends each prompt from a file to a chat API through a different proxy, with
retries, and writes the answers to a CSV. Use it only with an API key and a
service you are authorised for. Standard library only. Run: python3 ai_calls.py
"""
# ================================ CONFIG ====================================
CSV_URL = "https://get.advanced.name/YOUR_LIST_ID.csv" # CSV export link from your dashboard
COUNTRY = "" # ISO code where the service is available, or "" for the whole pool
MIN_SPEED = 3
API_URL = "https://api.openai.com/v1/chat/completions" # OpenAI-compatible endpoint you may use
API_KEY = "YOUR_API_KEY" # your own key; it stays in this file, never in the proxy
MODEL = "gpt-4o-mini" # model name the endpoint expects
PROMPTS_FILE = "prompts.txt" # one user prompt per line
OUT_FILE = "answers.csv" # prompt;answer;proxy is written here
THREADS = 20
TIMEOUT = 30
RETRIES = 3
# ============================================================================
import csv
import io
import itertools
import json
import sys
import threading
import urllib.request
from concurrent.futures import ThreadPoolExecutor, as_completed
COL_IP, COL_PORT, COL_COUNTRY, COL_SPEED = 0, 1, 2, 3
def load_proxies():
raw = urllib.request.urlopen(CSV_URL, timeout=30).read().decode("utf-8", "replace")
pool = []
for row in csv.reader(io.StringIO(raw), delimiter=";"):
if len(row) <= COL_SPEED or not row[COL_PORT].strip().isdigit():
continue
if COUNTRY and row[COL_COUNTRY].strip().upper() != COUNTRY.upper():
continue
if int(row[COL_SPEED] or 0) < MIN_SPEED:
continue
pool.append(row[COL_IP].strip() + ":" + row[COL_PORT].strip())
return pool
def ask(prompt, proxy):
body = json.dumps({"model": MODEL, "messages": [{"role": "user", "content": prompt}]}).encode()
handler = urllib.request.ProxyHandler({"http": "http://" + proxy, "https": "http://" + proxy})
req = urllib.request.Request(API_URL, data=body, method="POST", headers={
"Authorization": "Bearer " + API_KEY, "Content-Type": "application/json"})
data = json.loads(urllib.request.build_opener(handler).open(req, timeout=TIMEOUT).read())
return data["choices"][0]["message"]["content"].strip()
def main():
proxies = load_proxies()
if not proxies:
sys.exit("No proxies for COUNTRY=%r." % COUNTRY)
with open(PROMPTS_FILE, encoding="utf-8") as fh:
prompts = [line.strip() for line in fh if line.strip() and not line.startswith("#")]
print("proxies: %d (%s), prompts: %d, threads: %d" % (len(proxies), COUNTRY or "any", len(prompts), THREADS))
rotation = itertools.cycle(proxies)
lock = threading.Lock()
def run(prompt):
for _ in range(RETRIES):
with lock:
proxy = next(rotation)
try:
return prompt, ask(prompt, proxy), proxy
except Exception:
continue
return prompt, "error: unreachable", ""
rows = []
with ThreadPoolExecutor(max_workers=THREADS) as pool:
for fut in as_completed([pool.submit(run, p) for p in prompts]):
prompt, answer, proxy = fut.result()
rows.append((prompt, answer, proxy))
print("%-40s %s" % (prompt[:40], (answer[:50] + "...") if len(answer) > 50 else answer))
with open(OUT_FILE, "w", encoding="utf-8", newline="") as out:
writer = csv.writer(out, delimiter=";")
writer.writerow(["prompt", "answer", "proxy"])
writer.writerows(rows)
print("written %s (%d rows)" % (OUT_FILE, len(rows)))
if __name__ == "__main__":
main()
Most SDKs and HTTP clients take a proxy per request. In Python with requests set proxies={'http': 'http://ip:port', 'https': 'http://ip:port'}; the OpenAI and Anthropic SDKs read the standard HTTPS_PROXY variable, so exporting it or passing an http client with the proxy is enough. HTTP and SOCKS share one port, so http:// covers both.
Keep your API key in the code or an env var, authorise the server IP in the dashboard, and let the list rotate per call. Retry a slow request on the next address instead of blocking on it.
When a service is only up in some countries, pick those from the CSV export so every call leaves from an allowed address. For scraping AI-generated pages rather than an API, drive the pool the same way you would a scraper.
Filter the pool first with the Socks List Processor; for a light trial the free proxy list is enough to test the wiring.

API calls at volume cost less on an unlimited package. Keep a service web app where you log in to your account on a residential address.
API calls at volumeBest fit
Traffic is not counted, so long completions and generated images add nothing to the bill. Calls spread across thousands of addresses instead of hitting one IP.
$700 per monthor $2.70 per hour
An account in the web app
The ChatGPT or Midjourney web app sees one home IP while the exit device is online. You set the session length, 3 minutes to 24 hours, and choose the country or city in the string.
from $1.39 per GB1 GB for $2.29
Sites with a captcha
When a service answers package addresses with a captcha, Core gives a home IP from the right country on every request. An API call weighs kilobytes, so a gigabyte lasts.
from $0.49 per GB1 GB for $0.85
Pick a package, take the free test hour, send your calls through the live pool.