Quick answer
How do I set up LatamProxies proxies?
To set up LatamProxies proxies, point your tool to gw.latamproxies.com on port 7777 (HTTP/HTTPS) or 7778 (SOCKS5). Put your targeting in the username, for example USERNAME-country-br-city-sao_paulo, and use your proxy password. Residential traffic starts at $0.50/GB. No KYC — no ID, no selfie, no documents. Pay in crypto.
Connection details
| Gateway host | gw.latamproxies.com |
|---|---|
| HTTP / HTTPS port | 7777 |
| SOCKS5 port | 7778 |
| Username format | USERNAME-country-{cc}-city-{city}-session-{id}-ttl-{minutes} |
| Country code | ISO 3166-1, lower case: br, mx, ar, co, cl, pe |
| City | Lower case, spaces as _: sao_paulo, mexico_city, buenos_aires |
| Rotation | New IP on every request, or sticky sessions up to 30 minutes |
| Price | Residential from $0.50/GB · KYC: none · crypto only |
| Top-up | Minimum $25 in crypto; unused balance stays on your account |
How do I go from payment to the first request?
Five steps, a few minutes in total once your payment confirms.
Buy a plan
Choose a plan on the pricing page and pay in USDT, BTC, USDC, ETH, LTC or SOL. The 1 GB plan at $2.63 is enough to test. The small plan is paid from a $25 minimum top-up; the rest stays on your balance (never expires, non-refundable).
Copy your credentials
Open the dashboard and copy your proxy username and password. They are not your account number.
Build the username
Add targeting to the username:
-country-brfor Brazil,-city-sao_paulofor a city,-session-abc123-ttl-30for a sticky IP.Test with cURL
Run one cURL request through the gateway and check that the IP and country are what you asked for.
Plug it into your tool
Use the examples below for Python, Node.js, Playwright or Puppeteer.
How is the proxy username built?
All targeting goes into the username, so you never need a different host or port per country. The full format is USERNAME-country-{cc}-city-{city}-session-{id}-ttl-{minutes}. Every part after USERNAME is optional.
USERNAMEalone: a rotating IP from any supported country.USERNAME-country-mx: a rotating IP in Mexico.USERNAME-country-ar-city-buenos_aires: a rotating IP in Buenos Aires.USERNAME-country-br-session-abc123-ttl-30: the same Brazilian IP for up to 30 minutes.
Country codes are two-letter ISO codes in lower case. City names are lower case with _ instead of spaces and no accents: sao_paulo, not São Paulo. Do not add other parameters: the gateway does not read ASN, ZIP or carrier parameters in the username.
Username parameters
| Parameter | Example | What it does |
|---|---|---|
country | -country-co | Exit IP in that country (Colombia here) |
city | -city-mexico_city | Exit IP in that city; use it together with country |
session | -session-job42 | Keeps the same IP while the id stays the same |
ttl | -ttl-30 | Session length in minutes, up to 30 minutes |
How do I test the proxy with cURL?
cURL is the fastest way to check that your credentials and targeting work. The request below goes through the HTTP gateway and prints the exit IP. Replace USERNAME and PASSWORD with the values from your dashboard.
curl -x http://gw.latamproxies.com:7777 \
-U "USERNAME-country-br:PASSWORD" \
https://api.ipify.org?format=jsoncurl --socks5-hostname gw.latamproxies.com:7778 \
-U "USERNAME-country-mx-city-mexico_city-session-abc123-ttl-30:PASSWORD" \
https://api.ipify.org?format=jsonHow do I use the proxy with Python requests?
With requests, set the same proxy URL for both http and https. HTTPS targets are tunnelled through the HTTP gateway with CONNECT, so the URL scheme of the proxy stays http://. For SOCKS5, install requests[socks] and use socks5h:// so DNS is resolved through the proxy, in the target country.
import requests
USER = "USERNAME-country-co"
PASS = "PASSWORD"
proxy = f"http://{USER}:{PASS}@gw.latamproxies.com:7777"
proxies = {"http": proxy, "https": proxy}
r = requests.get("https://api.ipify.org?format=json", proxies=proxies, timeout=30)
print(r.json())# pip install "requests[socks]"
import requests
USER = "USERNAME-country-br-city-sao_paulo-session-job42-ttl-30"
PASS = "PASSWORD"
proxy = f"socks5h://{USER}:{PASS}@gw.latamproxies.com:7778"
with requests.Session() as s:
s.proxies = {"http": proxy, "https": proxy}
for _ in range(3):
print(s.get("https://api.ipify.org?format=json", timeout=30).json()) # same IP 3 timesHow do I use the proxy with Node.js?
In Node.js 18 or later, the built-in fetch does not read proxy settings, so use undici's ProxyAgent and pass it as the dispatcher. With axios, use https-proxy-agent and set proxy: false so axios does not apply its own proxy logic.
// npm install undici
import { fetch, ProxyAgent } from 'undici';
const user = 'USERNAME-country-ar';
const pass = 'PASSWORD';
const dispatcher = new ProxyAgent({
uri: 'http://gw.latamproxies.com:7777',
token: 'Basic ' + Buffer.from(`${user}:${pass}`).toString('base64'),
});
const res = await fetch('https://api.ipify.org?format=json', { dispatcher });
console.log(await res.json());// npm install axios https-proxy-agent
import axios from 'axios';
import { HttpsProxyAgent } from 'https-proxy-agent';
const user = encodeURIComponent('USERNAME-country-cl');
const pass = encodeURIComponent('PASSWORD');
const agent = new HttpsProxyAgent(`http://${user}:${pass}@gw.latamproxies.com:7777`);
const { data } = await axios.get('https://api.ipify.org?format=json', {
httpsAgent: agent,
proxy: false,
timeout: 30000,
});
console.log(data);How do I use the proxy with Playwright?
Playwright accepts the proxy server, username and password at launch. Use a sticky session for browser work: a page loads many resources, and one IP per page keeps the session consistent. Change the session id to get a new IP for the next browser context.
// npm install playwright
import { chromium } from 'playwright';
const browser = await chromium.launch({
proxy: {
server: 'http://gw.latamproxies.com:7777',
username: 'USERNAME-country-pe-city-lima-session-pw1-ttl-30',
password: 'PASSWORD',
},
});
const page = await browser.newPage();
await page.goto('https://api.ipify.org?format=json');
console.log(await page.textContent('body'));
await browser.close();# 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://gw.latamproxies.com:7777",
"username": "USERNAME-country-br-session-pw2-ttl-30",
"password": "PASSWORD",
})
page = browser.new_page()
page.goto("https://api.ipify.org?format=json")
print(page.text_content("body"))
browser.close()How do I use the proxy with Puppeteer?
Chrome does not accept credentials inside --proxy-server, so Puppeteer passes the server as a launch argument and the username and password with page.authenticate().
// npm install puppeteer
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch({
args: ['--proxy-server=http://gw.latamproxies.com:7777'],
});
const page = await browser.newPage();
await page.authenticate({
username: 'USERNAME-country-mx-city-mexico_city-session-pp1-ttl-30',
password: 'PASSWORD',
});
await page.goto('https://api.ipify.org?format=json');
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();Should I use rotating or sticky sessions?
Use rotating IPs for independent requests and sticky sessions for multi-step flows. New IP on every request, or sticky sessions up to 30 minutes.
- Rotating (no
session): best for crawling many product pages, such as Mercado Libre price monitoring, or for checking search results from many places. - Sticky (
-session-ID-ttl-30): best for browser automation, pagination that depends on cookies, checkout-flow testing on your own store and ad verification journeys.
For 4G/5G dedicated ports, rotation works differently: you change the IP through an API link. See the mobile proxy rotation guide.
What do common errors mean?
Most problems come from the username string or from the target site:
- 407 Proxy Authentication Required: the username or password is wrong. Check for spaces, and URL-encode special characters in the password.
- Connection refused or timeout on connect: check the host and port. HTTP uses
7777, SOCKS5 uses7778. - Wrong country: check the country code (
br, notbra) and the city spelling (sao_paulo). - 403 or CAPTCHA from the target: slow down, rotate more often, or use a sticky session with a real browser.
- Target refused by the gateway: banks, government portals, payment portals and SMTP are blocked by our Acceptable Use Policy.
If the problem continues, email [email protected] with your username string (without the password), the target and the error.
Setup questions
What host and port do LatamProxies proxies use?
All residential traffic goes through gw.latamproxies.com. Use port 7777 for HTTP and HTTPS targets, and port 7778 for SOCKS5. The same host and ports work for every country; targeting is set in the username, for example USERNAME-country-cl.
How do I target a specific Latin American country?
Add -country- and the two-letter ISO code in lower case to your username: br for Brazil, mx for Mexico, ar for Argentina, co for Colombia, cl for Chile, pe for Peru. The full list of 38 countries is on the countries page.
How do I keep the same IP?
Add -session- with any id and -ttl- with a number of minutes, for example USERNAME-country-br-session-abc123-ttl-30. The IP stays the same while you reuse that id, up to 30 minutes. Use a new id to get a new IP.
Should I use HTTP or SOCKS5?
Use HTTP on port 7777 for most tools: browsers, scrapers and HTTP libraries handle it natively, and HTTPS targets are tunnelled securely. Use SOCKS5 on port 7778 when a tool only supports SOCKS, or when you want DNS resolved on the proxy side with socks5h://.
Is my proxy username the same as my account number?
No. Your account number logs you into the dashboard. Your proxy username and password are shown in the dashboard and are used only for the gateway. Never share your account number, and never put it in scripts.
Can I use the proxies with Scrapy, Selenium or other tools?
Yes. Any tool that supports HTTP or SOCKS5 proxies with username and password authentication works with LatamProxies. Use the same host, port and username format shown in this guide. If a tool cannot send proxy credentials, contact [email protected].
How much does it cost to test the setup?
The smallest residential plan is 1 GB for $2.63, enough for thousands of test requests to a light page. Larger plans cost less per GB, down to $0.50/GB. No KYC — no ID, no selfie, no documents. Pay in crypto. See the pricing page. The small plan is paid from a $25 minimum top-up; the rest stays on your balance (never expires, non-refundable).
Get your credentials
Buy a plan with USDT, BTC or another coin and start sending requests as soon as your top-up is credited.