Integração

Use a Shifter com Zapier

O Zapier não expõe um campo de proxy nativo — mas a ação Code by Zapier e a ação Webhooks by Zapier permitem fazer requisições de saída pela API de Web Scraping da Shifter em poucas linhas de JavaScript ou Python.

Início Rápido

Instalar

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

Uso Básico

// 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 };

Recursos

Funciona em todos os planos do Zapier que incluem Code by Zapier ou Webhooks by Zapier
Runtime em JavaScript ou Python, escolha o que melhor se encaixa para sua equipe
IPs residenciais sticky por execução do Zap ao passar session_id (por exemplo, o id de execução do Zap)
Geo-direcionamento em 195+ países via o parâmetro de consulta country
A renderização integrada de navegador headless (render_js=1) lida com páginas pesadas em JS sem etapas extras
Compatível com Storage by Zapier e Vault para gerenciamento de credenciais

Exemplos

Código por Zapier — JavaScript com Sessão Sticky

Execute uma etapa personalizada de JS que busca uma página através da API de Web Scraping do Shifter. Passe um session_id derivado do id de execução do Zap para que cada etapa em uma execução compartilhe um único IP residencial.

// "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,
};

Código por Zapier — Python (urllib)

O runtime Python do Zapier é suficiente para chamar a API de Web Scraping e analisar a resposta. Útil quando você prefere escrever em Python e precisa de acesso à biblioteca padrão.

# "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 — Requisição Personalizada

Se o seu Zap não permitir etapas de Código (em alguns planos), use a ação 'Custom Request' do Webhooks by Zapier e chame diretamente a Web Scraping API com parâmetros de consulta.

# 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 do Zapier — Gerenciamento de Segredos

Não cole a chave de API diretamente em Code actions. Use o Storage by Zapier (ou o Vault do Zapier nos planos enterprise) para manter sua chave de API do Shifter criptografada e reutilizável entre 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
Perguntas Frequentes

Perguntas frequentes

Perguntas comuns sobre usar o Shifter com 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.

Pick Code by Zapier > Run JavaScript (or Python). Inside the step, call https://scrape.shifter.io/v1 with the target URL, your api_key, country, render_js, and session_id as query params. The response body is the fully-rendered HTML. The full setup is about 15 lines of code.

Passe um session_id estável em cada chamada Shifter dentro da execução — o run id do Zap, o id do registro de gatilho, ou um hash do payload do gatilho. Requisições que compartilham um session_id são roteadas pelo mesmo IP residencial. As sessões permanecem fixas por 10 minutos por padrão.

Sim. Passe o parâmetro de consulta country (por exemplo, country=uk, country=jp). Obtenha-o de uma etapa anterior (`{{step1.country}}`) e o Zapier vai rotear cada item pelo pool residencial adequado — útil para monitoramento de preços localizado ou verificações de SERP multi-região.

Use o Storage do Zapier (gratuito) ou o Zapier Vault (empresarial). Ambos criptografam segredos no lado do servidor. Evite colar a chave da API diretamente em ações de Code — ela ficaria visível no histórico do Zap e nos registros de auditoria da equipe.

Para scraping leve (menos de algumas centenas de páginas por execução, análises de etapa única) Zapier + Shifter funciona bem. Para trabalhos mais pesados — paginação, análises profundas, milhares de itens — você atingirá os limites de tarefas do Zapier. Nesse caso, acione o n8n ou um backend personalizado a partir do Zapier e deixe a Shifter rodar lá.

Começar

Comece a Usar o Shifter com Zapier

Adicione os proxies residenciais e ISP 205M+ da Shifter aos seus Zaps via Code by Zapier ou Webhooks Custom Request. Sessões sticky por execução, geo por item, renderização headless integrada e suporte completo a credenciais Storage / Vault.

Experimente o Shifter GratuitamenteConfigure em minutos. Cancele quando quiser.