Amazon Search, Category & Best Sellers Scraper
Pricing
$1.90 / 1,000 result items
Amazon Search, Category & Best Sellers Scraper
Scrape Amazon keyword search, category browse, and Best Sellers across 21 storefronts. Export ASINs, titles, prices, ratings, images, and product URLs.
Pricing
$1.90 / 1,000 result items
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
5
Total users
4
Monthly active users
a day ago
Last modified
Categories
Share
Scrape live Amazon listings from 21 Amazon storefronts using four collection modes:
- Keyword search – classic
/s?k=search results - Category browse – department browse or in-category search
- Best Sellers –
/gp/bestsellersranking pages - Detail / seller profile – fetch
/dp/{ASIN}product pages and/or/sp?seller=seller profiles for seller business-name and business-address leads
Collect ASINs, titles, prices, ratings, review counts, sponsored flags, images, product URLs, search URLs, plus seller-lead fields (business name, business address, contact availability) — see Seller leads.
Scraping runs on a hosted Cloud Run worker (amazon-com, httpx + selectolax). This Actor is a thin Apify client: it calls the worker over HTTPS with an API key, then writes Dataset / KV / PPE charges.
Worker URL is config, not code: the Actor reads
WORKER_BASE_URLfrom Actor environment variables (plus optional per-runworkerBaseUrl). If you migrate the worker to a new host, updateWORKER_BASE_URL(andWORKER_AUTHif the API key changes) in Apify Console — no Actor code change required.WORKER_PROVIDES_PROXY=1means the worker supplies its ownPROXY_URL.
Need a dedicated scraper for one website?
This Actor is the general tool for protected public pages. If you already have one specific site and a field list, a dedicated scraper is faster and more stable: listing + detail, your export format, delivered to your Apify account or as a standalone runnable client.
I confirm the tier before you pay. The clock starts after that confirmation.
Start here: Submit a custom scraper request
| Starter $50 | Dedicated $100 | Hard target $200–999 | |
|---|---|---|---|
| Site | 1 simple anti-bot public site | 1 medium anti-bot public site | Cloudflare / aggressive anti-bot / custom parser |
| Scope | Full listing + detail fields | Listing + detail + pagination, your field list | Agreed fields, repeatable runs |
| Delivery | CSV/JSON · Apify Actor or standalone runnable client (script/CLI) | Same, plus a sample run and short instructions | Feasibility first, then build |
| Time | 24 hours after we confirm the URL is in scope | 48 hours after confirmation | Quoted after feasibility |
| Fixes | 30 days for small public-layout changes | 30 days | Scoped in the quote |
Hard-target sites are not a 100% uptime promise. You get a dedicated parser that can be re-run on the agreed fields. If the URL is not feasible, you get a refund or pay an assessment fee only — you will know before the build starts.
Not in Starter/Dedicated: login-walled data, native APK / Windows installer / full web apps, or two-year maintenance. Those are a separate quote.
Supported markets
| Code | Storefront | Currency |
|---|---|---|
| AE | amazon.ae | AED |
| AU | amazon.com.au | AUD |
| BE | amazon.com.be | EUR |
| BR | amazon.com.br | BRL |
| CA | amazon.ca | CAD |
| DE | amazon.de | EUR |
| EG | amazon.eg | EGP |
| ES | amazon.es | EUR |
| FR | amazon.fr | EUR |
| GB | amazon.co.uk | GBP |
| IN | amazon.in | INR |
| IT | amazon.it | EUR |
| JP | amazon.co.jp | JPY |
| MX | amazon.com.mx | MXN |
| NL | amazon.nl | EUR |
| PL | amazon.pl | PLN |
| SA | amazon.sa | SAR |
| SE | amazon.se | SEK |
| SG | amazon.sg | SGD |
| TR | amazon.com.tr | TRY |
| US | amazon.com | USD |
Collection modes
1. Keyword search
{"mode": "keyword","keywords": ["usb hub"],"market": "US","pages": 1,"maxItems": 20,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
2. Category browse / in-category search
{"mode": "category","category": "electronics","market": "DE","pages": 1,"maxItems": 20,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "DE"}}
When keywords are omitted in category mode, the Actor uses the department title as an in-category browse query so Amazon returns searchable product cards.
Search inside a category by also passing keywords:
{"mode": "category","category": "electronics","keywords": ["usb hub"],"market": "US","pages": 1,"maxItems": 20}
Pass any subcategory with categoryNodeId (browse node) to go beyond the built-in root departments.
3. Best Sellers
{"mode": "bestsellers","category": "electronics","market": "JP","pages": 1,"maxItems": 20,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "JP"}}
Use categorySlug for a custom Best Sellers path, or categoryNodeId for a nested ranking node.
4. Detail / seller profile (seller leads)
{"mode": "detail","detailUrls": ["https://www.amazon.de/dp/B0EXAMPLE12","https://www.amazon.de/sp?seller=A3HXX9OR4LU3Y3"],"market": "DE","maxItems": 20}
mode=detail fetches each detailUrls entry (product pages and/or seller profiles) and runs the full seller-lead extraction (business name, business address, contact availability). If you pass detailUrls without setting mode, the Actor infers mode=detail automatically. In list modes, seller enrichment is controlled by scrapeDetails / enrichDetails (both on by default) and capped at the top enrichMaxItems (default 1) rows per run.
Seller leads (phones, emails, business address, org)
Every dataset item carries the full lead-key set: phones, emails, address, geo, person, org, web, leadSource, leadReveal, leadAbsences. Amazon is mostly a first-party (1P) marketplace with almost no public contact surface, so many lead fields are legitimately empty — every absence is explicit and machine-readable via leadAbsences, never silently missing.
Lead fields
| Field | Type | Meaning on Amazon |
|---|---|---|
phones | array | Seller phone numbers. Always [] — the only seller contact channel is the login-gated /hz/contact-us page; no storefront has a "show phone" control (see Honest limitations). |
emails | array | Seller emails. Same login gate → always []. |
address | object | Seller business address from the seller profile /sp → Detailed Seller Information → Business Address: street, unit (door/suite, 门牌), locality, region, postalCode, country, and full (raw line sequence, kept verbatim). null for entities that publish no address block. |
geo | object | {lat, lng} coordinates. Always null — Amazon surfaces no coordinates for sellers. |
person | object | Contact person. Always null — seller profiles name the business only, never a person. |
org | object | Seller organization: name (display name / "Ships from and sold by"), legalName (Business Name, on profiles that publish it), id (Amazon sellerId). |
web | object | Seller website / social links. Always null — no outbound links on seller profiles. |
leadSource | enum | search (search/category/bestsellers list row) · detail (PDP row enriched with merchant info) · entity (direct seller-profile /sp row) |
leadReveal | enum | visible (business name/address are server-rendered on /sp, no click needed) · absent (list cards with no lead block) |
leadAbsences | object | Per-key absence reason: 本站无 (site/surface has none) · 闸门锁 (behind Amazon login) · 未验证 (verified possible but not confirmed in this run/market). Example: {"phones":"闸门锁","emails":"闸门锁","person":"本站无","social":"本站无"} |
Example detail-mode item (seller leads)
{"mode": "detail","market": "DE","asin": "B0EXAMPLE12","title": "…","price": "12,99 €","currencyCode": "EUR","sellerId": "A3HXX9OR4LU3Y3","phones": [],"emails": [],"address": {"street": "COMM CTR,2-16 FAYUEN","unit": "RM502c,5/F,HO KING","locality": null,"region": null,"postalCode": "999077","country": "HK","full": "COMM CTR,2-16 FAYUEN RM502c,5/F,HO KING HONGKONG ST, MONGKOK,KOWLOON 999077 HK"},"geo": null,"person": null,"org": { "name": "ORNARTO DE", "id": "A3HXX9OR4LU3Y3" },"web": null,"leadSource": "detail","leadReveal": "visible","leadAbsences": { "phones": "闸门锁", "emails": "闸门锁", "person": "本站无", "social": "本站无" }}
Reveal cost
Business name and business address are server-rendered plain HTML on the seller profile (/sp?seller={sellerId}) — there is no click-to-reveal control, XHR call, or image-encoded contact anywhere on Amazon storefronts. The only cost is one extra HTTP fetch per seller:
- List modes: with
enrichDetails=true(default) each of the topenrichMaxItems(default 1) rows is followed PDP → merchant link →/sp, adding ~2 requests per enriched row to run time. mode=detail: eachdetailUrlsentry is fetched directly (1 request per URL, product pages followed by one/spfetch each).
The login-gated contact page (/hz/contact-us) is the only phone/email channel and is never fetched, so runs stay unauthenticated. Heavy per-run enrichment (large enrichMaxItems or long detailUrls) increases run time proportionally and, like all Amazon scraping, is subject to intermittent bot-wall responses.
Honest limitations
- Phones / emails — login-gated site-wide. The only seller contact channel is
/hz/contact-us, which requires an Amazon login. No storefront offers a "show phone/email" control, sophones/emailsare always[]and markedleadAbsences.phones/emails = 闸门锁. The Actor does not log in and will not bypass this gate. - US amazon.com third-party seller addresses — 未验证 (not verified).
amazon.com /spis intermittently bot-walled from the worker's US egress (fast 200 shell without the lead block, or 562), and the control-plane Zyte extract failover route is not yet deployed, so US 3P street addresses could not be verified end-to-end during development. Verified chains: DE third-party sellers return door-plate-level business addresses through the PDP →/spchain (e.g. 深圳市福田区泰然苍松大厦 samples), and SG catalogs are almost entirely Amazon 1P. Markets where verification was not completed are markedleadAbsences.address = 未验证, never本站无. - 1P entities may publish no address. Many catalogs are Amazon first-party; entities without a Business Address block yield
address = nullplusleadAbsences.address = 本站无(that entity displays none). - Messy English addresses. HK-style raw address sequences may not decompose into
locality/region(those staynull); the original line sequence is always preserved verbatim inaddress.full, so no data is lost. - No person / geo / web leads. Amazon never surfaces a contact person, coordinates, or seller website/social links; these keys are
nullwithleadAbsences=本站无.
Built-in category keys
all, amazon-devices, audible, automotive, baby, beauty, books, computers, electronics, fashion, garden, grocery, handmade, health, home, industrial, kindle-store, kitchen, luggage, movies-tv, music, office-products, pet-supplies, software, sports, tools, toys-and-games, video-games
Example output item
{"keyword": "usb hub","mode": "keyword","market": "SG","marketName": "Singapore","country": "SG","page": 1,"rank": 1,"asin": "B0CD1BHXPZ","title": "USB C Hub Multiport Adapter for Laptop","price": "S$24.99","priceValue": 24.99,"currencyCode": "SGD","ratingScore": 4.5,"reviewCount": 1284,"isSponsored": false,"productUrl": "https://www.amazon.sg/dp/B0CD1BHXPZ","searchUrl": "https://www.amazon.sg/s?k=usb+hub&page=1","source": "amazonSearchHtml","capturedAt": "2026-07-11T01:00:00Z"}
Every item also carries the seller-lead keys (phones / emails / address / geo / person / org / web / leadSource / leadReveal / leadAbsences) — see Seller leads for the detail-mode example and absence semantics.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | keyword | keyword, category, bestsellers, or detail; inferred as detail when detailUrls is set |
keywords | array | ["usb hub"] | Required for keyword mode; optional for category |
market | string | SG | One of the 21 supported storefront codes |
category | string | optional | Stable department key |
categoryNodeId | string | optional | Raw Amazon browse node ID |
categorySlug | string | optional | Best Sellers path slug |
detailUrls | array | optional | Product /dp/{ASIN} or seller-profile /sp?seller={sellerId} URLs for detail mode (max 20) |
scrapeDetails | boolean | true | Fetch detail pages and follow the seller-profile chain for seller leads |
enrichDetails | boolean | true | Merge seller-profile leads (org + business address) into list rows |
enrichMaxItems | integer | 1 | How many top list rows to enrich with seller leads (0–20) |
pages | integer | 1 | Pages per task (max 5) |
maxItems | integer | 1 | Global output cap (1–100). Free plan: also 10 total runs of this Actor |
maxItemsPerKeyword | integer | 40 | Per-task output cap |
requestTimeoutSecs | integer | 30 | HTTP timeout |
proxyConfiguration | object | optional | Unused when WORKER_PROVIDES_PROXY=1 (default) |
workerBaseUrl | string | (env) | Optional per-run override of Actor env WORKER_BASE_URL |
debug / includeRawHtml | boolean | false | Debug artifacts |
fixtureHtmlPath | string | optional | Offline fixture HTML |
Free Apify plan limits (set by this Actor's developer)
| Limit | Free Apify plan | Paid Apify plan |
|---|---|---|
| Runs of this Actor | 10 runs total | Unlimited |
| Results per run | Up to 100 (schema max) | Up to 100 |
When the run cap is hit, the run finishes with a clear status message (FREE_TIER_LIMIT) — not an Apify platform error. Upgrade to a paid Apify plan for unlimited runs.
Proxy routing
By default the Cloud Run worker uses its durable PROXY_URL (WORKER_PROVIDES_PROXY=1). If you unset that flag, remote runs mint Apify residential proxy with apifyProxyCountry matching the selected market.
Standby API
Documented in .actor/openapi.json:
GET //GET /healthGET /input-exampleGET /openapi.jsonPOST /searchPOST /run
More Actors like this
Need another marketplace or a different vertical? Use a dedicated Actor below for structured fields. Use this Actor for Amazon search, category browse, and Best Sellers across supported storefronts.
Similar e-commerce scrapers
- Shopee Search Scraper
- Lazada Scraper
- SHEIN Product Scraper
- Temu Product Scraper
- MercadoLibre Scraper
- 1688 Global Product Search Scraper
- Coupang Product Scraper
- Walmart Product Scraper
- Etsy Scraper
- Target Product Scraper
- Allegro Scraper
- Mercari Japan Scraper
Prefer another specialized scraper?
If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.
Jobs & Freelance
- LinkedIn Jobs Scraper
- Indeed Jobs Scraper
- Upwork Jobs Scraper
- Glassdoor Scraper
- Fiverr Gigs Scraper
- Bayt Jobs Scraper
Real Estate
- Zillow & Zumper Scraper
- Realtor.com Scraper
- Apartments.com Rental Scraper
- Rightmove Scraper
- Idealista Scraper
- realestate.com.au Scraper
Travel & Stays
Social & Content
Ads Intelligence
Local & Maps
General tools
→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.
How to use on Apify
- Open the Actor.
- Choose
mode,market, and keywords/category. - Keep
pagesandmaxItemslow for a first test. - Enable residential proxy with a matching country.
- Run and export the dataset.
FAQ
What are the free Apify plan limits?
Free Apify plan users get 10 runs of this Actor and up to 100 results per run. These limits are set by the Actor developer (not Apify). When you hit the run cap, the run finishes with a clear status message (FREE_TIER_LIMIT) — it is not a platform bug. Upgrade to a paid Apify plan for unlimited runs.
Notes and limits
- Amazon HTML and anti-bot behavior change over time.
- Browse node IDs differ by storefront; use
categoryNodeIdfor precise subcategories. - Best Sellers cards use a separate parser from keyword/category search cards.
- Results are deduplicated by ASIN before writing the final dataset.
Summary
Use this Actor for Amazon keyword monitoring, category assortment checks, and Best Sellers ranking snapshots across all major Amazon storefronts.
Related Actors
All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.
Jobs & Freelance
- LinkedIn Jobs Scraper
- Bayt Jobs Scraper
- Fiverr Gigs Scraper
- Freelancer.com Scraper
- Glassdoor Scraper
- Himalayas Jobs Scraper
- Indeed Jobs Scraper
- Jobicy Remote Jobs Scraper
- RemoteOK Jobs Scraper
- SEEK Jobs Scraper
- Upwork Jobs Scraper
Real Estate
- Zillow & Zumper Scraper
- Realtor.com Scraper
- 99.co Scraper
- Realtor.com Agents Scraper
- Apartments.com Rental Scraper
- Bayut Scraper
- Craigslist Housing Scraper
- Daft.ie Scraper
- Dot Property Scraper
- FINN.no Scraper
- Funda Scraper
- Hepsiemlak Scraper
- Idealista Scraper
- Immobiliare.it Scraper
- ImmoScout24 Scraper
- Naver Land Scraper
- OpenSooq Scraper
- Otodom Scraper
- Property Finder Scraper
- PropertyGuru Scraper
- realestate.com.au Scraper
- Realtor.ca Scraper
- Rightmove Scraper
- SeLoger Scraper
- SUUMO Scraper
- Zillow Group Scraper
E-commerce
- Shopee Search Scraper
- E-commerce Scraper
- 1688 Global Product Search Scraper
- Allegro Scraper
- Amazon Search Scraper
- ASOS Product Scraper
- Cdiscount Product Scraper
- Costco Product Scraper
- Coupang Product Scraper
- Etsy Scraper
- Lazada Scraper
- MercadoLibre Scraper
- Mercari Japan Scraper
- Rakuten Japan Scraper
- SHEIN Product Scraper
- Target Product Scraper
- Temu Product Scraper
- Walmart Product Scraper
Travel & Stays
- Booking.com & Airbnb Scraper
- Agoda Scraper
- Airbnb Listings Scraper
- Booking.com Hotels Scraper
- Despegar Scraper
- Expedia Scraper
- Traveloka Scraper
- Travelstart Flights Scraper
- Trip.com Scraper
- TripAdvisor Scraper
Social & Content
Ads Intelligence
Local & Maps
General Tools
→ Browse the full profile: apify.com/lentic_clockss