Germany is the market where a generic European proxy setup quietly returns the wrong answer. Prices are set locally, the big marketplaces are German-first, the search results are German-language, and the consent layer changes what the page shows before you ever reach the content. A Netherlands exit with an English locale will load the site — and give you a page a German customer never sees.
Where German exits actually change the result
| Task | Why Germany specifically | Exit requirement |
|---|---|---|
| Amazon.de price and seller checks | Second-largest Amazon marketplace; German price, VAT and delivery promise differ from the EU export view | Residential, German city, sticky |
| Idealo / Geizhals comparison | The two engines German buyers actually use; both are ASN-aware and geo-sensitive | Residential, rotating |
| Otto, MediaMarkt, mobile.de | Local leaders with local inventory and regional pricing | Residential, city-level |
| German SERP and ads | Rankings are language- and location-dependent; .de results do not reproduce from Amsterdam | Residential, city, German locale |
| Ad verification in DE | Campaigns are planned by metro; consent layer changes creative | Residential, sticky 20 min, three consent states |
| Brand and MAP enforcement | Resellers price differently by region and channel | Residential, rotating, evidence screenshots |
The common thread: the value is not the country, it is the local view. A German residential exit gives you the German price, the German VAT line, the German delivery promise and the German SERP — four things that a country-agnostic crawl either misses or silently fabricates from a different market.
What is in the pool today
| Item | Reading on 3 Nov 2026 | Notes |
|---|---|---|
| German residential addresses live | 1,235 | Measured in the pool; moves with supply |
| Total residential pool | 177M+ | Across 200+ countries and regions |
| City targeting | Berlin, Munich, Hamburg, Cologne, Frankfurt and more | Pin a city when it matters |
| Billing | $1/GB, by traffic | No per-IP charge for residential |
| Static ISP in Germany | Console only | Per-country allocation; not published here on purpose |
| Protocols | HTTP / HTTPS / SOCKS5 | Session and city in the username |
One honest note on static addresses: static ISP stock is allocated per country and moves as customers order. We do not publish a German static figure here because it would be stale within a week — the console is the only reliable source. What is stable is the residential pool and its city coverage.
Cities, and the latency that follows
| From | Typical RTT to a German exit | Practical note |
|---|---|---|
| Frankfurt / Amsterdam host | 5–15 ms | Local hop through DE-CIX; near-native |
| London host | 15–25 ms | Fine for anything but high-frequency checks |
| US east coast host | 75–90 ms | Raise timeouts to 25 s; keep concurrency moderate |
| Singapore host | 160–190 ms | Serialise per domain; do not chase concurrency |
| Last mile (the household itself) | Varies | Residential is somebody's line; expect outliers |
Frankfurt matters twice: it is a financial centre with its own localised offers, and it is where DE-CIX sits, so a German exit from a European host is effectively a local hop. If your workers run in Singapore or Virginia, budget for the round-trip when you size timeouts — 20 seconds is generous, 3 seconds is not.
Calling it from code
# Country + city + sticky session in the username curl -x "http://user-country-de-city-berlin-session-g7k2:pass@gate.iplight.net:8000" \ -s https://ipinfo.io/json | jq '{ip,city,region,country,org}' # Expected: country DE, city Berlin, org = a consumer ISP (not a hosting provider) # Drop -city- for a rotating German exit; keep it when a workflow needs one consistent place # Python: read the German price and the VAT line, not a converted one import requests, re p = {"http": "http://user-country-de-session-g7k2:pass@gate.iplight.net:8000", "https": "http://user-country-de-session-g7k2:pass@gate.iplight.net:8000"} h = {"Accept-Language": "de-DE,de;q=0.9", "User-Agent": UA} r = requests.get(PRODUCT_URL, proxies=p, headers=h, timeout=25) # price, currency and VAT wording all come from the German page — do not convert anything print(re.findall(r'([0-9]+,[0-9]{2})\s*€', r.text)[:3])
Send Accept-Language: de-DE. Without it a German exit can still be served the international
storefront, and the price you record will be the export price — the single most common German data error we see.
Which city to pin, and which to skip
- Start with three. Berlin for population, Munich for purchasing power, Hamburg for the north. Adding a fourth city before the first three produce stable data usually just multiplies the noise.
- Follow the buy, not the map. If the media plan is metro-level, pin the metros in the plan. Verifying a city you did not buy tells you nothing and costs the same as verifying one you did.
- Separate city from postcode. Delivery estimates and availability change by postcode inside one city. If the decision depends on availability, record the postcode alongside the timestamp — a city label alone cannot reproduce the result.
- Do not let a national exit impersonate a city. A rotating German pool returns Berlin, Frankfurt and Munich at random; calling that "Munich data" is how a pricing team ends up arguing about a number nobody can reproduce.
- Re-check the mapping monthly. Session-to-city mapping can drift when supply changes. A job that silently moved from Berlin to Frankfurt will still return 200s and quietly wrong prices.
Consent, VAT and other local realities
- Consent changes the page. German sites run TCF-based banners; rejecting everything can remove personalised blocks and sometimes the price widget itself. Verify all three states if the number matters.
- Prices include VAT. German retail prices are shown gross at 19%. Comparing a German gross price against a US net price without adjustment is a category error, not a finding.
- Impressum and Widerruf are legal requirements, so every legitimate shop has them. Their absence is a signal about the shop, and it is also a useful data-quality check.
- Delivery estimates are regional. The same SKU ships differently to Munich and to a rural postcode; if you record availability, record the postcode you asked from.
What a German monitoring job costs
| Item | Assumption | Value |
|---|---|---|
| SKUs per pass | Amazon.de + 2 comparison engines | 20,000 |
| Traffic per page | HTML only, JSON read where available | ≈ 380 KB |
| Daily traffic | 20,000 × 380 KB | ≈ 7.6 GB |
| Daily cost at $1/GB | Traffic × unit price | ≈ $7.60 |
| Monthly | 30 passes | ≈ $228 |
At $1/GB, a 20,000-SKU daily pass over Amazon.de and two comparison engines lands around $8–9 a day, or roughly $260 a month. The dominant lever is not the unit price — it is skipping the render: read the embedded JSON where the site provides it and you cut traffic by more than half.
Frequently asked questions
How many German IPs are actually available right now?
1,235 German addresses were live in the residential pool when we measured on 3 November 2026, inside a total pool of 177M+ addresses across 200+ countries and regions. The number moves with supplier inventory and time of day, so treat it as a reading rather than a quota. Static ISP stock is a different question and varies by country — the console shows exactly what is orderable for Germany today.
Can I target a German city rather than the whole country?
Yes, at city level for the main metros. City targeting matters in Germany more than in most markets because retail and travel pricing differs between regions, and because a Munich exit and a Berlin exit can return different local inventory. If a workflow genuinely needs a specific city, pin it — do not let a national pool decide for you.
What latency should I expect?
From a Frankfurt or Amsterdam host to a German residential exit, typical round-trip is single-digit to low double-digit milliseconds. From Singapore expect roughly 160–190 ms, from the US east coast 75–90 ms. Those are network baselines, not promises: the last mile is somebody's home connection and it varies by household.
Do I need residential IPs to scrape Amazon.de?
For product and price pages at any volume, yes or expect a low success rate. Amazon runs ASN and behaviour scoring across all its marketplaces; a datacenter exit is blocked or served a stripped page quickly. Reading products through a residential exit in Germany also gives you the German price, VAT treatment and delivery estimate that a German customer sees, which is usually the point.
Is German data subject to extra rules?
Yes — GDPR applies in full, and German retail sites add their own consent layer under TCF. Collecting public product and price data is ordinary competitive research; collecting personal data, bypassing consent walls to reach personal profiles, or ignoring robots directives is not. Keep to public pages, respect rate limits, and store no personal data you do not need.
Measure one German city first
Residential from $1/GB billed by traffic, city targeting, sticky sessions. Check the German price and the German SERP before you commit a crawl budget.
Create account