Amazon Search Scraper avatar

Amazon Search Scraper

Pricing

from $3.50 / 1,000 result items

Go to Apify Store
Amazon Search Scraper

Amazon Search Scraper

Scrapes Amazon keyword search results across 18 marketplaces: organic rank separated from sponsored placements, structured local-currency prices, sales badges, ratings. Batch keywords, filters applied before charging, error items never charged.

Pricing

from $3.50 / 1,000 result items

Rating

0.0

(0)

Developer

Torchtechnology LTD

Torchtechnology LTD

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Share

What does this Actor do?

Amazon Search Scraper extracts keyword search results from 18 verified Amazon marketplaces — with the one thing most search scrapers get wrong: organic rank separated from sponsored placements. Every product comes with position, organic-only position, sponsored flag, structured price in the marketplace's own currency, rating, review count, sales-volume badge, and more. Batch as many keywords as you like into a single run — they share startup cost. Or paste Amazon search URLs directly: apply any filters on Amazon first (Prime, price band, condition, deals, brand) and the actor scrapes exactly that filtered result set — Amazon's own URL filters are applied server-side and passed through untouched.

Built for analysts, sellers, and AI agents: deterministic JSON, documented error semantics, and you only pay for actual product data — error items are never charged, and filters apply before charging.

Why this Actor over alternatives?

This ActorTypical competitor
Sponsored handlingisSponsored flag + separate positionOrganic ranksponsored mixed into positions
Price outputnumeric {value, currency} + raw stringstring only
Billingper result only — no start fee, no platform usage for youstart fee + per-item + usage fees
Filtersstars/reviews/price band, applied before charging — plus full Amazon sidebar filters via pasted search URLspost-processing on your side
Batchmany keywords per runone query per run
Errorspushed for transparency, never chargedcharged like data

Quick start

{
"keywords": ["anker powerbank 20000mah", "usb c cable 2m"],
"marketplace": "com",
"maxPages": 2,
"sortBy": "RELEVANCE"
}

Or a single keyword without the array: {"query": "laptop", "marketplace": "com"}.

Or paste Amazon search URLs with your own filters applied — here Prime-only (rh=p_85:1) plus a $10–$40 price band:

{
"searchUrls": [
{"url": "https://www.amazon.com/s?k=usb+c+cable+2m&rh=p_85%3A1&low-price=10&high-price=40"}
],
"maxPages": 2
}

URL mode unlocks every filter Amazon offers in its sidebar (Prime, condition, deals, brand, price band…) — set them on amazon.com, copy the URL, done. The domain in each URL selects the marketplace (any of the 18), so one run can mix marketplaces. Keywords and URLs can be combined in the same run; at least one of them is required.

Input reference

FieldTypeDefaultDescription
keywordsstring[]Search keywords — batch as many as you like
querystringSingle-keyword convenience field (used when keywords is empty)
searchUrlsarrayAmazon search URLs to scrape directly ([{"url": "…"}] or plain strings). Apply filters on Amazon first — rh, s, low-price, high-price etc. pass through untouched. The URL's domain selects the marketplace; unknown domains produce a free invalid_url error item
marketplacestringcomOne of 18: de, com, co.uk, fr, it, es, ca, com.au, co.jp, in, nl, se, pl, be, mx, br, ae, sa (keyword mode only — URL mode reads it from the URL)
maxPagesinteger1Pages per keyword/URL (1–20)
startPageinteger1First page to scrape (continue a previous run)
sortBystringRELEVANCERELEVANCE | LOWEST_PRICE | HIGHEST_PRICE | REVIEWS | NEWEST | BEST_SELLERS
languagestringmarketplace defaultAmazon locale override (e.g. en_US)
excludeSponsoredbooleanfalseSkip sponsored cards entirely
minStars / minReviewsnumber0Rating/review filters — before charging
minPrice / maxPricenumber0Price band in marketplace currency — before charging
proxyConfigurationobjectbundled geo proxiesOptional — the actor ships with bundled geo proxies per marketplace (no setup needed, we cover the cost). Enable this only to force your own or Apify proxies instead
proxiesByMarketplaceobjectBring-your-own geo-pinned proxies per marketplace; overrides the bundled pool for the listed marketplaces

