Intégration

Utilisez Shifter avec Node.js

Intégrez les proxies résidentiels et ISP de Shifter dans n'importe quel projet Node.js en quelques minutes. Fonctionne parfaitement avec axios, le fetch natif (Node 18+), got, undici, Puppeteer et Playwright.

Démarrage rapide

Installer

npm install axios https-proxy-agent

Utilisation de base

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", ... }

Fonctionnalités

Prise en charge immédiate pour axios, fetch natif, got, undici, node-fetch et tout client HTTP acceptant une URL de proxy ou un agent
Rotation par requête par défaut, avec `sid` pour les sessions persistantes et `ttl-N` pour des épinglages temporisés de N secondes
Prise en charge des navigateurs sans interface via Puppeteer et Playwright avec une configuration de proxy en une ligne
Protocoles HTTP, HTTPS et SOCKS5 sur le même point d'accès passerelle
Géociblage dans 195+ pays via des paramètres de nom d'utilisateur — aucun SDK supplémentaire requis
Compatible avec TypeScript, ESM, CommonJS et toutes les versions LTS de Node.js à partir de la version 14

Exemples

axios + Session Persistante Géociblée

Épinglez une IP résidentielle pour toute une session utilisateur en ajoutant un `sid` au nom d'utilisateur. Ajoutez `country-uk`, `city-london` ou `asn-7922` pour un ciblage géographique.

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 natif (Node 18+) avec undici

Si vous utilisez Node 18 ou une version plus récente, vous n'avez pas besoin d'axios — utilisez le fetch global avec un ProxyAgent undici. L'empreinte la plus légère possible.

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 avec Proxy Authentifié

Faites transiter Chromium par Shifter et authentifiez-vous via page.authenticate(). Combinez `sid` avec les cookies au niveau du navigateur pour maintenir une session stable pendant toute l'exploration.

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 (multi-navigateur)

Les options de lancement de Playwright acceptent les proxies nativement, avec les identifiants intégrés. La même configuration fonctionne pour Chromium, Firefox et 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();
FAQ

Foire aux questions

Questions fréquentes sur l'utilisation de Shifter avec Node.js.

Passez un https-proxy-agent (ou http-proxy-agent pour du HTTP simple) dans l'option httpsAgent, et définissez proxy: false pour qu'axios utilise l'agent directement. Le format de l'URL du proxy est `http://USER:PASS@p.shifter.io:443`. La même instance axios peut ensuite être réutilisée pour plusieurs requêtes.

Oui. Le fetch global dans Node 18+ utilise undici en arrière-plan. Créez un ProxyAgent undici avec l'URI du proxy et le jeton d'authentification basique, puis appelez setGlobalDispatcher(proxyAgent). Chaque appel fetch effectué ensuite transitera par Shifter.

Ajoutez un identifiant de session au nom d'utilisateur — par exemple `customer-USERNAME-country-us-sid-123ABC`. Chaque requête partageant le même sid réutilisera la même IP résidentielle. Ajoutez `ttl-300` pour conserver cette IP pendant 300 secondes maximum.

Oui. Pour Puppeteer, passez --proxy-server dans les arguments de lancement et appelez page.authenticate() avec les identifiants du proxy. Pour Playwright, définissez le champ proxy dans les options de lancement avec server, username et password — fonctionne de manière identique avec Chromium, Firefox et WebKit.

Ajoutez des sélecteurs de pays, région, ville et ASN au nom d'utilisateur du proxy. Par exemple, `customer-USERNAME-country-uk-city-london-sid-456DEF` retourne des IP à Londres. La même syntaxe fonctionne avec toutes les bibliothèques HTTP Node — aucun SDK requis.

Aucun SDK n'est requis. La passerelle de Shifter utilise le protocole HTTP / SOCKS5 standard sur un seul point de terminaison. Configurez le proxy avec le client HTTP que vous utilisez déjà et c'est tout.

Commencer

Commencer à utiliser Shifter avec Node.js

Ajoutez les 205M+ proxies résidentiels et ISP de Shifter à votre stack Node.js en moins de 5 minutes. Rotation par requête, sessions persistantes et prise en charge complète de Puppeteer / Playwright.

Essayez Shifter gratuitementConfiguration en quelques minutes. Annulez à tout moment.