Amazon Product Finder - ASIN Search by Filters avatar

Amazon Product Finder - ASIN Search by Filters

Under maintenance

Pricing

from $0.50 / 1,000 matching asins

Go to Apify Store
Amazon Product Finder - ASIN Search by Filters

Amazon Product Finder - ASIN Search by Filters

Under maintenance

Find Amazon products by criteria instead of by ASIN. Filter on price, sales rank, rating, reviews, category, brand and dozens more - including historical values. Returns up to 10,000 matching ASINs per run. Errors are never charged.

Pricing

from $0.50 / 1,000 matching asins

Rating

0.0

(0)

Developer

Torchtechnology LTD

Torchtechnology LTD

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

Amazon Product Finder

Find Amazon products by what they are instead of by what they are called.

A keyword search can only return what Amazon's search box returns. This Actor queries a product database that already holds the catalogue and its history, so you can ask for things a search box cannot answer:

every Electronics product on amazon.de between €20 and €50, with a sales rank under 30,000, at least 4.3 stars, fewer than 5 competing new offers, and a Buy Box price that dropped by more than 20 % over the last 90 days

You get back the ASINs that match, in the order you asked for.


⚠️ This Actor returns ASINs, not product details

The result of a run is a list of ASINs. There are no titles, no prices, no images, no ratings in the output. That is what this endpoint does: it is a fast, cheap filter over the whole catalogue, and it answers with identifiers.

To turn the ASINs into full product records — title, brand, images, current and historical prices, sales rank, dimensions, FBA fees — feed the dataset of this run into Amazon Product Data. The two are built to be chained: this Actor decides which products, that one fetches what they are.

Each result item looks like this:

{
"asin": "B0CHX1W1XY",
"marketplace": "de",
"url": "https://www.amazon.de/dp/B0CHX1W1XY",
"position": 1,
"scrapedAt": "2026-08-21T09:14:02Z"
}

What you can filter on

Every filter is optional, and all of them are combined with AND. Inside a list field (brands, categories, …) the entries are combined with OR. You must set at least one filter — an empty query would match the entire catalogue, and the run refuses to start rather than bill you for that.

Ready-made fields

FieldWhat it does
Title keywordsWhole words the title must contain. "digital camera" Canon requires the phrase and the word; -refurbished excludes a word.
Brands, ManufacturersUp to 50 names each, case-insensitive.
Root category IDs, Include / Exclude category IDsAmazon browse-node IDs. Root categories match anywhere in the tree; include/exclude match direct listings.
Which price to filter on + Minimum / Maximum priceBuy Box, lowest new, Amazon's own, lowest used, lowest new FBA or list price. Given in the marketplace's currency, e.g. 25 for $25.00.
Minimum / Maximum sales rankCurrent sales rank. Lower is better.
Minimum / Maximum ratingIn stars, 0–5.
Minimum / Maximum review countNumber of reviews.
Minimum / Maximum units sold last monthAmazon's "bought in past month" figure, where it is published.
Minimum / Maximum number of new offersHow much competition the listing has.
Product typeStandard, downloadable, e-book or variation parent.
Amazon availabilityIn stock, pre-order, back-order, delayed, unknown, or no Amazon offer at all.
Only products that have reviews / where Amazon holds the Buy Box / exclude adult productsSimple switches.
Sort results by + Sort directionSales rank, price, rating, reviews, monthly sales, sales-rank drops, tracking age or last price change.

advancedFilters — the other few hundred criteria

The fields above cover the common cases. The underlying query language is much larger, and advancedFilters is a raw JSON object that is merged into the query as-is, so nothing is out of reach:

{
"deltaPercent90_BUY_BOX_SHIPPING_gte": 20,
"isLowest90_NEW": true,
"outOfStockPercentage90_lte": 5,
"packageWeight_lte": 2000,
"salesRankDrops30_gte": 15,
"isSNS": true
}

A key you set here overrides the matching ready-made field, so you can start from the simple form and override one detail.

The grammar

Most historical criteria follow one systematic pattern:

<family><window>_<PRICE_TYPE>_<bound>
PartValues
familycurrent, avg, delta, deltaPercent, deltaLast, lastPriceChange, backInStock, isLowest, isLowest90
window1, 7, 30, 90, 180, 365 — days, for the families that take one (avg30, delta90, deltaPercent7, …)
PRICE_TYPEAMAZON, NEW, USED, SALES, LISTPRICE, COLLECTIBLE, REFURBISHED, NEW_FBM_SHIPPING, LIGHTNING_DEAL, WAREHOUSE, NEW_FBA, COUNT_NEW, COUNT_USED, COUNT_REFURBISHED, COUNT_COLLECTIBLE, RATING, COUNT_REVIEWS, BUY_BOX_SHIPPING, USED_NEW_SHIPPING, USED_VERY_GOOD_SHIPPING, USED_GOOD_SHIPPING, USED_ACCEPTABLE_SHIPPING, REFURBISHED_SHIPPING, TRADE_IN
bound_gte (at least) or _lte (at most). The same value on both means an exact match. The boolean families take no bound.

