Agents on all three
Create an HttpsProxyAgent (or undici ProxyAgent) from any provider's URL and pass it to your client, with proxy: false in Axios. Create one agent per sticky session. See Node.js and Axios proxies and Rayobyte with Node.js.
Differences
| Rayobyte | Geonode | Webshare | |
|---|---|---|---|
| Easy sites | Rotating datacenter | Rotating datacenter | Lists |
| Protected sites | Residential | Residential, cheapest at modest volume | Residential plans |
| Drop-in unblocking | Web Unblocker | None | None |
| SOCKS5 | Yes, plus UDP | Yes | Yes |
Picking
Webshare for cheap lists, Geonode for modest residential, Rayobyte for unblocking and residential at scale.
A small multi-provider fetcher
import { HttpsProxyAgent } from "https-proxy-agent";
import axios from "axios";
const AGENTS = {
ws: new HttpsProxyAgent(process.env.WEBSHARE_PROXY),
gn: new HttpsProxyAgent(process.env.GEONODE_PROXY),
ry: new HttpsProxyAgent(process.env.RAYOBYTE_PROXY),
};
const ROUTES = { "hard.example": "gn", "local.example": "ry" };
export function get(url) {
const host = new URL(url).hostname;
return axios.get(url, { httpsAgent: AGENTS[ROUTES[host] ?? "ws"], proxy: false, timeout: 30000 });
}Reusing an agent reuses connections and often the same exit IP; create a new agent per sticky session when you need a fresh IP. See Rayobyte with Node.js, Geonode with Node.js and Webshare with Node.js.
Residential tip: You can test all three for little or nothing: Rayobyte has a no-card free trial, Webshare a free plan and Geonode a low-cost residential trial. Run the same script through each. See using Rayobyte with Node.js.
Concurrency and retries
Use p-limit or a queue to cap requests in flight, add a retry helper that treats 403, 429 and challenge pages as failures, and stop after two or three attempts. On failure, move to the next provider in your routing chain rather than hammering the same one.
Strengths and watch-outs
| Provider | Best for | Watch out for |
|---|---|---|
| Rayobyte | Rotating pools, unblocker | Per-GB billing on pools |
| Geonode | Cheap residential, long sessions | Pricier datacenter |
| Webshare | Cheap lists via backbone | Reused IPs on small lists |
Bottom line
Keep one agent per provider and route by domain, with a fallback chain for failures.
Proxy tip: If your residential usage comes in bursts, Geonode is worth a look: purchased GB doesn't expire and sticky sessions can last up to 24 hours. More in using Geonode with Node.js.
Choosing your default route
Pick as your default the cheapest provider that works for most of your targets, usually a Webshare list or Rayobyte rotating datacenter. Send everything else to the next route only when a target fails, and review the table monthly.
For the bigger picture beyond our three partners, read our best proxies buyer's guide, and see cheap proxies for ways to cut cost per successful request. To understand the IP type behind this, read our residential proxies guide.
For head-to-head versions of this comparison, see Rayobyte vs Geonode for Node.js, Rayobyte vs Webshare for Node.js, Webshare vs Geonode for Node.js.
Budget tip: For jobs where a fixed IP list is enough, Webshare is one of the cheapest options: shared datacenter proxies are sold by the IP, and static residential (ISP) proxies cost well under a dollar per IP per month at the time of writing. More in using Webshare with Node.js.
Key takeaways
- Proxy agents work identically everywhere.
- One agent per session.
- Route domains by difficulty across providers.
FAQ
Why does Axios ignore my agent?
Set proxy: false.
Do all three work with native fetch?
Yes, via undici's ProxyAgent.
Which is best for Node.js scraping?
A mix routed by domain.
Does native fetch work with these proxies?
Yes, through undici's ProxyAgent passed as the dispatcher option.
Which agent package should I use for SOCKS5?
socks-proxy-agent, with a socks5h:// URL so DNS resolves through the proxy.
How do I cap concurrency in Node.js?
Use p-limit or a queue library and size it to your plan.
Can I reuse agents across requests?
Yes; reusing an agent reuses connections and often the same IP.
Editorial note: Proxy providers change their pools, features and prices often, so treat any figures here as typical ranges at the time of writing and confirm current terms with the provider before you buy.