Proxies that match the identity
A US residential IP on a browser set to Europe/Amsterdam is a one-line check, and it's the most common self-inflicted mismatch we see. Give Clearcote a proxy with geoip on and it looks up the exit IP and sets the timezone, languages and WebRTC address to fit, before the first page loads.
Proxy support and geoip are in every tier.
One option to line them up
import { launch } from "clearcote";
const browser = await launch({
fingerprint: "account-42",
proxy: { server: "http://gateway:8080", username: "u", password: "p" },
geoip: true, // timezone + languages + WebRTC follow the exit IP
});Highlights
geoip in one option
The exit IP is looked up in the offline geoip-all-in-one database, and the timezone, primary language, Accept-Language and WebRTC address are set for that region.
One locale everywhere
Accept-Language, navigator.language, Intl.DateTimeFormat and toLocaleString follow the same language, in the page and in workers.
SOCKS5 with credentials
Stock Chromium can't authenticate to a SOCKS5 proxy. Clearcote implements the username and password handshake (RFC 1929) in the engine, so the proxy string just works.
WebRTC without the leak
By default WebRTC can't send traffic around the proxy, so your own address stays private. The licensed build also reports the proxy's address, as a browser really behind it would.
Geolocation to match
--fingerprint-location pins coordinates next to the timezone, so the Geolocation API and the clock agree.
Or skip buying proxies
Hosted browsers include a residential proxy, with country, state and city targeting and sticky sessions.
Why location has to line up
Location shows up in several independent places: the IP address, the timezone, the language headers, number and date formatting, WebRTC and, if permitted, geolocation. A detector doesn't need to know where you are. It only needs two of those to disagree.
geoip makes the exit IP the source of truth. At launch, the SDK resolves the proxy's exit address, looks it up in an offline database and sets the rest to fit, so the first page already sees a consistent locale.
Always check the exit before you trust a session. A proxy that silently fails open sends traffic from your own IP, and every other precaution stops mattering. One request to an address reflector at launch is enough.
What people use it for
Region-specific results
Prices, search results and availability as a visitor in that country sees them.
Accounts tied to a region
Keep an account's IP, timezone and language the same every session.
Ad and content checks
See the ad, page or offer shown to a visitor in a given city.
Localisation QA
Check dates, currencies and translations the way local visitors get them.
Clearcote is built for privacy, testing, research and lawful automation. You're responsible for how you use it and for following the terms of the sites you visit.
Which plan includes it
Proxy support and automatic timezone and language matching are in every tier. WebRTC that reports the proxy's address, rather than only hiding yours, is in the licensed build (free with GitHub).
Compare plansFAQ
What does geoip do exactly?
It resolves the proxy's exit IP, looks it up in the offline geoip-all-in-one database, and sets a matching timezone, primary navigator language, Accept-Language header and WebRTC IP for that region.
Does Clearcote support SOCKS5 proxies with authentication?
Yes. Pass socks5://user:pass@host:port, or the credentials separately. Clearcote implements SOCKS5 username and password authentication in the engine, which stock Chromium doesn't, so you don't need a local relay.
Will WebRTC leak my real IP?
Not by default. The SDK sets WebRTC so it can't send UDP outside the proxy, which keeps your own address private. The licensed build goes a step further and reports the proxy's address, the way a browser actually sitting behind that IP would. See what a WebRTC leak is.
Which proxy types work?
HTTP and SOCKS5 proxies, with or without credentials. Residential or mobile exits match a consumer browser best; hosted browsers include residential exits.
Do I have to set the timezone myself?
Not with geoip. If you'd rather set it by hand, pass timezone and acceptLanguage (Python: accept_language), and Intl and toLocaleString follow the language too.
Go deeper in the docs
Related features
Start a Clearcote browser in the cloud with one API call and connect Playwright or Puppeteer over CDP. Residential IP included, billed per GB of traffic.
One seed per account: the same device every session, a different one for the next account, with cookies and storage that persist between runs.
The TLS handshake and HTTP/2 frames come from Chromium's own network stack, and the version-dependent fields follow the Chrome version your persona claims.
Canvas, WebGL, WebGPU, audio, fonts, screen, hardware and locale set in the C++ engine from one seed, so every surface agrees with every other.
Related reading
Try Clearcote
Open source, a drop-in for Playwright & Puppeteer, and coherent down to the TLS handshake.
Free for one browser with GitHub. No card.