Integração

Use a Shifter com Node.js

Integre os proxies residenciais e de ISP do Shifter a qualquer projeto Node.js em minutos. Funciona perfeitamente com axios, o fetch nativo (Node 18+), got, undici, Puppeteer e Playwright.

Início Rápido

Instalar

npm install axios https-proxy-agent

Uso Básico

import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";

const proxyUrl =
  "customer-USERNAME-country-us-sid-123ABC:PASSWORD@p.shifter.io:443";
const agent = new HttpsProxyAgent(proxyUrl);

const { data } = await axios.get("https://ipinfo.io/json", {
  httpsAgent: agent,
  proxy: false,
});

console.log(data);
// { ip: "154.16.xxx.xxx", city: "New York", country: "US", ... }

Recursos

Suporte plug-and-play para axios, fetch nativo, got, undici, node-fetch e qualquer cliente HTTP que aceite uma URL de proxy ou agent
Rotação por requisição por padrão, com `sid` para sessões persistentes e `ttl-N` para fixações por tempo de N segundos
Suporte a navegador headless via Puppeteer e Playwright com configuração de proxy em uma linha
Protocolos HTTP, HTTPS e SOCKS5 no mesmo endpoint de gateway
Geo-direcionamento em 195+ países via parâmetros de nome de usuário, sem necessidade de SDK adicional
Compatível com TypeScript, ESM, CommonJS e todas as versões LTS do Node.js a partir da 14

Exemplos

axios + Sessão Fixa com Segmentação Geográfica

Fixe um IP residencial para toda uma sessão de usuário adicionando um `sid` ao nome de usuário. Adicione `country-uk`, `city-london` ou `asn-7922` para segmentação geográfica.

import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";
import { randomBytes } from "node:crypto";

const sid = randomBytes(4).toString("hex");

const proxyUrl =
  `customer-USERNAME-country-uk-city-london-sid-${sid}-ttl-300:` +
  `PASSWORD@p.shifter.io:443`;

const client = axios.create({
  httpsAgent: new HttpsProxyAgent(proxyUrl),
  proxy: false,
  timeout: 30_000,
  headers: {
    "User-Agent":
      "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36",
  },
});

const login = await client.post("https://example.com/login", {
  email: "user@example.com",
  password: "secret",
});

const dashboard = await client.get("https://example.com/dashboard");
const orders = await client.get("https://example.com/orders");

console.log(login.status, dashboard.status, orders.status);

Fetch nativo (Node 18+) com undici

Se você está no Node 18 ou mais recente, não precisa do axios — use o fetch global com um ProxyAgent do undici. Menor pegada possível.

import { ProxyAgent, setGlobalDispatcher } from "undici";

const proxyAgent = new ProxyAgent({
  uri: "http://p.shifter.io:443",
  token: `Basic ${Buffer.from(
    "customer-USERNAME-country-us-sid-456DEF:PASSWORD",
  ).toString("base64")}`,
});

setGlobalDispatcher(proxyAgent);

const r = await fetch("https://api.example.com/products?page=1");
const json = await r.json();

console.log(json);

Puppeteer com Proxy Autenticado

Direcione o Chromium através do Shifter e autentique via page.authenticate(). Combine `sid` com cookies em nível de navegador para manter uma sessão estável durante todo o rastreamento.

import puppeteer from "puppeteer";

const PROXY_HOST = "p.shifter.io";
const PROXY_PORT = 443;
const PROXY_USER = "customer-USERNAME-country-de-sid-789GHI";
const PROXY_PASS = "PASSWORD";

const browser = await puppeteer.launch({
  args: [`--proxy-server=http://${PROXY_HOST}:${PROXY_PORT}`],
  headless: "new",
});

const page = await browser.newPage();
await page.authenticate({ username: PROXY_USER, password: PROXY_PASS });

await page.setUserAgent(
  "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
);

await page.goto("https://example.com", { waitUntil: "networkidle0" });

const title = await page.title();
const html = await page.content();

console.log(title, html.length, "bytes");

await browser.close();

Playwright (múltiplos navegadores)

As opções de inicialização do Playwright aceitam proxies nativamente, com credenciais embutidas. A mesma configuração funciona para Chromium, Firefox e WebKit.

import { chromium } from "playwright";

const browser = await chromium.launch({
  proxy: {
    server: "http://p.shifter.io:443",
    username: "customer-USERNAME-country-fr-city-paris-sid-ABC123",
    password: "PASSWORD",
  },
});

const context = await browser.newContext({
  userAgent:
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36",
});

const page = await context.newPage();
await page.goto("https://example.com");

const headlines = await page.locator(".headline").allTextContents();

console.log(headlines);

await browser.close();
Perguntas Frequentes

Perguntas frequentes

Perguntas comuns sobre usar o Shifter com Node.js.

Passe um https-proxy-agent (ou http-proxy-agent para HTTP simples) na opção httpsAgent, e defina proxy: false para que o axios use o agent diretamente. O formato da URL do proxy é `http://USER:PASS@p.shifter.io:443`. A mesma instância do axios pode então ser reutilizada entre requisições.

Sim. O fetch global no Node 18+ usa o undici por baixo dos panos. Crie um ProxyAgent do undici com o URI do proxy e o token de autenticação básica, depois chame setGlobalDispatcher(proxyAgent). Toda chamada de fetch feita depois disso será roteada pela Shifter.

Adicione um ID de sessão ao nome de usuário, por exemplo, `customer-USERNAME-country-us-sid-123ABC`. Toda requisição que compartilhar o mesmo sid reutilizará o mesmo IP residencial. Adicione `ttl-300` para manter esse IP por até 300 segundos.

Sim. Para o Puppeteer, passe --proxy-server nos argumentos de inicialização e chame page.authenticate() com as credenciais do proxy. Para o Playwright, defina o campo proxy nas opções de inicialização com server, username e password — funciona de forma idêntica no Chromium, Firefox e WebKit.

Adicione seletores de país, região, cidade e ASN ao nome de usuário do proxy. Por exemplo, `customer-USERNAME-country-uk-city-london-sid-456DEF` retorna IPs em Londres. A mesma sintaxe funciona em qualquer biblioteca HTTP do Node, sem necessidade de SDK.

Nenhum SDK é necessário. O gateway da Shifter fala HTTP / SOCKS5 padrão em um único endpoint. Configure o proxy com qualquer cliente HTTP que você já use e está pronto.

Começar

Comece a Usar o Shifter com Node.js

Adicione os proxies residenciais e ISP 205M+ da Shifter à sua stack Node.js em menos de 5 minutos. Rotação por requisição, sessões sticky e suporte completo a Puppeteer / Playwright.

Experimente o Shifter GratuitamenteConfigure em minutos. Cancele quando quiser.