Kameleo is an antidetect browser built for both manual work and automation: each profile gets its own fingerprint, cookies and proxy, and a Local API lets scripts create and start profiles. Kameleo proxy setup with a ProxyHive IP: on the profile edit page choose SOCKS5 as the proxy type, enter the host, port, username and password from your order, click Test Proxy, then Save. In code, pass the same four values as ProxyChoice(value="socks5", extra=Server(...)). Start the profile and https://api.ipify.org shows the IP you bought.
Steps checked against the Kameleo Help Center and Developer Center on 2026-09-30.
What this is for
Use it for your own accounts and your own automation: stores, ad accounts or client accounts you operate, and scripts that act on them. Our allowed-use policy permits several accounts where the platform itself allows them. Social platform automation is allowed for accounts you own and for public data collection; mass account creation and engagement farming are not. Creating accounts to abuse promotions or referral schemes, and bulk unsolicited messaging, are not allowed at all. This is not legal advice; read the policy and the platform's terms. Proxies for account management covers the approach in more depth.
Before you start
- Buy one static IP per profile and open the order in the dashboard at https://app.proxyhive.io. ISP proxies are the usual fit: static addresses on a named consumer carrier, from $3.20/IP for one IP, with country, region, city and carrier chosen at checkout.
- Copy HOST, PORT, USERNAME and PASSWORD for each IP. The order lists HTTP, HTTPS and SOCKS5 ports separately; this guide uses the SOCKS5 port.
- For the Local API, install the Python SDK:
pip install kameleo.local-api-client(version 5.2.0 when this was written). The Kameleo app must be running.
Kameleo proxy setup in the app
- Click New Profile and pick the base profile you want.
- In the proxy section of the profile edit page, choose SOCKS5 (or HTTP with the HTTP port).
- Enter Host, Port, Username and Password. Or paste the dashboard's
USER:PASS@HOST:PORTcopy format: Kameleo readsusername:password@hostname:portand fills the fields. - Check the type after pasting. Kameleo guesses the proxy type from port conventions, and ProxyHive ports do not follow them, so confirm it still says SOCKS5 for the SOCKS5 port.
- Click Test Proxy. Kameleo tries to reach Google, Archive.org and Wikipedia through the proxy; one success means it works.
- Click Save, or Save & Start.
Keep location on Automatic
Under Advanced Settings, the Location section sets WebRTC, timezone and geolocation from your external IP. Leave Timezone, Geolocation and WebRTC on Automatic, which Kameleo recommends: they then match the proxy. Block on WebRTC or geolocation avoids leaks but looks unusual, and Off exposes your real values. Kameleo also advises matching the profile language to the proxy's country.
Kameleo Local API proxy settings
The Local API listens on http://localhost:5050 by default. The proxy field on a profile takes a type in value and the connection in extra, where id is the username and secret the password. This Python example creates a profile on one IP and tests it:
import os
from kameleo.local_api_client import KameleoLocalApiClient
from kameleo.local_api_client.models import CreateProfileRequest, ProxyChoice, Server
client = KameleoLocalApiClient(endpoint="http://localhost:5050")
client.verify_engine_ready()
proxy = ProxyChoice(
value="socks5",
extra=Server(
host=os.environ["PROXY_HOST"],
port=int(os.environ["PROXY_PORT"]),
id=os.environ["PROXY_USERNAME"],
secret=os.environ["PROXY_PASSWORD"],
),
)
fingerprints = client.fingerprint.search_fingerprints(device_type="desktop", browser_product="chrome")
profile = client.profile.create_profile(
CreateProfileRequest(fingerprint_id=fingerprints[0].id, name="Store A", proxy=proxy)
)
result = client.profile.test_profile_proxy(profile.id)
print(result.result)
for step in result.steps:
print(step.name, "ok" if step.successful else step.comment)
Set PROXY_PORT to the SOCKS5 port from your order. result is success, or partial_success when a check such as IPv6 did not pass. A failure comes back as a 503 error, so the SDK raises an exception instead of returning it. To test an IP before creating a profile, client.general.test_proxy() takes the same ProxyChoice. From here, the Playwright guide shows the browser-automation side.
Verify the exit IP
- Start the profile from the app, or with
client.profile.start_profile(profile.id). - Visit https://api.ipify.org?format=json in the browser.
- The
ipvalue should be the address on your order, and different for each profile.
The curl guide tests the same IP without Kameleo.
Several IPs: one per profile
Kameleo's own recommendations match ours: never use the same proxy for two profiles, and keep each profile on the same proxy over time. In the API, create one ProxyChoice per IP and one profile per ProxyChoice. Stop a profile before changing its proxy; Kameleo does not support switching mid-session. A static ISP IP holds for the term you buy; what an ISP proxy is explains why it reads as a home connection.
Troubleshooting
- Test Proxy fails. Wrong host, a SOCKS5 port set as HTTP (check the auto-detected type), or wrong credentials.
- The
direct_*steps fail in an API test. Those skip the proxy, so your own internet connection is the problem. - Profile stays on "Starting". The first launch of a browser version downloads its kernel; wait up to a minute.
- Special characters in the password. Kameleo notes they may need URL encoding in a pasted connection string. Type the fields separately instead.
Kameleo's using proxy servers tutorial and built-in proxy manager article are the vendor references.