Intégration

Utilisez Shifter avec Zapier

Zapier n'expose pas de champ proxy natif — mais l'action Code by Zapier et l'action Webhooks by Zapier vous permettent toutes deux d'effectuer des requêtes sortantes via la Web Scraping API de Shifter en quelques lignes de JavaScript ou Python.

Démarrage rapide

Installer

// Add a 'Code by Zapier' or 'Webhooks by Zapier' action — no install required.

Utilisation de base

// In a "Code by Zapier" (Run JavaScript) action:
const apiKey    = inputData.shifter_api_key;
const targetUrl = inputData.target_url;
const country   = inputData.country || "us";

const params = new URLSearchParams({
  api_key:    apiKey,
  url:        targetUrl,
  country:    country,
  render_js:  "1",
  session_id: inputData.zap_run_id,   // sticky residential IP for this run
});

const response = await fetch(`https://scrape.shifter.io/v1?${params}`);
const html     = await response.text();

output = { html, status: response.status, length: html.length };

Fonctionnalités

Fonctionne sur tous les abonnements Zapier incluant Code by Zapier ou Webhooks by Zapier
Runtime JavaScript ou Python — choisissez celui qui convient le mieux à votre équipe
IPs résidentielles persistantes par exécution de Zap en transmettant un session_id (par exemple l'identifiant d'exécution du Zap)
Géociblage dans 195+ pays via le paramètre de requête country
Le rendu par navigateur headless intégré (render_js=1) gère les pages à fort contenu JS sans étapes supplémentaires
Compatible avec Storage by Zapier et Vault pour la gestion des identifiants

Exemples

Code by Zapier — JavaScript avec Session Persistante

Exécutez une étape JS personnalisée qui récupère une page via le Shifter Web Scraping API. Transmettez un session_id dérivé de l'identifiant d'exécution du Zap afin que chaque étape d'une exécution partage une même IP résidentielle.

// "Code by Zapier" action -> Run JavaScript
//
// inputData.target_url      -> https://example.co.uk/products
// inputData.country         -> "uk"
// inputData.shifter_api_key -> your Shifter API key (Storage by Zapier secret)
// inputData.zap_run_id      -> Zap run id from the trigger

const params = new URLSearchParams({
  api_key:    inputData.shifter_api_key,
  url:        inputData.target_url,
  country:    inputData.country || "us",
  render_js:  "1",                       // headless browser
  session_id: inputData.zap_run_id,      // sticky IP per Zap run
});

const response = await fetch(`https://scrape.shifter.io/v1?${params}`);
const html     = await response.text();

// Extract a value with a regex — Zapier's Code action doesn't bundle cheerio.
const titleMatch = html.match(/<title>([\s\S]*?)<\/title>/i);
const priceMatch = html.match(/class=["']price["'][^>]*>([^<]+)/i);

output = {
  status: response.status,
  title:  titleMatch?.[1]?.trim(),
  price:  priceMatch?.[1]?.trim(),
  length: html.length,
};

Code by Zapier — Python (urllib)

Le runtime Python de Zapier suffit pour appeler le Web Scraping API et analyser la réponse. Utile si vous préférez écrire en Python et avez besoin d'accéder à la bibliothèque standard.

# "Code by Zapier" action -> Run Python
import urllib.request
import urllib.parse
import re

params = urllib.parse.urlencode({
    "api_key":    input_data["shifter_api_key"],
    "url":        input_data["target_url"],
    "country":    input_data.get("country", "us"),
    "render_js":  "1",
    "session_id": input_data["zap_run_id"],
})

req = urllib.request.Request(
    f"https://scrape.shifter.io/v1?{params}",
    headers={"User-Agent": "ZapierShifterClient/1.0"},
)

with urllib.request.urlopen(req, timeout=30) as resp:
    html   = resp.read().decode("utf-8", errors="replace")
    status = resp.status

# Extract whatever the Zap needs.
title  = (re.search(r"<title>(.*?)</title>", html, re.IGNORECASE | re.DOTALL) or [None, ""])[1].strip()
prices = re.findall(r'class="price"[^>]*>([^<]+)', html)

return {
    "status": status,
    "title":  title,
    "prices": prices[:10],
}

Webhooks by Zapier — Requête personnalisée

Si votre Zap n'autorise pas les étapes Code (certains abonnements), utilisez l'action 'Requête personnalisée' de Webhooks by Zapier et appelez le Web Scraping API directement avec des paramètres de requête.

# Action: Webhooks by Zapier -> Custom Request
#
# Method:  GET
# URL:     https://scrape.shifter.io/v1
# Query String Params:
#   api_key    = {{credentials.shifter_api_key}}
#   url        = {{trigger.target_url}}
#   country    = us
#   render_js  = 1
#   session_id = {{trigger.zap_run_id}}
#
# Headers:
#   User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
#
# Output:
#   The response body is the fully-rendered HTML, returned to Zapier
#   as a single output field. Pipe it into a Filter, Formatter, or
#   another Code step to parse what you need.
#
# Notes:
# - session_id uses the Zap run id so all requests within one run
#   share the same residential IP (sticky session, 10 min default).
# - country can be sourced from a previous step
#   ({{step1.country}}) for per-item geo routing.

Storage by Zapier — Gestion des secrets

Ne collez pas la clé API directement dans les actions Code. Utilisez Storage by Zapier (ou le Vault de Zapier sur les abonnements entreprise) pour conserver votre clé API Shifter chiffrée et réutilisable dans tous vos Zaps.

// One-off setup (run once via Code by Zapier):
//
//   await fetch("https://store.zapier.com/api/records", {
//     method: "POST",
//     headers: { "X-Secret": ZAPIER_STORAGE_SECRET },
//     body: JSON.stringify({
//       shifter_api_key: "YOUR_SHIFTER_API_KEY",
//     }),
//   });
//
// Then in any future Zap that needs the Shifter API key:

const storageRes = await fetch(
  "https://store.zapier.com/api/records?key=shifter_api_key",
  { headers: { "X-Secret": process.env.ZAPIER_STORAGE_SECRET } },
);
const { shifter_api_key } = await storageRes.json();

const params = new URLSearchParams({
  api_key:    shifter_api_key,
  url:        inputData.target_url,
  country:    "us",
  render_js:  "1",
  session_id: inputData.run_id,
});

const response = await fetch(`https://scrape.shifter.io/v1?${params}`);
// ... use response as in the previous examples
FAQ

Questions fréquentes Questions FAQ

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

Not on the standard Webhooks action — Zapier's HTTP layer doesn't expose a proxy field. The supported workarounds are Code by Zapier (run a JavaScript or Python step that calls the Shifter Web Scraping API) or the Webhooks Custom Request action pointed at https://scrape.shifter.io/v1 with the country, render_js, and session_id query params.

Commencer

Commencer à utiliser Shifter avec Zapier

Ajoutez les 205M+ proxies résidentiels et ISP de Shifter à vos Zaps via Code by Zapier ou Webhooks Custom Request. Sessions persistantes par exécution, géolocalisation par élément, rendu headless intégré et prise en charge complète des identifiants Storage / Vault.

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