Examples: avg90_NEW_lte, current_COUNT_REVIEWS_gte, deltaPercent30_AMAZON_gte, isLowest_BUY_BOX_SHIPPING, backInStock_NEW.

Beyond the price families there are plain field filters, most with _gte / _lte bounds:

  • AttributespartNumber, model, color, size, edition, format, author, binding, genre, languages, publisher, platform, itemForm, scent, material, pattern, style, unitType, itemTypeKeyword, targetAudienceKeyword, activeIngredients, brandStoreName, frequentlyBoughtTogether (all string lists)
  • PhysicalpackageLength/Width/Height (mm), packageWeight (g), itemLength/Width/Height, itemWeight, packageQuantity, numberOfItems, numberOfPages
  • Media & variationsimageCount, videoCount, variationCount, hasMainVideo, hasAPlus, singleVariation, hasParentASIN
  • Stock & dealsoutOfStockPercentage90, outOfStockCountAmazon30/90, couponOneTimeAbsolute, couponOneTimePercent, couponSNSPercent, dealType, isDeal, lightningStart, lightningEnd
  • Buy Box & sellersbuyBoxIsFBA, buyBoxIsUnqualified, buyBoxSellerId, sellerIds, sellerIdsLowestFBA, sellerIdsLowestFBM, buyBoxStatsAmazon30/90/180/365, buyBoxStatsSellerCount30/90/180/365
  • Ranking historysalesRankDrops30/90/180/365, salesRankReference, salesRankDisplayGroup
  • FlagsisHazMat, isHeatSensitive, isAdultProduct, isSNS, isPrimeExclusive, isMerchOnDemand, batteriesRequired, batteriesIncluded, isEligibleForSuperSaverShipping
  • LifecycletrackingSince, listedSince, lastPriceChange, lastOffersUpdate, releaseDate, publicationDate

Three things to watch in advancedFilters

  1. Prices are integers in the smallest currency unit. 4200 means €42.00. (The ready-made price fields do this conversion for you; this one does not. Japanese yen has no minor unit: 3199 means ¥3,199.)
  2. Dates are counted in minutes since 2011-01-01T00:00:00Z, not ISO dates.
  3. page and perPage are ignored. Paging is driven by Maximum ASINs so that no page is fetched — or paid for — twice. sort and minMatch are accepted; sort takes up to three [field, "asc"|"desc"] pairs, and minMatch sets how many entries of a list filter must match, e.g. {"minMatch": {"brand": 2}}.

Every list filter accepts at most 50 entries. Prefix a string value with to exclude it.


Search insights (optional)

Switch on Include search insights to also get aggregate statistics over the entire match set — not just the page you fetched: average Buy Box price now / 90 days / 365 days, average rating and review count, the share sold by Amazon and by FBA, coupon share, seller and brand counts, best and worst sales rank, top brands and top sellers with their counts.

They are written to the run's key-value store as SEARCH_INSIGHTS rather than into the dataset, so that the dataset stays one clean row per ASIN. Insights are charged as their own event, and only if they actually come back.


Limits and cost

ASINs per runup to 10,000 (upstream ceiling for one query)
Page size50 – 1,000 rows; 50 is the smallest page the data source will serve
MarketplacesUS, UK, DE, FR, IT, ES, NL, CA, MX, BR, AU, JP, IN
Billingone charge per ASIN delivered, plus one charge if search insights are returned

Because the smallest page holds 50 rows, asking for 10 ASINs and asking for 50 cost the data source the same; only your bill differs.

Note that pages are not cached upstream, so the ordering can shift slightly between pages of a very large query. This Actor de-duplicates ASINs across pages, so you never get the same ASIN twice.


What is never charged

  • Runs that fail validation before any data is fetched.
  • Items marked error — the request was rejected upstream.
  • Items marked currentlyUnavailable — shared capacity was momentarily used up. The run still finishes successfully; retry in a few minutes.
  • An empty result set, reported as a single notFound item.

Every run also writes a RUN_SUMMARY record with requested, delivered, totalMatches, notFound, unavailable, failed and unitsSpent.


Recipes

Private-label opportunity scan (US): rootCategories: [3760901], minPrice: 15, maxPrice: 45, maxSalesRank: 60000, minRating: 4, maxReviewCount: 120, maxOfferCountNew: 3, sortBy: monthlySold, sortOrder: desc

Recent price crashes worth repricing against: advancedFilters: {"deltaPercent90_BUY_BOX_SHIPPING_gte": 25, "current_COUNT_REVIEWS_gte": 100}, sortBy: salesRank

Everything a brand sells in a market: brands: ["ExampleBrand"], maxItems: 10000, sortBy: salesRank