CamoFox
Anti-detection browser proxy for web scraping. Firefox-based (Camoufox fork) running on Fly.io.
Tech Stack
- Runtime: Node.js, Express, Playwright
- Browser: Camoufox v135.0.1-beta.24 (Firefox fork)
- Hosting: Fly.io (camofox app, iad region, 2GB RAM, auto-stop)
- Proxy: Thordata residential, US, 10GB balance (expires 31/03/2026)
URLs & Source
- Production: camofox.fly.dev
- Source: C:\Users\me\clawd\camofox-browser\server.js
API Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /health | Health check (503 if browser disconnected) |
| POST | /scrape | Scrape URL, returns HTML (asset blocking enabled) |
| POST | /render | JS-rendered page extraction (waitMs, waitFor, extractMode: text/markdown/html) |
| POST | /proxy-fetch | HTTP-level residential proxy requests (Thordata, rotating IPs) |
| POST | /cookies | Import cookies |
Architecture
- Browser runs WITHOUT proxy (clean, fast)
- /proxy-fetch handles residential proxy at HTTP level via https-proxy-agent
- Asset blocking (images, fonts, CSS) on /scrape and /render to save bandwidth
- HTTP-level proxy design chosen because rotating residential proxy kills browser connections
Deployment
Deploy via flyctl:
C:\Users\me\.fly\bin\flyctl.exe deploy
Known Issues
- Facebook blocks datacenter IPs (use PinchTab with residential proxy instead)
- X/Twitter needs logged-in cookies for scraping