Direct Answer
To route Flowise through a mobile proxy, set GLOBAL_AGENT_HTTP_PROXY and GLOBAL_AGENT_HTTPS_PROXY on the Flowise server to your endpoint. Flowise uses the global-agent package to route all its backend requests — the web-scraper and HTTP request nodes — through your German mobile IP. The call to your LLM keeps its own connection unless you route it through the proxy on purpose. You don't touch how a flow reasons or talks to the model; you only change where its web requests come from.
The One Thing Most Flowise Proxy Guides Get Wrong
Flowise is a visual agent builder: you drag nodes onto a canvas, wire them together, and a flow runs on the Flowise server. The common mistake is thinking of "the proxy" as something the whole app or the model sits behind. It isn't.
The proxy binds to Flowise's web nodes, not the model. When a Cheerio web-scraper or an HTTP Request node reads a German page, that request is what should leave through your German mobile IP. The reasoning steps — the calls to your LLM provider — are a separate connection and usually don't need a German exit at all. Get this distinction right and the setup is a two-line change on the server; get it wrong and you route model traffic through a mobile connection for no reason while your scrape still exits from your own address.
So the goal is precise: send the flow's outbound page fetches through the German mobile proxy, and leave everything else alone.
Before You Start
You'll need four values from your GermanProxy.io account:
- Host and port of your endpoint
- Username and password
The examples use PROXY_HOST, PORT, USER and PASS as placeholders — replace them with your own. There's no hardware to manage: the proxy is a dedicated mobile connection exposed as a host/port/credentials endpoint.
Flowise reads its settings from environment variables (an .env file in packages/server, or the env of your container). The proxy is set there, not in a node.
Step 1 — Set the Global-Agent Proxy on the Server
Flowise routes backend requests through the global-agent package, which reads its own proxy variables. Set them in the Flowise server's environment before you start it:
# .env — packages/server (or your container env)
GLOBAL_AGENT_HTTP_PROXY=http://USER:PASS@PROXY_HOST:PORT
GLOBAL_AGENT_HTTPS_PROXY=http://USER:PASS@PROXY_HOST:PORT
GLOBAL_AGENT_HTTP_PROXY is the required one; GLOBAL_AGENT_HTTPS_PROXY covers HTTPS traffic. You can also set GLOBAL_AGENT_NO_PROXY (for example *.internal,localhost) to exclude hosts you don't want proxied.
Step 2 — Restart Flowise and Run a Web Node
The server reads these variables at start-up, so restart Flowise after setting them:
npx flowise start
Now build a flow with a Cheerio Web Scraper (or an HTTP Request node) pointed at a German URL. Its outbound fetch exits through your German mobile IP — no per-node proxy field to fill in for the common case.
If you run Flowise in Docker, pass the same variables through your compose file or docker run -e flags instead of a local .env.
Step 3 — Browser-Based Nodes (Puppeteer)
global-agent covers Node's own HTTP requests, which is what the Cheerio scraper and HTTP node use. A headless-browser node such as the Puppeteer Web Scraper drives a real Chromium and may not read the env var — a browser opens its own network stack.
If a browser-based scrape ignores the proxy, set the proxy on that node's launch arguments (a --proxy-server=PROXY_HOST:PORT style option) so the browser itself exits through the mobile IP. This is the right choice when one flow mixes a plain HTTP scrape with a JavaScript-rendered page that needs a real browser.
Verify the IP First
Before a real run, confirm the exit IP is a German mobile address. The quickest check is a one-line request through the same proxy from the host running Flowise:
curl -x "http://USER:PASS@PROXY_HOST:PORT" https://api.ipify.org?format=json
If it returns your own address, the variables didn't reach the Flowise process — re-check the env values and that you restarted the server. Confirm the ASN and geolocation look like a German mobile network, not a datacenter range. A full checklist is in test your mobile proxy setup.
Sticky Sessions vs. Rotation
How a flow should handle IPs depends on the task:
- Sticky session — keep the same German mobile IP across a multi-step flow (open a page, follow links, extract) so a sequence of fetches looks like one coherent visitor.
- Rotation on demand — request a fresh IP at the proxy between runs to spread load across a longer job.
Keep request rates human-reasonable and don't fan out dozens of parallel fetches. The mechanics are in sticky sessions and IP rotation.
Why a Mobile IP at All
German content is localised. German marketplaces and Google.de serve different results, pricing and stock by country and network. Have a flow fetch a German site from a US datacenter range and it measures the wrong market. A German IP gives it the in-country view the task needs.
Mobile IPs carry high IP reputation. German sites filter datacenter ranges aggressively — often a 403 Forbidden within a handful of requests. Mobile IPs sit in shared CGNAT pools used by thousands of real subscribers, so they carry high IP reputation — the reason a mobile IP keeps working where a datacenter range stalls.
For the trade-offs between IP types, see mobile vs residential vs datacenter proxy and, on cost, dedicated mobile vs pay-per-GB residential. For the wider agent picture, see mobile proxies for AI agents.
Scrape Responsibly
A mobile proxy improves reliability for legitimate data collection — it is not a tool to circumvent access controls or platform rules. A Flowise flow can run unattended, so the responsibility to keep it clean is higher, not lower:
- Respect
robots.txtand each site's terms — check them before you point a flow at a domain. - Throttle — add a delay between fetches and cap concurrency so you don't overload target servers.
- Collect only public data you need, and handle any personal data in line with the GDPR.
- Identify your client honestly — set a truthful
User-Agent; don't impersonate someone else.
Whether a specific task is lawful depends on your jurisdiction and the target's terms — this is general information, not legal advice. See are mobile proxies legal and is web scraping legal in the EU.
[!NOTE]
Note: This article is general information, not legal advice. Whether a specific data-collection task is lawful depends on your jurisdiction, the target site's terms and the data involved.
FAQ
Does the proxy change how Flowise talks to the LLM?
No. The proxy binds to Flowise's backend web requests — the scraper and HTTP nodes. The connection to your model provider stays separate unless you deliberately route it through the proxy too. In practice you set GLOBAL_AGENT_HTTP_PROXY / GLOBAL_AGENT_HTTPS_PROXY so the fetches exit through the German mobile IP, and leave the model traffic alone.
Which Flowise variables set the proxy?
GLOBAL_AGENT_HTTP_PROXY (required) and GLOBAL_AGENT_HTTPS_PROXY (optional) on the server process. Flowise uses the global-agent package to route all backend requests through them, and GLOBAL_AGENT_NO_PROXY lets you exclude hosts you don't want proxied.
Why do I get a 407 error?
407 Proxy Authentication Required means the username and password didn't reach the proxy. Confirm they're in the proxy URL you set (http://USER:PASS@PROXY_HOST:PORT). See how to fix 407 proxy authentication required.
Do I need a rotating pool for Flowise?
No. Pool services exist to pick an IP from many. With one dedicated German endpoint you point Flowise at a single host and rotate on demand at the proxy — nothing to manage in the app. See dedicated vs shared mobile proxy.
HTTP or SOCKS5?
The global-agent proxy expects an HTTP proxy URL, which is why the examples use http://. SOCKS5 and OpenVPN are available too; reach for SOCKS5 only when a specific client outside Flowise needs it — for the global-agent variables, HTTP is the format to use.
Does the Puppeteer node use the same proxy?
global-agent covers Node's HTTP requests, so the Cheerio scraper and HTTP node inherit it. A headless-browser node like the Puppeteer Web Scraper drives its own Chromium and may need the proxy set on its launch args instead. If a browser scrape ignores the env var, configure the proxy on that node; see mobile proxy for AI browser agents.
Related guides
- Dify Proxy Setup with a Dedicated German Mobile Proxy
- n8n Proxy Setup: Route Workflows Through a German Mobile IP
- Running AI Agents on German Sites: A Reliability Playbook
Get Started
Give your Flowise flows a real German mobile IP to collect from. Start with a German mobile proxy — HTTP/SOCKS5/OpenVPN, sticky sessions, on-demand rotation, fair-use 20 GB/day, from a transparent EU provider. Browse the plans to get started.
Get a German mobile proxy: Real 4G/5G IPs from Germany, fair-use 20 GB/day — see German 4G/5G mobile proxy options or start with a dedicated 5G proxy.