Amazon International Scraper - 18 marketplaces, ISO currency
Pricing
from $1.50 / 1,000 results
Amazon International Scraper - 18 marketplaces, ISO currency
Amazon search and product scraper for 18 marketplaces: US, UK, Germany, France, Italy, Spain, Poland, Japan, India, Canada, Mexico, Brazil, Australia and more. Proxy country follows the marketplace, so prices return in that market's currency with its ISO code. For cross-border price comparison.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Roman Sorokin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Amazon International Scraper — 18 marketplaces, correct currency on every price
Scrapes Amazon search results and product pages across 18 marketplaces. The proxy country is set from the marketplace you choose, so prices come back in that market's currency — and every price carries its ISO code.
Verified on all 18 marketplaces: 20 records each, prices filled on 95–100% of listings, zero currency mismatches.
The problem this fixes
Amazon decides which country you are in from the IP address of the request, then returns prices in that country's currency without saying so anywhere in the markup. A scraper that ignores this hands you a bare number.
390037 — is that Vietnamese dong for a mouse, or dollars for a machine?
That is a real value this scraper returned during development, from a request
that landed in Vietnam while asking for amazon.com. Here is what you get
instead:
{"asin": "B004YAVF8I","title": "Logitech M185 Compact Ambidextrous 2.4 GHz Wireless Mouse - Swift Grey","price": 12.99,"currency": "USD","marketplace": "amazon.com","rating": 4.5,"url": "https://www.amazon.com/dp/B004YAVF8I","image": "https://m.media-amazon.com/images/I/51WN5aXZWIL._AC_SX148_SY213_QL70_.jpg","isPrime": false,"isSponsored": false}
If the currency on the page does not match what the marketplace should return,
the record carries a currencyWarning field instead of being shipped quietly.
Three rules it follows
Empty beats wrong. When a listing shows no price — and roughly 5–20% of
search results do not, depending on the market — price is null. It is never
a number borrowed from a neighbouring element on the page. Review counts are
null on search results too, because Amazon loads them client-side and they are
genuinely not in the HTML. Zero would be a lie; null is the truth.
A block is a block. Amazon serves its anti-bot interstitial under HTTP 200 in about 2 KB, and under HTTP 202 on some marketplaces. Both are detected by content markers and response size, retried against a fresh proxy session, and escalated to Apify's Unblocker if the market keeps refusing. A run that cannot fetch says so in the output rather than reporting success with nothing in it.
Numbers are parsed per locale. 1,234.56 in the US and 1.234,56 in Germany
are the same amount; 8,63 in Poland is eight units, not eight hundred. Stripping
commas — the common shortcut — is wrong by a factor of 100 and wrong silently.
Marketplaces
| Country | Marketplace | Currency | Country | Marketplace | Currency |
|---|---|---|---|---|---|
| United States | amazon.com | USD | Australia | amazon.com.au | AUD |
| United Kingdom | amazon.co.uk | GBP | Japan | amazon.co.jp | JPY |
| Germany | amazon.de | EUR | India | amazon.in | INR |
| France | amazon.fr | EUR | Canada | amazon.ca | CAD |
| Italy | amazon.it | EUR | Mexico | amazon.com.mx | MXN |
| Spain | amazon.es | EUR | Brazil | amazon.com.br | BRL |
| Netherlands | amazon.nl | EUR | United Arab Emirates | amazon.ae | AED |
| Sweden | amazon.se | SEK | Saudi Arabia | amazon.sa | SAR |
| Poland | amazon.pl | PLN | Singapore | amazon.sg | SGD |
Requests are routed through a proxy in the country you pick, so the search results, availability and prices are the ones that country actually sees. Useful for cross-border price comparison, multi-country market research, and tracking one product across several Amazon marketplaces at once — the nine Europe marketplaces share the euro or a local currency, and the code tells you which one you got rather than leaving you to guess.
Input
{"marketplace": "amazon.de","searchQueries": ["kabellose maus", "mechanische tastatur"],"maxItems": 100}
| Field | Type | Notes |
|---|---|---|
marketplace | string | One of the 18 above. Sets the proxy country and the expected currency. |
searchQueries | array | Search terms. One search page returns 14–21 products. |
asins | array | Product IDs. Product pages carry the review count, which search pages do not. |
maxItems | integer | Hard cap on records returned. You are charged per record, so this is also your spending cap. |
proxyConfiguration | object | Residential by default. Datacenter addresses get the interstitial within a few requests. |
Output fields
| Field | Type | Notes |
|---|---|---|
asin | string | Amazon product ID |
title | string | Full title, assembled across nested markup |
price | number | null | null when the listing shows no price |
currency | string | ISO code |
currencyInferred | bool | Present when the page showed no symbol and the market's currency was used |
currencyWarning | string | Present when the currency does not match the marketplace |
rating | number | null | Stars out of 5 |
reviewsCount | number | null | null on search results, filled on product pages |
url | string | Built from the ASIN, so always present |
canonicalUrl | string | The slug URL when the markup carries one |
image | string | Product photo, resolved past the lazy-loading placeholder |
isPrime, isSponsored | bool | |
marketplace, position, query | Where the record came from |
Pricing
Charged per record returned. Failed fetches are not charged.
Notes
Review counts on search pages are not available from Amazon's mobile markup at
all — they are rendered client-side. Pass asins to get them from product pages.
Data comes from public Amazon pages. You are responsible for how you use it.