ZennoPoster and BAS (Browser Automation Studio) are two popular bot builders in the Russian-speaking community: they are used for registrations, warming up, posting, and parsing. In both cases, proxies are the main resource, and mistakes are often made not in the string format, but in the scheme: two threads are assigned to one IP, the address changes in the middle of registration, and the browser template downloads dozens of gigabytes of images overnight. By autumn 2026, managing this has become easier: ZennoPoster 7.9.1 from August 11 learned to count traffic for each proxy directly from the project, while ZennoPoster 7.9.2 (September 17) and BAS 30.8.0 (September 16) upgraded the browsers to Chromium 152 and 153. Below is a working scheme of "one thread - one IP" for both programs, selection of rotation for the task, and traffic calculation before the bill arrives.
What Changed in 2026 and Why It Matters for Proxies
If templates work on versions from the beginning of the year, some proxy issues can be resolved with a simple update. From the change logs of ZennoLab and Bablosoft, five points are important for working with proxies:
- ZennoPoster 7.9.0 (June 25). The block "Image Processing → Image Saving → URL" learned to work through proxies. Before this, the block fetched the image without a proxy, using the IP of the machine where the template runs — a silent leak that is easy to overlook.
- ZennoPoster 7.9.1 (August 11). Incoming and outgoing traffic is now accounted for in bytes for each proxy: for Chromium and ChromiumFromZB browsers (including WebSocket, without responses from the cache) and for all HTTP blocks — standard, alternative, and TLS. The data is accessible from the code through the
ZennoPoster.ProxyTrafficInfoobject. - In the same version the emulation of geolocation data and time zones began to account for IPv6 addresses, and ZennoBrowser profiles with SOCKS5 proxies in integration stopped timing out upon launch.
- ZennoPoster 7.9.2 (September 17). Public HTTP API with 100+ operations, three MCP servers for AI assistants, and the agent mode of the "AI Agent" block, which manages the browser of the task itself. The engine is Chromium 152.
- BAS 30.8.0 (September 16). The engine has been updated to version 153, introducing the Agent mode, which creates, modifies, and tests scripts based on textual descriptions, and a module for generating two-factor authentication codes.
The practical conclusion: before scaling templates, update to at least ZennoPoster 7.9.1 and BAS 30.8.0. Traffic accounting for each proxy is exactly what was missing when paying for gigabytes.
Step 1. Choose a Rotation Mode for the Task
The short answer: for account work, a sticky session with a separate port for each thread is needed; for parsing with HTTP requests — a new IP for each request; for browser parsing without logging into an account — a sticky session with a short interval.
In ProxyCove, the mode is set by the port. Port 824 changes the IP with each request. Ports 10000–20000 work with interval rotation: each port provides its own IP and holds it for a specified time — from 1 to 120 minutes. The interval can be changed in the rotation settings in the proxy card.
- Registration, warming up, posting. The account needs a stable address for the entire cycle. Set the interval with a margin for the duration of one run: if registration with email confirmation takes 20–25 minutes, take 40–60. Changing the IP in the middle of the form is a typical cause of checkpoints.
- Data collection with GET/POST blocks. Each request is independent, so maintaining a session is unnecessary. Port 824 distributes the load across the pool and reduces the chance of hitting limits on one IP.
- Browser parsing without login. Here, rotation for each request is detrimental. According to Web Almanac 2025, the median desktop page makes 77 requests to different resources, and on port 824, parts of one page will come from different addresses. For anti-bot systems, this is atypical behavior, so use a sticky port with an interval of 1–5 minutes and change the IP between pages, not within them.
Step 2. Choose the Type of Proxy
The type determines not only the price per gigabyte but also how the platform treats the address:
- Residential — IPs from home providers. The basic choice for browser templates, marketplaces, SEO scraping, and registrations on moderately strict sites. In ProxyCove, residential proxies with country selection and rotation interval cost $2.70 per GB.
- Mobile — addresses from mobile operators. Many real subscribers access the network simultaneously through one such IP via CGNAT, so social networks ban them more cautiously. This is the choice for social media accounts and strict platforms: mobile proxies cost $3.80 per GB.
- Datacenter — $1.50 per GB, fast and cheap, but their subnets are well-known to anti-bot systems. Suitable for HTTP parsing of loyal sites and APIs, but a poor choice for social media accounts.
If the platform values stable geography rather than a specific address, enable targeting by city or operator (ASN). The IP will change, but within one city or network, like a regular user. Targeting is more expensive: for residential — $4.70 per GB.
Step 3. Prepare the "One Port - One Thread" List
- Open the proxy card in the ProxyCove cabinet and enable interval rotation.
- In the "Number of Threads" field, specify how many lines you need. Ports are not charged separately — you only pay for traffic, so take a list 2–3 times longer than the number of threads. The reason will be explained below.
- Select the format
httporsocks5. The cabinet will generate lines with ports 10000, 10001, 10002, and so on: each line is a separate session with its own IP. - Save the list to a file, for example,
proxies.txt. A line looks like this:socks5://login:[email protected]:10000.
If targeting is enabled, the parameters for country, city, or ASN will be appended to the login with a semicolon. Copy the entire line and do not edit it manually: an error in the parameters will break authorization or targeting.
Step 4. ZennoPoster: Own Proxy for Each Thread
Proxies in ZennoPoster can be set globally, for the project, or for each thread. For multi-threaded work, it is most reliable to take a line from the list inside the template:
- Add a "List" block in ProjectMaker, enable "Load from file" and "Save list changes to file," and specify the path to
proxies.txt. - Add "List Operation": "Get Line" → "First" with the checkbox "Delete line after retrieval." Store the result in a variable, for example,
proxy. Deleting ensures that two parallel threads do not take the same port. - Add "Browser → Settings → Set Proxy" and pass
{-Variable.proxy-}. Enable location and time zone emulation: the browser will receive geolocation data and time zone based on the proxy IP. - In each HTTP block (GET, POST), specify the same proxy — either through a variable or the project proxy option. An empty proxy field in the block means a request from the server's IP.
- At the end of the run — in both the success branch and the error branch — return the line to the end of the list. Otherwise, the list will gradually empty, and each failed thread will "consume" the port permanently.
The built-in ProxyChecker is convenient for public lists, but for a gateway with traffic payment, regular checks of the entire list are pointless: each check consumes paid megabytes, and on port 824, the next request will still go out with a different IP. Before a large launch, it is sufficient to check a couple of lines.
Step 5. BAS: Resource with Proxy and Proxy Action
- Create a resource of type "File" or "URL" with the list of proxies — this is how Bablosoft documentation recommends it, so the template user can choose the source themselves.
- In the resource settings, limit the simultaneous use of a line to one thread. There, you can also set limits for successful and unsuccessful uses and the interval between uses — for sticky ports, set it no shorter than the rotation interval.
- As the first action of the thread, before loading any page, set "Proxy" and pass the line from the resource. BAS understands many formats, including
login:password@host:portandsocks5://login:password@host:port, works with HTTP and SOCKS5 with authorization, and sends DNS requests through the proxy. - Enable geolocation and time zone change under the proxy IP in the action.
- If the template also accesses the site via an HTTP client, set the proxy for it as well: the HTTP client in BAS has its own settings, separate from the browser.
There are two features of BAS to consider. The proxy can change without restarting the thread, using the "Proxy" action again — this is convenient for changing the IP in case of an error. If the proxy stops responding, BAS restarts the thread and takes the next one. For parsing, this is a plus; for accounts, it’s a risk: the work will continue with a different IP. Keep the "account - port" pair and return the account to its port.
Step 6. Calculate Traffic Before Launch
When paying for gigabytes, the browser template is the most expensive part of the scheme. According to Web Almanac 2025, the median homepage weighs 2862 KB on desktop, of which 1058 KB are images. 10,000 downloads of such pages amount to about 28.6 GB, costing around $77 for residential proxies. Without images, it’s about 18 GB and $49. Actual figures depend on the site and cache, but the order is clear: images account for more than a third of the bill.
- BAS. The actions "Request mask deny" and "Request mask allow" are set before loading the page and accept masks with asterisks. Bablosoft documentation provides an example: deny
*.png,*.jpg, and*.gif, and then allow the captcha image to load only. - ZennoPoster. The biggest savings come from moving data collection from the browser to GET/POST blocks: they do not pull images, fonts, and scripts. In the "Traffic" window, you can see which requests weigh the most, and starting from version 7.9.1, the volume for each proxy can be read from the code through
ZennoPoster.ProxyTrafficInfo, logged, and the thread stopped if the threshold is exceeded. - Be cautious with social networks. A page without images for a real user is rare, and on some platforms, this alone looks atypical. For accounts, it’s better to limit heavy video and media while leaving images.
Cross-check your account with the cabinet: it shows the balance and consumption graph for each proxy. The provider's data updates with a delay, so operational control is more convenient to maintain within the template itself.
Pitfalls
- Real IP leaks. An HTTP block without a proxy, saving images by URL in ZennoPoster before 7.9.0, WebRTC. As the first step of the template, open an IP and WebRTC check page and compare the result with the proxy address — this is cheaper than dealing with a ban.
- Changing IP in the middle of a session. If the rotation interval is shorter than the account cycle, the platform sees an address jump between steps of the same form. The maximum interval in ProxyCove is 120 minutes; break long scenarios into shorter sessions while saving the profile.
- One IP for two accounts. As long as the rotation interval has not expired, the port will return the previous address. If the port is immediately assigned to the next account, that account will go online with the previous IP. Hence the advice for a long list: with 30 threads and 90 ports, each port has time to "cool down" before being reused.
- Geo discrepancies. The time zone and geolocation of the browser must match the country of the IP. If the proxy is "German," but the site shows the Netherlands, it is usually an issue with geolocation databases, not the proxy — here’s how IP geolocation works and why databases differ.
- Engine fingerprinting. New versions of Chromium bring new signals. Chrome 152 introduced the property
navigator.cpuPerformance— the processor class, which primarily depends on the number of cores, and ZennoPoster 7.9.2 and BAS 30.8.0 run on Chromium 152 and 153. If templates run on a VPS with two cores, while profiles depict powerful desktops, check what this property returns: analysis of the new detection signal in Chrome 152. - AI agents and traffic. The agent mode of the "AI Agent" block in ZennoPoster 7.9.2 manages the browser of the task, meaning it accesses the network through its proxy. Its cycle is limited by a mandatory iteration limit — do not set the limit with a large margin: each extra iteration costs both tokens and megabytes.
Conclusion
The scheme for both programs is the same: a separate sticky port for each thread, a rotation interval longer than the account cycle, a pause before reusing the port, geolocation and time zone according to the IP, proxies in all HTTP requests, and traffic accounting from day one. Start with one thread: check the IP, WebRTC, and time zone, run a hundred cycles, and observe the consumption in ZennoPoster.ProxyTrafficInfo or in the cabinet. After that, scaling the template to dozens or hundreds of threads will be safer and cheaper. For browser scenarios with accounts, use residential or mobile proxies with interval rotation; for HTTP parsing, use a port with a new IP for each request.
