How to set a proxy in ZennoPoster
In ZennoPoster templates a proxy is set with one action — Set proxy inside the Browser settings block in ProjectMaker. The same action can also emulate geolocation, time zone, and WebRTC to match the proxy's exit IP, which is half the reason accounts survive. This guide covers the action itself, the string formats ZennoPoster accepts, and the multi-threaded setup: feeding a proxy list from a file so every thread gets its own IP.
Before you start: proxy details and ports
You'll need your proxy IP address and port. Both are listed in your Dashboard — open your active subscription to see the full connection details. ZennoPoster works with HTTP, SOCKS4, and SOCKS5 proxies, with or without authentication — so all four ports are usable:
| Authentication | HTTP port | SOCKS5 port | Good for |
|---|---|---|---|
| Username / password credentials from your Dashboard |
8080 |
1080 |
Any machine — credentials go right into the proxy string, SOCKS5 included |
| IP whitelisting no login required |
8085 |
1085 |
Servers with a static IP — proxy strings stay as short as IP:port |
With IP whitelisting, you first add your server's IP address to the whitelist in the Dashboard. After that, the proxy accepts requests from that machine with no credentials.
Step 1. Add the Set proxy action
In ProjectMaker, right-click the workspace and go to Add action → Browser → Settings, then pick Set proxy from the action list. Place it at the start of the template, before the first page load. The value can be a literal string or a project variable; the official format is protocol://login:password@IP:port with authentication and protocol://IP:port without:
The protocol can be http, socks4, or socks5 — and here's the subtle part: if you omit it, ZennoPoster assumes HTTP. A SOCKS5 address written as a bare IP:port will be treated as an HTTP proxy and fail, so always spell out socks5://.
The checkboxes next to the field are worth enabling: ZennoPoster can automatically emulate geolocation, time zone, and WebRTC to match the proxy's exit IP. To do that it first detects the exit IP (automatically via ZennoLab servers, or you can enter it manually), and the “Ignore errors” checkbox controls the fallback: when detection fails, the action either uses the gateway IP for emulation or fails the step.
Step 2. Load proxies from a file — one per thread
With a proxy package, nobody types addresses into the action by hand. Export your full list from the Dashboard to a file — one address per line, the field order and delimiter are configurable at export, so you can produce ready-to-use socks5://login:password@IP:port strings — then wire it up with the standard three-block pattern:
1. Add a List and bind it to your proxies.txt file.
2. Add a List processing action that takes a line from the list and stores it in a variable, for example {-Variable.proxy-}.
3. In the Set proxy action, pass that variable as the value.
Each thread takes its own line at the start of a run, so a hundred threads spread across a hundred IPs. ZennoPoster also ships with a built-in ProxyChecker (the Proxy checker button on the main panel) — you can point it at the same file or URL as a source, let it verify the proxies, and hand out only working ones to your templates.
Our packages start at 100 IPs with some of the highest concurrent-connection limits on the market — which is exactly what ZennoPoster multithreading consumes; which proxy type fits which ZennoPoster workload, with pricing and specs, is broken down on the proxies for ZennoPoster page. When a target starts rate-limiting, refresh the list on request and re-export the file; the template doesn't change. And if you'd rather skip list management entirely, a rotating proxy gives every thread the same gateway address while the exit IP rotates on each request.
Step 3. Verify the connection
Add a page load of https://api.ipify.org right after the Set proxy action — the page shows a single line with the IP the target sees. If it prints the proxy IP rather than your own, the setup works; remove the check before production.
If something doesn't work
The most common causes: a SOCKS5 proxy written without the socks5:// prefix is parsed as HTTP and fails — spell the protocol out; connection errors usually mean the port doesn't match the authentication method (see the table) or, on ports 8085/1085, that the machine's IP isn't whitelisted; and if the Set proxy step itself fails while the proxy works in other software, it's usually the exit-IP detection described above — enable “Ignore errors” or enter the exit IP manually. If none of these is it, message us in live chat right on this page — we'll help you get connected. There's also a dedicated page about proxies for ZennoPoster with package recommendations.