Amazon Product Finder - ASIN Search by Filters
Under maintenancePricing
from $0.50 / 1,000 matching asins
Amazon Product Finder - ASIN Search by Filters
Under maintenanceFind 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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
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
| Field | What it does |
|---|---|
| Title keywords | Whole words the title must contain. "digital camera" Canon requires the phrase and the word; -refurbished excludes a word. |
| Brands, Manufacturers | Up to 50 names each, case-insensitive. |
| Root category IDs, Include / Exclude category IDs | Amazon browse-node IDs. Root categories match anywhere in the tree; include/exclude match direct listings. |
| Which price to filter on + Minimum / Maximum price | Buy 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 rank | Current sales rank. Lower is better. |
| Minimum / Maximum rating | In stars, 0–5. |
| Minimum / Maximum review count | Number of reviews. |
| Minimum / Maximum units sold last month | Amazon's "bought in past month" figure, where it is published. |
| Minimum / Maximum number of new offers | How much competition the listing has. |
| Product type | Standard, downloadable, e-book or variation parent. |
| Amazon availability | In 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 products | Simple switches. |
| Sort results by + Sort direction | Sales 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>
| Part | Values |
|---|---|
family | current, avg, delta, deltaPercent, deltaLast, lastPriceChange, backInStock, isLowest, isLowest90 |
window | 1, 7, 30, 90, 180, 365 — days, for the families that take one (avg30, delta90, deltaPercent7, …) |
PRICE_TYPE | AMAZON, 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:
- Attributes —
partNumber,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) - Physical —
packageLength/Width/Height(mm),packageWeight(g),itemLength/Width/Height,itemWeight,packageQuantity,numberOfItems,numberOfPages - Media & variations —
imageCount,videoCount,variationCount,hasMainVideo,hasAPlus,singleVariation,hasParentASIN - Stock & deals —
outOfStockPercentage90,outOfStockCountAmazon30/90,couponOneTimeAbsolute,couponOneTimePercent,couponSNSPercent,dealType,isDeal,lightningStart,lightningEnd - Buy Box & sellers —
buyBoxIsFBA,buyBoxIsUnqualified,buyBoxSellerId,sellerIds,sellerIdsLowestFBA,sellerIdsLowestFBM,buyBoxStatsAmazon30/90/180/365,buyBoxStatsSellerCount30/90/180/365 - Ranking history —
salesRankDrops30/90/180/365,salesRankReference,salesRankDisplayGroup - Flags —
isHazMat,isHeatSensitive,isAdultProduct,isSNS,isPrimeExclusive,isMerchOnDemand,batteriesRequired,batteriesIncluded,isEligibleForSuperSaverShipping - Lifecycle —
trackingSince,listedSince,lastPriceChange,lastOffersUpdate,releaseDate,publicationDate
Three things to watch in advancedFilters
- Prices are integers in the smallest currency unit.
4200means €42.00. (The ready-made price fields do this conversion for you; this one does not. Japanese yen has no minor unit:3199means ¥3,199.) - Dates are counted in minutes since 2011-01-01T00:00:00Z, not ISO dates.
pageandperPageare ignored. Paging is driven by Maximum ASINs so that no page is fetched — or paid for — twice.sortandminMatchare accepted;sorttakes up to three[field, "asc"|"desc"]pairs, andminMatchsets 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 run | up to 10,000 (upstream ceiling for one query) |
| Page size | 50 – 1,000 rows; 50 is the smallest page the data source will serve |
| Marketplaces | US, UK, DE, FR, IT, ES, NL, CA, MX, BR, AU, JP, IN |
| Billing | one 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
notFounditem.
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