Home/Blog/Mobile Proxy for n8n
Tool Integration

Mobile Proxy for n8n

Route any HTTP Request node in n8n through a mobile carrier IP. Re-usable Generic Credentials, rotation triggered mid-workflow, and a complete web-scrape example you can import.

6 min read·Workflow Automation·Last updated: May 2026

Prerequisites

  • An n8n instance (self-hosted v1.50+ or n8n Cloud).
  • A mobileproxies.org slot with HTTP port and a generated API key.
  • Proxy fields from the dashboard: hostname, http_port, username, password.

Step-by-Step Configuration

STEP 01

Pull credentials from the dashboard API

Call the proxies endpoint once to grab the slot you want to use.

curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://buy.mobileproxies.org/api/v1/proxies

# response (truncated)
[{
  "slot_id": "us-mob-01",
  "hostname": "proxy.mobileproxies.org",
  "http_port": 8000,
  "socks5_port": 8001,
  "username": "u_4a9c",
  "password": "p_2X7q..."
}]
STEP 02

Create a Generic Credential in n8n

In n8n go to Credentials → New → HTTP Request Auth (Generic Credential Type). Use these field values — they apply to every HTTP Request node that selects this credential.

Name: MobileProxies-US-01
Authentication: Generic Credential Type
Generic Auth Type: Header Auth   # we only use this to store the proxy meta
Header Auth: { name: "X-Proxy", value: "stored-elsewhere" }

# Save — we reference these values via n8n expressions
# Then in the HTTP Request node use the "Proxy" field directly:
STEP 03

Set the proxy on the HTTP Request node

Inside any HTTP Request node, open Options → Proxy and paste the URL form. n8n forwards the request through that proxy for both HTTP and HTTPS targets.

# In the n8n UI:
#   Options → Proxy:
http://u_4a9c:p_2X7q...@proxy.mobileproxies.org:8000

# Or as JSON in the workflow export (HTTP Request node parameters):
{
  "method": "GET",
  "url": "https://httpbin.org/ip",
  "options": {
    "proxy": "http://u_4a9c:p_2X7q...@proxy.mobileproxies.org:8000",
    "timeout": 30000
  }
}
STEP 04

Add the rotation step (optional but recommended)

For scrape-heavy workflows, drop in an HTTP Request node before the main fetch that calls our rotation endpoint. Each call gives you a fresh egress IP.

# HTTP Request node — "Rotate IP"
{
  "method": "POST",
  "url": "https://buy.mobileproxies.org/api/v1/proxies/us-mob-01/switch",
  "headerParameters": {
    "Authorization": "Bearer YOUR_API_KEY"
  },
  "options": { "timeout": 15000 }
}

# Chain it BEFORE the scrape node so each iteration egresses
# from a different carrier IP.
STEP 05

Wire it into a "Web Scrape" workflow

Minimal three-node scrape workflow you can import:

Schedule Trigger (every 1h)
   ↓
HTTP Request "Rotate"   → POST /api/v1/proxies/us-mob-01/switch
   ↓
HTTP Request "Scrape"   → GET target URL, proxy = mobile proxy
   ↓
HTML Extract            → CSS selectors on response body
   ↓
Postgres / Sheets       → store rows

Verify It Works

Run a one-off execution targeting https://api.ipify.org?format=json. The returned IP should belong to a mobile ASN — check it on https://ipinfo.io/{ip}/json and look for"org": "AS..." matching a carrier like T-Mobile, AT&T or Vodafone. If you see AWS / OVH / Hetzner, the proxy field isn't being applied — see troubleshooting below.

Mid-Workflow IP Rotation

For workflows that loop over a list of URLs, add a Code node that calls rotate every N iterations instead of every iteration — rotating too aggressively wastes the carrier session and is itself a bot signal.

// Code node — runs once per item
const idx = $itemIndex;
if (idx > 0 && idx % 25 === 0) {
  await this.helpers.httpRequest({
    method: 'POST',
    url: 'https://buy.mobileproxies.org/api/v1/proxies/us-mob-01/switch',
    headers: { Authorization: 'Bearer ' + $env.MP_API_KEY },
  });
  // small backoff so the new IP is fully established
  await new Promise(r => setTimeout(r, 4000));
}
return $input.item;

Common Errors

"tunneling socket could not be established, statusCode=407"

Auth failure. Re-check that the proxy URL has the form http://USER:PASS@HOST:PORT and that special characters in the password are URL-encoded.

Workflow hangs and times out at exactly 5 minutes

n8n's default HTTP timeout is too high for proxied scraping. Set options.timeout to 20–30s and add a retry-on-error setting on the node.

ipify still returns my server IP

The Proxy option was left empty on a downstream HTTP node, or you used the Authentication field instead of Options → Proxy. Only the Proxy field actually rewrites the outbound socket.

Related Guides

Plug n8n Into Real Mobile IPs

$5 trial. Carrier-grade ASNs, rotation API, sticky sessions. Drop the URL into any HTTP Request node and you're done.