Direct Answer
Zapier's Webhooks action has no proxy field. The reliable route is a Code by Zapier → Run Python step: Python's requests library is preinstalled and supports a proxies parameter. Point it at your German mobile endpoint (http://USER:PASS@HOST:PORT) and the request exits through your German mobile IP.
What to Know Before You Start
Two honest points decide the setup:
- No native proxy field. Webhooks by Zapier (GET/POST/Custom Request) doesn't expose a proxy option, so a plain webhook can't be proxied.
- Python, not JavaScript. Zapier's JavaScript code step can import public npm packages, but only on a paid plan and only ESM-only ones —
https-proxy-agentis CommonJS, so it's out. The Python code step ships withrequests, which has built-in proxy support and needs no packages at all — that's the path that works on any plan.
You'll need from your GermanProxy.io account: host, port, username and password. The Code by Zapier action itself works on every plan, but a proxy step normally sits in a multi-step Zap (trigger + code + follow-up steps), and multi-step Zaps need a paid plan.
Step-by-Step (Code by Zapier — Python)
- In your Zap, add an action step → Code by Zapier → Run Python.
- Map any upstream values you need into Input Data (they arrive as
input_data). - Paste a step like this:
import requests
PROXY = "http://USER:PASS@PROXY_HOST:PORT"
proxies = {"http": PROXY, "https": PROXY}
resp = requests.get(
"https://www.example.de",
proxies=proxies,
timeout=20,
)
output = {"status": resp.status_code, "body": resp.text[:5000]}
- Downstream steps can read
output(e.g.status,body).
Verify the IP First
Swap the URL for an IP-echo endpoint and check the result:
import requests
PROXY = "http://USER:PASS@PROXY_HOST:PORT"
resp = requests.get("https://api.ipify.org", proxies={"http": PROXY, "https": PROXY}, timeout=20)
output = {"ip": resp.text}
output.ip should be a German mobile IP. If it's Zapier's address, re-check the proxy URL. A 407 means the credentials didn't reach the proxy — see how to fix 407 proxy authentication required.
Sticky Sessions vs. Rotation
A single dedicated German endpoint keeps a stable IP across the requests in your Zap; rotate on demand at the proxy to spread load. The country stays German. See sticky sessions and IP rotation explained.
Automate Responsibly
A mobile proxy improves reliability for legitimate automation — it is not a tool to circumvent access controls or platform rules. Respect each target's robots.txt and terms, keep request rates reasonable, collect only what you need, and handle any personal data in line with the GDPR. For the legal side, see is web scraping legal? EU & GDPR.
FAQ
Can I set a proxy on Webhooks by Zapier?
No — the Webhooks action has no proxy field. Use a Code by Zapier (Python) step with the requests proxies parameter instead.
Why not the JavaScript code step?
The JS code step can import public npm packages only on a paid plan and only ESM-only ones — https-proxy-agent is CommonJS, so it won't load. Python's requests is preinstalled, supports proxies natively, and needs no package install.
Do I need a paid Zapier plan?
The Code by Zapier action runs on every plan, but the Free plan caps you at two-step Zaps. A proxy step usually lives in a multi-step Zap (trigger + code + follow-up), and multi-step Zaps require a paid plan.
HTTP or SOCKS5?
requests supports both; for SOCKS5 the environment needs the socks extra, which isn't guaranteed on Zapier — prefer an HTTP endpoint. See the proxy protocol choice.
CTA
Route your Zaps through real German mobile IPs. Get a German mobile proxy — HTTP/SOCKS5/OpenVPN, sticky sessions, fair-use 20 GB/day.
Get a German mobile proxy: Real 4G/5G IPs from Germany, fair-use 20 GB/day — compare German mobile proxy plans or start small with a shared 5G proxy.