Amazon proxies for production scraping.
Residential US/EU IPs that don't get challenge-paged. Sticky 30-min sessions for paginated listings, city targeting for accurate local pricing, <1s response on amazon.com. 98.2% success across product, search, and review endpoints.
Amazon's anti-bot stack is one of the most aggressive in e-commerce.
If you've scraped Amazon, you've seen the "Sorry, we just need to make sure you're not a robot" page. Here's what's actually happening - and why residential IPs sidestep most of it.
Captcha challenges
"Are you a robot?" pages triggered on suspicious IPs. Cloudflare-style fingerprinting on the network layer.
Geo-priced content
Same product, different prices per market. amazon.com from a German IP returns translated EU pricing, not US. Country targeting matters.
Aggressive rate limits
Same IP making 10+ req/min on the same ASIN triggers ban-bait. Even residential IPs need rotation/cooldown for scaled scraping.
Session-required pages
Cart, address-checkout, and some review pages require session continuity. Rotating IPs break the flow - sticky sessions fix it.
What teams scrape from Amazon.
Three patterns we see most. Each has a slightly different recipe - same proxy type, different session settings.
ASIN price tracking
Daily check of price + availability across an SKU catalog. Rotating IPs, country-specific, no session needed. Most customers run 50K-500K ASINs/day.
Search rank monitoring
SERP scraping for keyword-to-ASIN tracking, BSR rank monitoring, sponsored-product visibility. Per-city for geo-priced keywords.
Review & rating extraction
Pagination through customer reviews requires sticky sessions (Amazon tracks state). Useful for sentiment analysis and review-fraud detection.
Amazon-tuned Python script.
Production-ready pattern for ASIN price tracking: rotating residential, US country target, sticky session reserved for reviews. Headers and retry logic tuned to Amazon's quirks.
- Country: US, switch to
-country-defor amazon.de - Sessions: rotating for product pages, sticky 30-min for reviews
- Headers: a real browser
User-Agent- Amazon checks it - Retries: backoff on
503 / 429(captcha / rate-limit)
import requests, time, random PROXY = "http://login:country-us@ip.simplynode.io:9003" PROXIES = {"http": PROXY, "https": PROXY} HEADERS = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_2) " "AppleWebKit/605.1.15 (KHTML, like Gecko) " "Version/17.2 Safari/605.1.15", "Accept-Language": "en-US,en;q=0.9", } def fetch_asin(asin, retries=3): url = f"https://www.amazon.com/dp/{asin}" for attempt in range(retries): r = requests.get(url, proxies=PROXIES, headers=HEADERS, timeout=10) # 503 = captcha challenge, 429 = rate limit - back off & retry on a new IP if r.status_code in (503, 429): time.sleep((2 ** attempt) + random.random()) continue if r.status_code == 200: return r.text return None # Sticky for paginated reviews - same IP across the entire review walk def fetch_reviews(asin, pages=10): sticky = f"http://login:country-us-session-{asin}-ttl-1800@ip.simplynode.io:9003" p = {"http": sticky, "https": sticky} for page in range(1, pages + 1): url = f"https://www.amazon.com/product-reviews/{asin}?pageNumber={page}" yield requests.get(url, proxies=p, headers=HEADERS, timeout=10).text
Four mistakes that get you banned on Amazon.
We see these constantly in customer pipelines. Each fix is a one-line change.
Using datacenter proxies on amazon.com
Amazon flags AWS, Hetzner, and DigitalOcean ASNs on sight. You'll hit the captcha page within 5 requests. Doesn't matter how many IPs you rotate.
Residential only. We don't sell datacenter for this reason.
Wrong country = wrong prices
Hitting amazon.com from a European IP returns the EU version (often redirected, prices in €). Your scraper records junk data and doesn't know it.
Always pin country: -country-us for amazon.com, -country-de for amazon.de.
Rotating mid-review-pagination
Pages 1-10 of reviews share session state. IP switch mid-walk and Amazon returns blank pages with no error code. Looks like the data dried up.
Sticky session per ASIN review walk. Different ASINs = different sessions, fine.
No User-Agent or wrong UA string
Default Python requests UA (python-requests/2.31) gets blocked instantly. So does curl/8.0. Amazon parses UA and rejects obvious bots.
Use a real browser UA (Chrome, Safari, Firefox). Rotate UA across rotating IPs.
Same residential pricing - no Amazon surcharge.
Some providers charge extra for "premium" targets. We don't. Same $/GB whether you're hitting Amazon or a static blog.
From $4/GB starter to $2.25/GB at scale.
An ASIN page is ~150 KB. 1 GB = ~6,700 product pages at the starter tier. At 100 GB/month (typical price-tracking volume), effective rate drops to $3/GB - ~330K product page loads per month.
Scraping Amazon - common questions.
Amazon's robots.txt blocks most automated access, and their Terms of Service prohibit scraping. Public product data has been ruled scrapable in US case law (hiQ v. LinkedIn, Meta v. Bright Data), but the legal landscape is jurisdiction-specific. SimplyNode provides the proxy layer; what you scrape is your responsibility. Most teams scraping Amazon for price intelligence operate under a legal opinion that public-data scraping is permissible.
SP-API only covers SKUs in your own seller account. It doesn't give you competitor pricing, search rankings, or arbitrary ASIN lookup. Scraping is the only way to monitor what you don't own - and it's how every commercial Amazon price-tracker (Keepa, Jungle Scout, Helium 10) gets their data.
All 21 - .com, .co.uk, .de, .fr, .it, .es, .nl, .se, .pl, .ca, .com.mx, .com.br, .co.jp, .in, .com.au, .sg, .ae, .sa, .com.tr, .eg, .cn. Just change -country-{iso} in your credentials. Residential pool covers each market with local IPs.
For US local pricing (which varies by ZIP), combine country + city targeting: -country-us-city-newyork. Amazon serves slightly different prices and Prime delivery options based on inferred user location.
Yes - buy-box availability and "In Stock" status is public on the ASIN page. Actual FBA inventory counts are not exposed publicly; you'd infer from "Only X left" warnings shown on low-stock products. Scrape the ASIN page; parse the relevant DOM nodes.
It happens - they push detection updates every few months. SimplyNode's success-rate dashboard tracks it; you'll see your rate dip from 98% to ~92% during the rollout, then recover within 1-3 days as we adjust routing. We notify customers on Slack/email if a drop persists.
Run your Amazon scraper on residential. Stop fighting captchas.
$4 buys 1 GB · ~6,700 ASIN pages. Test, scale up if it works, refund within 14 days if it doesn't.