Byparr: A Self-Hosted Service for Getting Past Cloudflare Browser Checks
You've written a scraper or an automation script, pointed it at a site, and hit the wall: a Cloudflare browser check that won't let you through. The page loads, a challenge runs, and you're left staring at a spinner or a block page. Byparr is a self-hosted service that handles that browser check for you, so your requests have a better shot at getting where they're going.
What It Does
Byparr runs as a server that you host yourself. It's designed to pass the initial browser check that Cloudflare and similar captcha providers put in front of a connection, and it exposes options for binding to a host and port, routing through a proxy, and adjusting the browser's behavior.
The configuration is handled through environment variables. You can set HOST (defaults to 0.0.0.0, or use :: for IPv6, or 127.0.0.1/localhost for local-only access) and PORT (defaults to 8191). If you need to route traffic through a proxy, you've got PROXY_SERVER in protocol://host:port format, plus PROXY_USERNAME and PROXY_PASSWORD for authentication. There's also an OWUI_API_KEY option that acts as a bearer token for the /load endpoint—it needs to match EXTERNAL_WEB_LOADER_API_KEY in Open WebUI, which tells you this is built with that integration in mind.
One of the more thoughtful options is BROWSER_LOCALE. You can set it to a BCP-47 language tag like en-US, de-DE, or fr-FR to fix the browser's language and Accept-Language header. When you leave it unset, Byparr derives the locale from the egress country—so a French proxy gets you fr-FR, keeping the browser language consistent with the exit IP.
Why It's Cool
It's honest about what it can and can't do. The README opens with a prominent warning: this software doesn't guarantee that any challenge will be bypassed. It "only greatly increases the chance." The reasoning is spelled out—while Byparr passes the initial browser check, Cloudflare and other captcha providers likely require valid network traffic originating from your public IP address to mark a connection as legitimate. That kind of upfront honesty is rare and useful. You know what you're getting before you spend time debugging.
The locale-from-egress-country behavior is a small but smart detail. If you're using a proxy, having the browser language automatically match the exit IP's country avoids a mismatch that could look suspicious. And if you want to override it, you can—the BROWSER_LOCALE variable takes a standard BCP-47 tag, with links to the IANA registry and a friendlier ISO 639-1 list in the docs.
It plays well with existing tools. The OWUI_API_KEY option and its correspondence to Open WebUI's EXTERNAL_WEB_LOADER_API_KEY suggests this is meant to slot into a larger stack rather than stand alone. If you're running Open WebUI, the wiring is already there.
Proxy support is first-class, not an afterthought. You get PROXY_SERVER, PROXY_USERNAME, and PROXY_PASSWORD as separate variables, so authenticated proxies are straightforward to configure. The README also mentions a partnership with a proxy service called ProxyBase, with an affiliate code (byparr) and a note about pricing ($0.69/GB with occasional promotions at the time of writing). It's an affiliate arrangement, and the README says so plainly, but the underlying point—that proxies can significantly improve success rates—is a real one for this kind of tool.
How to Try It
Byparr is self-hosted and configured entirely through environment variables, so getting started is mostly about deciding how you want to run it and what options to set.
-
Head to the repository and check the tags:
v*.*.*andlatestare considered stable releases,mainis the latest from the main branch (untested), andpr-{number}tags exist for pull requests. -
Decide on your configuration. At minimum, you'll probably want to set
HOSTandPORTif the defaults (0.0.0.0and8191) don't suit your setup. -
If you're routing through a proxy, set
PROXY_SERVERinprotocol://host:portformat, plusPROXY_USERNAMEandPROXY_PASSWORDif the proxy needs auth. -
If you're integrating with Open WebUI, set
OWUI_API_KEYto match yourEXTERNAL_WEB_LOADER_API_KEY. -
If you want to pin the browser language—or you're not using a proxy and want to be explicit—set
BROWSER_LOCALEto a tag likeen-USorde-DE.
You can find the full details and any additional setup instructions at github.com/thephaseless/byparr.
Final Thoughts
Byparr is a focused tool for a specific, annoying problem. It won't magically defeat every Cloudflare challenge—the README is clear that valid traffic from your public IP is often part of the equation, and it suggests running troubleshooting steps and testing other sites before filing an issue. But if you're building scrapers, automation, or integrations that keep hitting browser checks, and you're willing to self-host and configure a proxy, this is worth a look. It's best suited for developers who already understand the constraints of anti-bot systems and want a configurable piece of infrastructure to help with the first hurdle, not a silver bullet.
Follow @githubprojects for more developer tools and open source projects.