Integration notes for data pipelines
WeProx lines are plain authenticated proxies: one host, an HTTP port, a SOCKS5 port and a credential pair, terminating on a single 4G or 5G device with an AT&T, T-Mobile or Verizon SIM reserved for your account. Anything that speaks HTTP CONNECT or SOCKS5 can use them. This reference starts where most collection jobs start, with Selenium, Python requests and curl, and then covers headless Node tooling, cloud phones and profile-based browsers. Each entry states the proxy interface the tool exposes, the configuration sequence and the failure modes we see in tickets. We have no commercial relationship with these projects or vendors; compatibility follows from the protocols.
Selenium
Browser automation frameworkSelenium controls Chrome, Firefox and other browsers through WebDriver. The proxy is a browser concern: Chrome takes a proxy-server argument, Firefox takes profile preferences. Neither launch path accepts credentials, so authentication goes through a small extension that answers the auth challenge, a localhost forwarder, or BiDi network interception on recent releases. Use a carrier line when JavaScript-heavy targets serve different content to server ranges.
- Choose the scheme: http for the HTTP port, socks5 for the SOCKS5 port.
- Pass host:port via ChromeOptions arguments or Firefox proxy preferences.
- Inject credentials with a packaged auth extension, a local unauthenticated forwarder, or BiDi auth handling.
- Instantiate one driver per line to keep egress attribution clean.
- Assert the ASN or ISP on an IP echo endpoint before the crawl starts.
- Build the auth extension at runtime from environment variables so credentials never land in the repository.
- On SOCKS5, verify DNS goes through the proxy; a local resolver leaks your server's location to DNS logs.
Python requests and curl
HTTP client librariesrequests and curl express a proxy as a URL of the form scheme://user:pass@host:port. requests reads a mapping from target scheme to proxy URL and gains SOCKS support with the socks extra installed; curl takes the proxy flag or the standard environment variables. This is the lowest-overhead route for API endpoints and static HTML, where a full browser adds nothing.
- Assemble the proxy URL from host, port and credentials, percent-encoding any reserved characters in the password.
- In requests, set the same URL for both http and https keys on a Session object.
- For SOCKS5, use socks5h so hostname resolution happens at the proxy.
- In curl, pass the URL with the proxy option, or export the proxy environment variables.
- Hit an IP echo endpoint and log the returned address with every batch.
- Reuse a Session for connection pooling; a new TCP handshake through the proxy per request wastes latency.
- Call the rotation link with a plain GET from the same script, then poll the echo endpoint until the address differs.
Puppeteer
Browser automation libraryPuppeteer drives headless or headed Chromium from Node. The proxy is supplied as a launch argument, and credentials are answered per page through the authenticate method, which avoids the extension workaround Selenium needs. It suits SPA rendering and screenshot jobs on Node stacks.
- Launch Chromium with the proxy-server argument pointing at host and HTTP port.
- Call page.authenticate with the username and password before the first navigation.
- Navigate to an IP echo endpoint and assert the carrier.
- Run the scrape, then close the browser to release the tunnel.
- Trigger the rotation link between browser instances when a new address is required.
- Authenticated SOCKS5 is not accepted directly by Chromium; use the HTTP port or a local forwarder if you need SOCKS semantics.
GeeLark
Cloud phone platformGeeLark hosts Android instances in the cloud with a per-device proxy that captures all device traffic. For data work it is the option when the only surface is a native mobile app, for example checking how an app renders regional listings. Device-level routing means the app sees carrier egress end to end.
- Open the device's proxy configuration.
- Select HTTP, or SOCKS5 if the app relies on UDP transports.
- Enter host, port and credential pair.
- Run the platform's proxy verification.
- Align device region and timezone with the reported geolocation, then boot.
- Apps may pin or cache endpoints; restart the app after any rotation so new connections pick up the new address.
Multilogin
Anti-detect browserMultilogin exposes profiles over a local automation API and supports Selenium and Playwright-style attachment to a launched profile. The proxy is profile state. It fits pipelines that need persistent, fingerprint-consistent browser identities rather than stateless headless runs.
- Define the proxy on the profile: type, host, port, username, password.
- Run the built-in connection test.
- Start the profile through the local API.
- Attach your automation client to the returned endpoint and verify egress.
- Parameterise proxy fields in the API call that creates profiles, so infrastructure-as-code holds the mapping of profile to line.
AdsPower
Anti-detect browserAdsPower provides per-profile proxies and a local API that returns a debugging endpoint for automation frameworks. Useful when you want scripted runs to reuse cookies and fingerprints across days.
- Configure the profile proxy with HTTP or SOCKS5 and the matching port.
- Enter host and credentials.
- Run the proxy check.
- Launch via the local API and connect your driver to the returned endpoint.
- Log the profile ID alongside the exit IP in your run metadata; it makes later debugging deterministic.
GoLogin
Anti-detect browserGoLogin runs profiles on its own Chromium build and offers an SDK for launching them from code. Proxy fields sit on the profile and sync with it. It works for small teams mixing manual review with scripted collection.
- Set proxy type, host and port on the profile.
- Add the credential pair.
- Run the check and confirm the ISP field shows a mobile carrier.
- Launch from the SDK or the app and verify egress on first request.
- Keep manual and scripted use of a profile on separate lines if you need clean attribution in logs.
Incogniton
Anti-detect browserIncogniton isolates profiles and accepts HTTP(S) and SOCKS5 proxies per profile, with an API for launching profiles in automation. A reasonable choice for moderate profile counts.
- Open the profile's proxy section and select the protocol.
- Provide host, matching port and credentials.
- Run the connection check.
- Launch and confirm egress through an IP echo request.
- If the check passes but large pages stall, repeat the request over the other protocol to isolate whether the transport is at fault.
BitBrowser
Anti-detect browserBitBrowser handles bulk profile creation with proxy import from delimited text and a local API. Useful when a job needs many persistent browser identities spread across several lines.
- Export your lines to a delimited file with type, host, port, user, pass columns.
- Import the file and map columns to fields.
- Validate each entry with the proxy detection check.
- Bind proxies to profiles and launch through the API.
- Validate the import by diffing a few parsed entries against the dashboard before binding at scale.
MostLogin
Anti-detect browserMostLogin is a newer anti-detect browser with per-profile proxy settings. Treat it like any other profile store: the four connection values plus protocol.
- Open profile proxy settings.
- Select HTTP or SOCKS5.
- Enter host, port and credentials.
- Run the check and save.
- Pin the tool version in your team docs; field placement tends to move between releases of newer browsers.
Connection parameters
Each line exposes HTTP and SOCKS5 on distinct ports of the same host, authenticated with a username and password. SOCKS5 carries UDP. Sessions are sticky until you call the rotation link or API; rotations are unlimited with no waiting period, and a per-request rotation mode exists for stateless jobs. Data on every plan is unlimited, so throughput planning is about device bandwidth, not quota: typically 20 to 45 Mbps on 4G and 50 Mbps or more on 5G, depending on signal.
- scheme://user:pass@host:port for URL-based clients
- socks5h to resolve DNS at the proxy
- Rotation link callable with a plain HTTP GET
- Free self-service moves across eight US metros
Address pools and expectations
Egress comes from the carrier's regional CGNAT pool, which is finite, so addresses recur over a day. Many real subscribers share those addresses, which is why target sites weigh request behaviour heavily. Design crawlers accordingly: respect robots directives and rate limits, cache aggressively, and collect only data you are permitted to collect.
Debugging checklist
When a tool reports a failure, reduce it to a curl request with the same URL. If curl succeeds, the issue is tool configuration; if it fails, check port and protocol pairing, credential encoding, and whether the line was mid-rotation. Support answers on email and Telegram at any hour.
Integration questions
Are any of these projects official WeProx partners?
No. They implement standard HTTP proxy and SOCKS5 support, and our lines speak those protocols. There is no partnership or certification.
Which scheme should a scraper use?
HTTP is the most widely supported. Use socks5h when you want DNS resolved at the proxy or need UDP. Authenticated SOCKS5 is not accepted by every browser engine.
How do I know a rotation has completed?
Poll an IP echo endpoint through the line after calling the rotation link and proceed when the address changes. Avoid fixed sleeps.
Can several workers share one line?
Yes, concurrency on one line is fine, but all workers share the same egress IP and device bandwidth. Split independent jobs across lines.