Output

One dataset item per product card:

{
"source": "amazon_search",
"searchQuery": "anker powerbank 20000mah",
"searchUrl": null,
"page": 1,
"position": 4,
"positionOrganic": 3,
"positionSponsored": null,
"isSponsored": false,
"asin": "B0C2345678",
"title": "Anker Power Bank, 20,000mAh …",
"price": { "value": 39.99, "currency": "USD" },
"priceString": "$39.99",
"originalPriceString": "$49.99",
"stars": 4.6,
"reviewsCount": 12847,
"salesVolumeText": "10K+ bought in past month",
"isBestSeller": true,
"isAmazonsChoice": false,
"badgeTexts": ["Best Seller"],
"imageUrl": "https://m.media-amazon.com/images/I/…jpg",
"productUrl": "https://www.amazon.com/dp/B0C2345678",
"marketplace": "com",
"totalProductsAvailable": 106379,
"scrapedAt": "2026-08-16T12:00:00Z"
}

Reading positions: position counts every card in DOM order (including ads); positionOrganic counts only non-sponsored cards — the rank that matters for SEO and rank tracking. positionSponsored is the 1-based rank among the sponsored cards of the page (sponsored placements are interleaved with organic cards; there is no separate ad block) — null on organic cards, just as sponsored cards have positionOrganic: null. A null field means "not rendered by Amazon" — never a guess.

Keyword vs URL mode: items carry both searchQuery and searchUrl — exactly one is set. Keyword items have searchQuery (and searchUrl: null); items scraped from a pasted URL have searchUrl with the exact source URL (and searchQuery: null). Everything else in the item is identical across both modes.

Error items (never charged)

errorMeaningAction
transportNavigation failed (proxy/timeout)just retry
blockedBot detection after automatic retries across the proxy tier chain (own pool → Apify DC → Apify residential)use residential/geo-pinned proxies
not_foundAmazon returned 404check input
invalid_urlsearchUrls entry has an unknown Amazon domain (not one of the 18 marketplaces)fix the URL — only that entry is skipped, the run continues

An empty result page simply ends pagination — zero items, zero charges, no fake error.

Pricing

Pay per result event — one per product item pushed. No start fee, no platform-usage charge for you, errors free, filters apply before charging. Example: 5 keywords × 2 pages ≈ 300–400 items ≈ 300–400 events. See the Pricing tab for the current price.

Use with AI agents (MCP)

Actor identity: cyprusapi/amazon-search. Tool description: search Amazon by keyword on 18 marketplaces and return structured product cards with organic-vs-sponsored rank separation and local-currency prices.

Example prompt: "Search Amazon.com for 'wireless earbuds', top 2 pages, only products above 4 stars, exclude ads." → input: {"keywords": ["wireless earbuds"], "marketplace": "com", "maxPages": 2, "minStars": 4, "excludeSponsored": true}

Output interpretation for agents: use positionOrganic for ranking analysis (ads never occupy it); price.value is numeric and marketplace-local (safe for arithmetic); items with an error field are uncharged failures, not data.

FAQ & limitations

  • How many items per page? Amazon renders ~16–48 cards depending on layout — variance is normal.
  • Sales badges ("5K+ bought in past month") are captured verbatim where rendered (de/com/fr/it/es phrase sets; other locales return null).
  • Amazon caps search depth near page 20 — a platform limit, not ours.
  • Legality: public search pages only. You are responsible for complying with Amazon's Terms of Service and applicable law.
  • Found a bug or need another marketplace? Open an issue — selector maintenance is part of the product.