# proxies residenciais Node.js por cidade dos EUA

> Exemplos em Node.js para proxies de cidades dos EUA: undici fetch com usuário de cidade, um loop pelas cidades e Playwright com IP de cidade fixo. Verificado sintaticamente. Sem KYC.

- URL: https://metroproxies.com/pt/docs/node/
- Última atualização: 2026-10-18
- Publisher: MetroProxies (https://metroproxies.com)

Exemplos com undici (a biblioteca por trás do fetch do Node) e Playwright, verificados sintaticamente com `node --check`.

**Resposta rápida — Como uso um proxy de cidade dos EUA no Node.js?**

Crie um undici `ProxyAgent` para `http://gw.metroproxies.com:7777` com um usuário de cidade como `USERNAME-country-us-state-fl-city-orlando`, e passe-o como `dispatcher` do `fetch`; o Playwright aceita os mesmos valores na sua opção `proxy`. A **MetroProxies** inclui segmentação por cidade, CEP e ASN em todos os planos a partir de US$ 0,50/GB (outubro de 2026). Sem KYC; cripto.

*1. fetch através de um IP de cidade (salve como city.mjs)*

```javascript
import { ProxyAgent, fetch } from 'undici';

const user = 'USERNAME-country-us-state-fl-city-orlando';
const agent = new ProxyAgent({
  uri: 'http://gw.metroproxies.com:7777',
  token: 'Basic ' + Buffer.from(`${user}:PASSWORD`).toString('base64'),
});

const res = await fetch('https://ipinfo.io/json', { dispatcher: agent, signal: AbortSignal.timeout(30000) });
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
await agent.close();

```

*2. Várias cidades, um agent para cada (salve como cities.mjs)*

```javascript
import { ProxyAgent, fetch } from 'undici';

const cities = [['fl', 'orlando'], ['fl', 'tampa'], ['ga', 'atlanta']];

for (const [state, city] of cities) {
  const user = `USERNAME-country-us-state-${state}-city-${city}`;
  const agent = new ProxyAgent({
    uri: 'http://gw.metroproxies.com:7777',
    token: 'Basic ' + Buffer.from(`${user}:PASSWORD`).toString('base64'),
  });
  try {
    const res = await fetch('https://ipinfo.io/json', { dispatcher: agent, signal: AbortSignal.timeout(30000) });
    if (!res.ok) throw new Error(`HTTP ${res.status}`);
    const info = await res.json();
    console.log(city, '->', info.ip, info.city, info.region);
  } catch (err) {
    console.log(city, 'failed:', err.message);
  } finally {
    await agent.close();
  }
}

```

*3. Playwright com IP de cidade fixo (salve como browser.mjs)*

```javascript
import { chromium } from 'playwright';

const browser = await chromium.launch({
  proxy: {
    server: 'http://gw.metroproxies.com:7777',
    username: 'USERNAME-country-us-state-fl-city-miami-session-mia01-ttl-15',
    password: 'PASSWORD',
  },
});
const context = await browser.newContext({ timezoneId: 'America/New_York', locale: 'en-US' });
const page = await context.newPage();
await page.goto('https://ipinfo.io/json', { timeout: 60000 });
console.log(await page.textContent('body'));
await browser.close();

```

## Com o que devo me preocupar no Node.js?

- **Keep-alive:** um `ProxyAgent` reutiliza conexões, então no modo rotativo ele mantém o mesmo IP de saída enquanto uma conexão fica aberta. Crie um agent por cidade, ou feche-o, para obter um novo IP.
- **Fuso horário e locale:** as opções `timezoneId` e `locale` do Playwright fazem o navegador corresponder à cidade; cada [página de cidade](https://metroproxies.com/pt/cities/) informa seu fuso IANA (Miami: `America/New_York`).
- **SOCKS5:** o Chromium não envia usuário para proxies SOCKS5; use a porta HTTP nos navegadores.
- **Timeouts:** `AbortSignal.timeout()` no fetch, `timeout` no Playwright.
- **Ritmo:** mantenha as requisições a cada site moderadas e siga o robots.txt e os termos dele.

## Para onde devo ir agora?

Comece pela [configuração em cinco minutos](https://metroproxies.com/pt/docs/quickstart/), compare com os exemplos em [Python](https://metroproxies.com/pt/docs/python/) e [curl](https://metroproxies.com/pt/docs/curl/), e verifique as saídas com o [verificador de localização do proxy](https://metroproxies.com/pt/guides/verify-proxy-city/). Toda a documentação: [documentação](https://metroproxies.com/pt/docs/).

## O que mais as pessoas perguntam sobre Node.js?

### Qual versão do Node.js eu preciso?

Node.js 18 ou superior para `AbortSignal.timeout` e top-level await em arquivos `.mjs`. Instale o undici com `npm install undici` e o Playwright com `npm install playwright`.

### O Puppeteer também funciona?

Sim: inicie com `--proxy-server=http://gw.metroproxies.com:7777` e chame `page.authenticate({ username, password })` antes da primeira navegação.

### Esses exemplos foram executados contra o gateway?

Eles passam por verificação de sintaxe com `node --check`, com USERNAME e PASSWORD como placeholders. Execute-os com suas próprias credenciais.

---

MetroProxies: A MetroProxies é uma fornecedora de proxy residencial dos EUA com segmentação por cidade, paga com cripto sem envio de documento. Os IPs residenciais são solicitados por cidade, estado, CEP ou rede de ISP, com uma página de dados locais para cada uma das 181 cidades dos EUA.
