Integration

Use Shifter with Make

Make (formerly Integromat) doesn't expose a proxy field on the HTTP module — but you can route requests through Shifter's Web Scraping API instead. Same outcome, single GET call per page, headless rendering built in.

Quick Start

Install

// Add an HTTP module — no install required.

Basic Usage

// HTTP > Make a Request module configuration:
{
  "url": "https://scrape.shifter.io/v1",
  "method": "GET",
  "qs": [
    { "name": "api_key",    "value": "YOUR_SHIFTER_API_KEY" },
    { "name": "url",        "value": "https://example.com" },
    { "name": "country",    "value": "us" },
    { "name": "render_js",  "value": "1" },
    { "name": "session_id", "value": "{{executionId}}" }
  ],
  "parseResponse": true
}

Features

Works on every Make plan that includes the HTTP module — no premium tier required
Compatible with HTTP > Make a Request, Custom App modules, and Webhook responses
Sticky residential IPs per scenario run by passing session_id={{executionId}}
Geo-targeting in 195+ countries via the country query param — parameterize per-iteration
Built-in headless browser rendering (render_js=1) handles JS-heavy pages without extra modules
Custom App support for centralized credential management across scenarios in a Make org

Examples

HTTP Module via the Shifter Web Scraping API

Make's HTTP > Make a Request module doesn't have a proxy field, but Shifter's Web Scraping API accepts the target URL plus geo + session params as a query string. Simplest path for any Make scenario.

// Module: HTTP > Make a Request
//
// URL:     https://scrape.shifter.io/v1
// Method:  GET
// Query Strings:
//   api_key    = {{connection.shifter_api_key}}
//   url        = https://example.co.uk/products
//   country    = uk
//   render_js  = 1                       (headless browser)
//   session_id = {{executionId}}         (sticky residential IP per run)
//
// Parse response: ON  -> Make auto-detects JSON / HTML
//
// The response body is the rendered page exactly as a local UK
// user would see it. Pipe into:
//   - HTML > Parse HTML       (extract elements with CSS selectors)
//   - JSON > Parse JSON       (for API responses)
//   - Text > Match Pattern    (regex extraction)
//   - Iterator                (loop over an array of products)

Per-Item Country with Iterator

Loop over a list of regions and run an HTTP module for each one through the correct country. Each iteration uses a residential IP from that country's pool.

// Scenario shape:
//
//   Trigger
//     |
//   Set Variables -> regions = [{ country: "us" }, { country: "uk" }, ... ]
//     |
//   Iterator (regions)
//     |
//   HTTP > Make a Request
//     URL: https://scrape.shifter.io/v1
//     Query:
//       api_key    = {{connection.shifter_api_key}}
//       url        = https://example.com/{{1.country}}/products
//       country    = {{1.country}}
//       render_js  = 1
//       session_id = {{1.country}}-{{executionId}}
//     |
//   HTML > Parse HTML
//     |
//   Aggregator
//     |
//   Google Sheets > Add a Row

// Tip: a unique session_id per country lets the gateway reuse the
// same residential IP across that country's requests. If you set
// session_id to {{executionId}} alone, every region competes for the
// same IP — not what you want.

Custom App for Reusable Shifter Connection

If you run many scenarios that all need Shifter, build a tiny Custom App. Connection definition stores the API key encrypted; a single module exposes a proxied-and-rendered HTTP request action.

// In Make's Custom App builder:
//
// Connection (parameters):
//   - shifter_api_key (password, required) -> your Shifter API key
//
// Module: "Scrape a Page"
// Type: Action
// Communication:
{
  "url": "https://scrape.shifter.io/v1",
  "method": "GET",
  "qs": {
    "api_key":    "{{connection.shifter_api_key}}",
    "url":        "{{parameters.target_url}}",
    "country":    "{{parameters.country}}",
    "render_js":  "{{parameters.render_js}}",
    "session_id": "{{parameters.session_id}}"
  },
  "response": {
    "output": {
      "body":   "{{body}}",
      "status": "{{statusCode}}"
    }
  }
}

// Now any scenario in your team's Make org has a one-step
// "Shifter > Scrape a Page" action that handles auth, geo,
// rendering, and sticky sessions in one click.

Webhook -> Make -> Shifter Pattern

Trigger Make from an external system, scrape via Shifter, and respond. This pattern lets Make act as a proxy-aware scraping API for the rest of your stack.

// Scenario:
//
//   Webhooks > Custom webhook (POST { url, country })
//     |
//   HTTP > Make a Request (Shifter Web Scraping API)
//     URL:    https://scrape.shifter.io/v1
//     Query:
//       api_key    = {{connection.shifter_api_key}}
//       url        = {{1.url}}
//       country    = {{1.country}}
//       render_js  = 1
//       session_id = {{1.callerId}}-{{executionId}}
//     |
//   HTML > Parse HTML  (extract structured fields)
//     |
//   Webhooks > Webhook Response
//     Status: 200
//     Body:   {{ JSON of extracted fields }}
//
// External code calls your Make webhook:
//
//   curl -X POST https://hook.eu1.make.com/abc123 \
//     -H "Content-Type: application/json" \
//     -d '{"url":"https://example.com","country":"us","callerId":"job-42"}'
FAQ

Frequently asked FAQ questions

Common questions about using Shifter with Make.

The standard HTTP > Make a Request module doesn't have a proxy field. The recommended approach is to call Shifter's Web Scraping API directly: GET https://scrape.shifter.io/v1?api_key=...&url=...&country=... and read the rendered HTML from the response. Same outcome as a native proxy field, with headless rendering bundled in.

Get started

Start Using Shifter with Make

Plug Shifter's 205M+ residential and ISP proxies into your Make scenarios via the Web Scraping API or a Custom App. Sticky sessions per execution, per-item geo, built-in headless rendering, and full Iterator + Aggregator support.

Try Shifter for FreeSet up in minutes. Cancel anytime.