Bifrost Logo BifrostNetwork
Back to Blog Articles
Bifrost Network Core Team

Sick of Getting Blocked? How We Paired Proxy IPs with a Fingerprint Browser

How we combined residential proxy IPs with fingerprint browsers to spin up isolated automation environments in just a few lines of code.

If you’ve written web scrapers, or done automation testing involving multiple accounts, you’ve probably run into these situations:

  • The same IP gets flagged and blocked after enough traffic
  • You spin up a fleet of headless browsers with Playwright / Puppeteer, and they all share the same “fingerprint,” so they get flagged as bots almost instantly
  • You want to simulate multiple independent browsing environments, but manually configuring proxy, UA, timezone, and language for each one eats half an hour per environment

This post walks through how we tied together “residential proxy IPs” and “fingerprint browsers” so that spinning up a batch of isolated environments only takes a few lines of code.

Breaking Down the Problem

Multi-environment automation really comes down to two separate but related problems:

  1. Network layer: each environment needs a different exit IP, and ideally a residential one (datacenter IPs get flagged by risk-control systems far too easily)
  2. Browser layer: each environment needs its own browser fingerprint (Canvas, WebGL, fonts, timezone, etc.) — you can’t have every environment sharing the same fingerprint

Neither problem is hard on its own. The hard part is managing them together — if you’ve bought 100 proxy IPs, you don’t want to be manually wiring each one into a browser profile.

The Setup

We use a combination of residential proxy IPs (billed by GB, $0.5/GB, no markup at volume) paired with a fingerprint browser tool called BifrostBrowser.

The core idea: link your account once, then bulk-import purchased proxies to automatically generate a batch of independent, isolated browser profiles — no manual per-profile configuration needed. The tool natively supports UDP/QUIC (not just the legacy TCP/HTTP-only architecture), covers 195+ countries, and also offers static ISP / datacenter / IPv6 routes as options.

Running It From Code

A REST API is provided so you can wire it directly into Python / Playwright / Puppeteer. Here’s the simplest possible example:

import requests
from playwright.sync_api import sync_playwright

# 1. Fetch a profile via the API (already bound to a residential proxy)
resp = requests.post(
    "https://api.bifrostnetwork.cc/v1/profiles",
    json={"country": "US", "proxy_type": "residential"},
    headers={"Authorization": "Bearer YOUR_TOKEN"}
)
profile = resp.json()

# 2. Connect to this isolated environment with Playwright
with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(profile["ws_endpoint"])
    page = browser.new_page()
    page.goto("https://example.com")
    print(page.title())
    browser.close()

For batch runs, just wrap the profile-creation step in a loop and pair it with country/ASN targeting for your proxies — you’ll end up with a set of browser instances that each have independent fingerprints and different exit IPs, with most of the repetitive manual setup eliminated.

A Few Details

  • Billing is usage-based (per GB), no monthly fee, and purchased traffic doesn’t expire — a good fit for workloads with spiky usage (e.g. running jobs intensively on just a few days)
  • Clients are available for Windows / macOS / Linux; the fingerprint browser itself is free to use, and only proxy traffic is billed separately
  • New accounts get a 0.5GB free allowance, enough to test the full flow before deciding whether to buy more

Wrap-Up

If your use case needs multiple browser environments that are mutually isolated with different exit IPs — for scraping, multi-account management, ad verification, cross-border e-commerce operations, and similar workflows — it may be worth checking whether an off-the-shelf tool can save you the effort of hand-rolling your own proxy pool plus anti-fingerprinting setup.

Website: https://bifrostnetwork.cc