How to add a proxy in AdsPower
Proxy Compare read twelve AdsPower proxy help pages on 27 Aug 2026 and searched every one of them for allowlist authentication. None documents it. This page reconciles the two paste formats AdsPower does document against the object its Local API actually accepts, so you can tell which field a failure is in.
1 Sept 2026 · 7 min read
Point in time. The figures below were read on 27 Aug 2026 and are not updated after publication. For current numbers see the comparison table.

AdsPower does not sell proxies. Its own documentation is unusually direct about this: "AdsPower Browser neither provides proxies nor has any proxies built in."
So everything below is about connecting one you already have, and about the two things their help centre documents that almost nobody repeats: what the check button's exact wording means, and why a profile can show your real address with a proxy correctly configured.
What is AdsPower?
AdsPower is an anti-detect browser that keeps many browser profiles side by side, each with its own fingerprint, cookies and proxy. It is used mostly for running multiple accounts on one machine and for automation driven through its local API.
AdsPower proxy features
Two paste formats, in two different places
The profile dialog takes the simple one. "Paste your proxy information into the Host:Port field in the format IP:port:username:password and other fields will be filled in automatically."
The Proxies list has its own Add Proxy box with a richer syntax, and AdsPower publishes four example shapes verbatim:
192.168.0.1:8000{Remark}
192.168.0.1:8000:username:password{Remark}
socks5://192.168.0.1:8000[Change IP URL]{Remark}
http://[2001:db8:2de:0:0:0:0:e13]:8000[Change IP URL]{Remark}
Read those closely, because three separate conventions are stacked in them. Curly braces carry a remark. Square brackets carry the rotation URL, the same convention Dolphin Anty and GoLogin use for rotation. And in the fourth line, square brackets are doing a completely different job: holding an IPv6 literal before the port. The scheme prefix is optional throughout.
A check button with two exact strings
"Connection test passed" means it worked. "Connection test failed" means, in AdsPower's own words, "AdsPower couldn't connect to the proxy". Those are the literal strings, which matters when you are searching their help centre for one of them.
Protocol coverage including SSH
"AdsPower Browser supports all popular proxy protocols, such as HTTP/HTTPS, socks5, or ssh." The profile dialog's type selector is documented as offering "HTTP", "Socks 5" or "HTTPS".
Adding a proxy
- Open the profile's Proxy tab and choose Custom. "Click the 'Custom' button in the Proxy tab, choose a proxy type."
- Paste into Host:Port. The colon-delimited string splits itself across the remaining boxes. If you prefer, fill them by hand: "Fill out the 'Host:Port', 'Proxy username' and 'Proxy Password' fields".
- Click Check Proxy and read which of the two strings comes back.
For many at once, use the Proxies section and its Add Proxy box: "Fill in the proxy information in the box in the top right corner according to the examples."
When the connection test fails
AdsPower has a named error, Proxy failure, with its own page: "This error means the proxy connection in the profile is failed." Their troubleshooting order is worth following, because the later steps are the ones nobody guesses.
Credentials first. "Please check if the proxy information is filled correctly. Normally, you need to fill in the Host:Port, username, and password."
Then expiry. "Also, your proxy may have expired. Please check with your proxy provider."
Then your own machine. A VPN or system proxy will break this silently: "please check if there is a VPN or proxy on the device that affect the connection. If so, turn it off, then reboot the computer."
Then stale environment variables, which is the step that catches people who set a proxy months ago and forgot. On Windows: "In both System variables and User variables, locate HTTP_PROXY and HTTPS_PROXY, and delete them". On macOS and Linux: "Disable Web Proxy (HTTP) and SOCKS Proxy".
To isolate whether the fault is yours or the proxy's, AdsPower suggests moving it: "You can put the proxy in another device ... If the result is a success, that means the problem is with your Internet ... If the result is failed, that means the problem is with the proxy itself."
The profile that shows your real IP
This one deserves its own section, because the configuration looks correct and the check passes.
"Sometimes, even if you have configured a proxy in your profile, after opening the profile, you will see your local IP address on the proxy detection page. This problem is usually caused by a VPN or proxy extension in the profile, leading to a traffic conflict."
Removing the extension is not the whole fix. AdsPower's documented procedure
also requires deleting the Preferences and Secure Preferences files from the
profile's Default cache directory. An extension's proxy settings survive its
removal in those files, which is why the symptom outlives the cause.
Two smaller traps from the same pages. Shared proxies rotate together: "lf several profiles are using the same proxy, refreshing the link will change the lP for each profile." And bulk operations fail quietly into a file rather than on screen: "If the task is failed, you can download the file to check the reason in error_msg."
Automating it
The Local API listens on a fixed port, which makes AdsPower unusual here.
import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
BASE = "http://local.adspower.net:50325"
# 1. Create a profile carrying the proxy. The Local API object exposes
# proxy_user and proxy_password; there is no allowlist field.
payload = {
"name": "example",
"group_id": "0",
"user_proxy_config": {
"proxy_soft": "other",
"proxy_type": "http",
"proxy_host": "gate.example.com",
"proxy_port": "7000",
"proxy_user": "user-session-abc123",
"proxy_password": "secret",
},
}
user_id = requests.post(f"{BASE}/api/v1/user/create", json=payload).json()["data"]["id"]
# 2. Start it. The response carries BOTH debug endpoints at once.
r = requests.get(f"{BASE}/api/v1/browser/start", params={"user_id": user_id}).json()
ws = r["data"]["ws"] # {"selenium": "...", "puppeteer": "..."}
driver_path = r["data"]["webdriver"] # a matching chromedriver
# 3. Attach Selenium to the address it returned.
opts = Options()
opts.add_experimental_option("debuggerAddress", ws["selenium"])
driver = webdriver.Chrome(service=Service(driver_path), options=opts)
driver.get("https://example.com")
driver.quit()
requests.get(f"{BASE}/api/v1/browser/stop", params={"user_id": user_id})
The same launch response drives Puppeteer over the other key:
const r = await fetch(`${BASE}/api/v1/browser/start?user_id=${userId}`);
const { data } = await r.json();
const browser = await puppeteer.connect({
browserWSEndpoint: data.ws.puppeteer, // ws://127.0.0.1:xxxx/devtools/browser/xxxx
defaultViewport: null,
});
A cdp_mask launch parameter defaults to 1 and controls "Whether to mask the
cdp detection". Playwright is not documented as supported against this port:
AdsPower names Selenium and Puppeteer only, and Playwright appears in their docs
solely as a build dependency of their MCP server.
The API is paid-only, in their words "Purchased the paid version of AdsPower are granted permission to use the API", so the code above follows their documented request shapes rather than a run of ours.
Whichever tool you settle on, the proxy behind it is the recurring cost, and per-gigabyte prices vary far more between providers than these applications vary between each other. What each charges, with the date it was read, is on the provider table.
Limitations
The free tier covers setup but not automation. Two profiles are free forever, and they stack with paid ones later: "if you have 2 free profiles and then purchase a package of 10 profiles, then you will have 12 profiles in total". Proxy configuration is listed as a free feature. The Local API and the bulk Update proxy tool are not.
Playwright is not documented as supported. AdsPower names Selenium and Puppeteer for the debug port. Playwright appears in their docs only as a build dependency of their MCP server, which is not the same claim.
The proxy errors have no codes. The numbered errors in their troubleshooting section, 100001 and 100044, are browser-launch failures rather than proxy failures, so there is no numeric identifier to search for.
What the documentation does not say
- Whether IP allowlisting works at all. The terms whitelist, white list and allowlist appear on none of the twelve AdsPower proxy pages we read. Multilogin documents both modes plainly, which is the contrast. Whether leaving the credential boxes blank authenticates against an allowlisted proxy is simply not addressed, so do not assume it does.
- A single authoritative field order for the current dialog. One page gives a combined "Host:Port"; the Oxylabs and IPHTML provider pages give separate host and port boxes. No page publishes the rendered form as a list.
- A row limit for the bulk Add Proxy box. Limits are published for export (300) and file-based update (1000), not for pasting.
- Whether the bulk format accepts every scheme. Only
socks5://andhttp://appear in the examples.
AdsPower gives you two credential boxes and no opinion about what goes in them. Providers disagree: the session token belongs in the username at some and the password at others, and the wrong choice fails the check exactly like a wrong password. What each states is on its provider page, dated.
Conclusion
AdsPower's proxy documentation is better than most in this category, and its two most useful pages are the ones about failure rather than setup. If a profile is leaking your real address, go straight to the preference files. If the check is failing, work down their list rather than re-typing the password a fourth time.
Sources
- Proxy Types AdsPower Help Center, read 27 Aug 2026
1. Select "HTTP", "Socks 5" or "HTTPS" in "Proxy type". 2. Fill out the "Host:Port", "Proxy username" and "Proxy Password" fields
- Proxy Types, check result strings AdsPower Help Center, read 27 Aug 2026
4. Click Check Proxy a. "Connection test passed" means that AdsPower was able to connect to the proxy successfully
- Proxies: Add, Buy, Renew, Check, Filter AdsPower Help Center, read 27 Aug 2026
AdsPower Browser neither provides proxies nor has any proxies built in.
- Create a profile AdsPower Help Center, read 27 Aug 2026
Paste your proxy information into the Host:Port field in the format IP:port:username:password and other fields will be filled in automatically.
Questions
What does Connection test failed mean in AdsPower?
It is the literal result string from the Check Proxy button and means AdsPower could not reach the proxy. Its counterpart is Connection test passed. AdsPower's own troubleshooting starts with the credentials, then expiry, then a device-level VPN or system proxy interfering with the connection.
What proxy format does AdsPower accept?
Two, in different places. The profile dialog takes a colon-delimited IP:port:username:password pasted into the Host:Port field, which then splits itself across the other boxes. The bulk Add Proxy box uses a richer syntax where curly braces carry a remark and square brackets carry a rotation URL.
Why does my AdsPower profile show my real IP?
AdsPower attributes this to a VPN or proxy extension inside the profile causing a traffic conflict. Their documented fix has a second step most guides omit: removing the extension is not sufficient, you must also delete the Preferences and Secure Preferences files from the profile's Default cache directory.
Does AdsPower support IP whitelisting?
Not in any documentation we could find. We searched twelve AdsPower proxy help pages on 27 August 2026 and the words whitelist, white list and allowlist appear on none of them. Their docs never say whether leaving the credential boxes empty works against an IP-authenticated proxy, so we are not claiming it does.
Is the AdsPower API free?
No. The Local API listens on port 50325 and is paid-only, in AdsPower's words granted to those who purchased the paid version. The free tier gives two permanent profiles and includes proxy configuration by hand, but not the API and not the bulk proxy update tool.
