Kameleo patches fingerprints at the browser kernel and refuses to launch a profile whose proxy fails its own test. Give it a gateway that passes: residential, datacenter, mobile and IPv6 IPs over HTTP or SOCKS5, with a sticky session per profile and the same credentials working through the Local API.
Sticky IP per profile HTTP & SOCKS5 Passes the launch test
Chroma on Chromium, Junglefox on Firefox. The proxy attaches the same way to both, and ours passes the pre-launch check.
Real home and cellular IPs from a 100M+ pool are what account work needs behind a kernel-level fingerprint. Datacenter and IPv6 are on the same plan for speed-first jobs.
Kameleo tests a proxy before it starts the browser and refuses to launch if the test fails. We do not restrict traffic to an approved domain list, so its checks connect normally.
Give each profile its own sticky port and it holds one address across launches, so the fingerprint and the IP stay consistent with each other.
Kameleo's Proxy Manager takes HTTP, HTTPS, SOCKS5 and SSH. Our gateway covers the first three from one set of credentials, so pick whichever the profile needs.
Kameleo exposes its Local API on all tiers, free included. The proxy lives on the profile, so scripted launches inherit the IP without handling credentials.
Point a profile at the rotating endpoint for a fresh IP per connection when you are collecting data rather than holding an account. See rotating proxies.
Four steps from gateway credentials to a profile browsing on your own IP.
Open Proxy Gateways in your Proxy Rotator dashboard. Copy the host, the port for the proxy type and location you want, and your username and password. Each type lists a rotating port and a range of sticky ports, take a sticky port for account work.
Create a new profile or edit an existing one and find the connection setting in Kameleo's built-in Proxy Manager. Change it from a direct connection to HTTP / HTTPS or SOCKS5. If a profile is already running, stop it first, Kameleo will not change a proxy on a live session.
Fill in the host, port, username and password. Kameleo also accepts a pasted connection string, which is quicker and avoids typos.
Kameleo's Proxy Manager filled in with Proxy Rotator gateway details.
Run the proxy test before you start the profile. Kameleo connects out through the gateway and tries several well-known sites in turn until one answers. Once it passes, launch the profile and the browser runs on that IP.
Kameleo's Proxy Manager accepts the standard single-line formats, so you can paste one line rather than filling four fields. Both of these describe the same gateway.
# Plain host:port:username:password gateway.proxyrotator.com:8080:USER:PASS # Or the URL form, with the scheme in front socks5://USER:PASS@gateway.proxyrotator.com:8080 http://USER:PASS@gateway.proxyrotator.com:8080 # IPv6 hosts go in square brackets [2001:db8::1]:8080:USER:PASS
@, : or / has to be percent-encoded or the string will parse wrong. The plain host:port:user:pass form has no such problem, so use that if your password has symbols in it.For a batch of profiles, keep the host and credentials identical and change only the sticky port on each line. Each port is an independent session that holds its own IP, which is exactly what one-profile-one-identity requires.
# Same host and credentials, a different sticky port each time. # Take the range from Proxy Gateways in your dashboard. gateway.proxyrotator.com:11001:USER:PASS gateway.proxyrotator.com:11002:USER:PASS gateway.proxyrotator.com:11003:USER:PASS
What belongs in each field, in the interface and in the API.
| Kameleo field | What to enter | API field name |
|---|---|---|
| Connection type | SOCKS5, or HTTP / HTTPS | value |
| Host | Your gateway hostname | extra.host |
| Port | The port for that proxy type and location | extra.port |
| Username | Your gateway username | extra.id |
| Password | Your gateway password | extra.secret |
| Direct connection | No proxy at all | proxy = null |
| SSH | Not applicable to our gateway | — |
Note the API names: the username goes in id and the password in secret, not username and password.
Kameleo runs its Local API on http://localhost:5050 and ships SDKs for Python, JavaScript and C#. It is available on every plan, including the free tier, so you can script profile creation from day one.
The proxy is described by a small object with two parts: value for the protocol, and extra for the server itself. This is the part that catches people out, because the credential fields are not called what you would expect.
# Kameleo Local API: http://localhost:5050
# Attach this object to the profile, and the browser launches behind it.
proxy = {
"value": "socks5", # 'http', 'https', 'socks5' or 'ssh'
"extra": {
"host": "gateway.proxyrotator.com",
"port": 8080,
"id": "USER", # username lives in 'id'
"secret": "PASS" # password lives in 'secret'
}
}
# Set it on the profile request when you create or update the profile.
# Use proxy = None for a direct connection with no proxy at all.
Two behaviours worth designing around. Kameleo tests the proxy before every launch and will not start the browser if the test fails, so wrap profile starts in a retry and surface the failure rather than assuming the browser opened. And a profile has to be stopped before its proxy can be changed, so swap the proxy between runs, not during one.
Kameleo can hold a bypass list of hosts and CIDR ranges that connect directly rather than through the proxy, which is useful for an internal service you do not want tunnelled. It can also restrict WebRTC to proxied TCP connections, which closes the leak where WebRTC reports your real address while everything else goes through the gateway. Both are worth switching on for account work.
Kameleo resolves DNS through the proxy, which is what you want: lookups leave with the traffic instead of going to your own resolver, so there is no trail of hostnames on your real connection. It does not support UDP-based proxies, so anything UDP-only is out, but HTTP, HTTPS and SOCKS5 all work, and those are what our gateway serves.
Match the profile to the exit IP as well. Set the timezone and language to the country you targeted, and if the profile does anything location-aware, line up the geolocation too. City-level targeting on residential makes this easy: pin the profile to one city, set the matching timezone once, and every launch tells the same story.
For accounts, use sticky proxies. One IP per profile, held for the session, so the account looks like the same returning person each time. Pairing a kernel-level fingerprint with an IP that changes underneath it defeats the purpose.
Use rotating proxies for collection work, where a fresh IP per connection is the advantage. Same gateway, same plan, different port.
Because a failed test blocks the launch, most Kameleo proxy problems look like a browser that will not open.
| Symptom | Likely cause | Fix |
|---|---|---|
| Browser will not launch at all | The pre-launch proxy test failed, so Kameleo stopped | Run the proxy test on its own and fix the failure it reports |
| Test fails, cURL works | Provider blocks the sites Kameleo tests against | Use a gateway with no domain allow-list. Ours has none |
| Authentication rejected | Password with symbols broke the URL-form string | Use plain host:port:user:pass, or percent-encode it |
| Connection refused | Protocol does not match the port | Confirm SOCKS5 vs HTTP / HTTPS against your dashboard |
| Proxy change did not apply | The profile was running when you edited it | Stop the profile, change the proxy, start it again |
| Local API unreachable | Kameleo not running, or port 5050 blocked locally | Start the app and allow localhost:5050 through the firewall |
| Real IP visible in a leak test | WebRTC not restricted to the proxied connection | Turn on the WebRTC restriction in the profile settings |
| IP changes between launches | Pointed at a rotating port | Switch to a sticky port from the range in your dashboard |
Before you blame Kameleo, confirm the credentials independently. This should print an IP that is not yours.
curl -x http://USER:PASS@gateway.proxyrotator.com:8080 https://api.ipify.org
One plan and one set of credentials covers every tool here.
Proxy Manager, bulk add and local API automation.
View setup guideProxy Library, bulk import and a sticky IP per profile.
View setup guideSticky IPs across the Mimic and Stealthfox engines.
View setup guidePer-profile proxies for multi-account work.
View setup guideNative proxy auth per browser context, no desktop app.
View setup guideEvery supported tool, with copy-paste setup guides.
Browse all guidesgateway.proxyrotator.com:8080:USER:PASS. Run the proxy test, then launch the profile.value for the protocol, one of http, https, socks5 or ssh, and an extra object holding the server. Inside extra, the username goes in id and the password in secret, not username and password. Setting the whole proxy to null gives a direct connection.http://localhost:5050. That means you can script profile creation and proxy assignment while you are still evaluating, using the same gateway credentials you would use in production.Residential, mobile, datacenter and IPv6 on one plan, with a sticky IP per profile and a gateway that passes Kameleo's pre-launch test. From $24.95/mo.