How to set a proxy in BAS (Browser Automation Studio)
In Browser Automation Studio a proxy is one action in the script — literally called Proxy. Add it before the first page load, and every network request in that thread goes through the proxy, DNS lookups included. This guide covers where to place the action, which string formats BAS accepts, and the setup that multi-threaded work actually needs: loading a proxy list from a file so each thread picks up 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. BAS works with HTTP 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 — BAS handles the authentication itself, for SOCKS5 too |
| 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. Note that unlike regular browsers, BAS authenticates to SOCKS5 proxies with a username and password without any workarounds — both ports 1080 and 1085 work.
Step 1. Add the Proxy action at the start of the script
In the action search, type Proxy and add the action from the Browser group. The one rule that matters: it must run before the first page load or any other browser action — everything that happens after the Proxy action goes through the proxy, everything before it goes direct.
The action takes a proxy string, the type (HTTP or SOCKS5), and optional login and password fields. If your credentials are already inside the string, leave the login and password fields empty. BAS parses most common formats:
To change the proxy mid-run, call the Proxy action again with a new value — no thread restart needed. An empty string (or the Reset action) removes the proxy.
A classic gotcha: by default the Proxy action is added in “Only Add” mode, which means it executes in production runs but is skipped while you develop — so in the editor all traffic goes from your real IP and everything “works” until you notice the target site sees you. If you want the proxy active during development too, switch the action to “Execute And Add”.
Step 2. Load proxies from a file — one per thread
With a proxy package, nobody types addresses into the action by hand — and the official BAS documentation recommends the same approach: feed proxies through the Resource system. 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 match any of the formats above — then:
1. Create a resource (for example, named PROXY) with the file type — at every script launch, BAS will show a field asking for the path to proxies.txt.
2. In the Proxy action, click the proxy string field, choose “Load from file, user input, database”, and select your PROXY resource.
That's the whole rotation setup: each thread takes the next line from the file on every run, so a hundred threads spread across a hundred IPs with no extra code. If a proxy fails, BAS restarts the thread and takes a fresh one from the resource automatically — just set a sensible fail limit in the run settings so dead threads don't retry forever.
Our packages start at 100 IPs with some of the highest concurrent-connection limits on the market — which is exactly what BAS multithreading consumes; which proxy type fits which BAS workload, with pricing and specs, is broken down on the proxies for BAS page. When a target starts rate-limiting, refresh the list on request and re-export the file; the script 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 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. A useful detail from the BAS documentation: DNS queries also go through the proxy, so there's no DNS leak to worry about.
If something doesn't work
The most common causes: threads restarting one after another usually means the proxies don't respond on the chosen port — check that the port matches the authentication method (see the table) and, on ports 8085/1085, that the machine's IP is whitelisted; authentication errors usually mean the string format confused the parser — the safest format is login:password@IP:port plus the correct type selected; and if the target site sees your real IP in the editor, that's the “Only Add” mode described above, not a proxy failure. 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 BAS with package recommendations.