Every plan is 38 to 40% below ScrapingBee for the same credits, and price locked for life. See the comparison

Network

Where your requests run, and where they come from.

Requests are fetched on dedicated fetch nodes and leave through our proxy pools, so a target never sees the address of the server that answers the API. This page is generated from our network configuration, so it changes as locations are added.

  • Fetch nodes
  • Proxy exit countries
  • Exit to its nearest node
Drag to turn the globe. Pins mark countries, not server addresses.

Fetch nodes

Headless Chrome and the HTTP client run on fetch nodes that do nothing else. The API server queues each request over a private, encrypted network, the next free node picks it up, and the result comes back the same way. If no node can take a request in time, it fails unbilled and you retry; it is never run from the API server's own address instead. The hardened stealth browser runs on our own servers for now, and only ever through a proxy pool.

The node that served a request is named in the Wf-Node response header.

Node regions

  • France
  • United States

A node's region is where the browser runs. The address a target sees is the proxy exit below, not the node.

Proxy pools and exit countries

Each request leaves through one pool, picked by its parameters. Pools differ in what a target sees: a datacenter address, a static address assigned by a consumer ISP, a home connection or a mobile carrier. Stronger pools get through more defenses and cost more credits per request.

Datacenter

1 raw, 5 rendered credits

Default route for every request

  • United States

Static ISP

10 raw, 25 rendered credits

premium_proxy=true

  • Australia
  • Brazil
  • Canada
  • Germany
  • Italy
  • South Korea
  • Spain
  • United Kingdom
  • United States

Targeting a country

Add country_code with premium_proxy=true or stealth_proxy=true to exit from a specific country. Prices, stock, languages and search results change by country, so a request is never quietly served from somewhere else: a country no pool can exit from is refused with 400 country_unavailable, unbilled.

Without country_code, a request exits from the United States whenever the pool can.

curl -G "https://api.webfetch.io/v1/" \
  --data-urlencode "api_key=$KEY" \
  --data-urlencode "url=https://example.com" \
  -d premium_proxy=true \
  -d country_code=de

When a pool is unavailable

A request still completes on the next best pool rather than failing: premium goes ISP, then residential, then datacenter; stealth goes mobile, then residential, then ISP, then datacenter. It is billed for the pool it actually used, and the response says so with Wf-Proxy-Pool and Wf-Proxy-Downgraded: true. Country targeting is the exception: it is never downgraded to an exit outside the country you asked for.

mode=auto climbs the same pools for you when a target refuses a request, and bills only the route that worked. See the parameters.

Sites the network will not fetch

Restricted sites

Our proxy network refuses connections to some categories of sites, such as banks, payment processors and some government services. A request for one fails at once with 403 target_restricted and is never billed. This applies to every plan and every pool.

robots.txt

robots.txt is honored by default on every request (403 robots_disallowed). An account can turn on the robots.txt opt-out in the key portal, which records its acceptance of the acceptable use policy, and then send respect_robots=false. Every opt-out is logged.

Try a route on a real page

The playground on the home page runs real requests. Sign in and it can use every pool and country on this page, on your own key.