Amazon Search, Category & Seller Listings Extractor
Get Amazon products from search results, categories, seller storefronts, or ASIN lookups across 20+ marketplaces, with price, rating, badges, deals, and delivery details.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
categoryUrls | array | optional | Amazon search, category, seller-profile, or exact product URLs. Search pages (/s?k=), browse nodes (/b?node=), seller profiles (/sp?seller=), and product pages (/dp/) are routed automatically. Combine with any other mode. |
keywords | array | optional | Plain search keywords or phrases. Each keyword builds an Amazon search URL (/s?k={query}). |
productUrls | array | optional | Exact Amazon product URLs. Each URL is normalized to /dp/{ASIN} on its own marketplace and fetched directly (never as a search). |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
categoryUrls | array | optional | Amazon search, category, seller-profile, or exact product URLs. Search pages (/s?k=), browse nodes (/b?node=), seller profiles (/sp?seller=), and product pages (/dp/) are routed automatically. Combine with any other mode. |
keywords | array | optional | Plain search keywords or phrases. Each keyword builds an Amazon search URL (/s?k={query}). |
productUrls | array | optional | Exact Amazon product URLs. Each URL is normalized to /dp/{ASIN} on its own marketplace and fetched directly (never as a search). |
asins | array | optional | Amazon ASINs to fetch exactly. Each ASIN opens its own product page (/dp/{ASIN}) directly, never a keyword search. |
sellerIds | array | optional | Amazon seller/merchant IDs. Each ID builds that seller's storefront listing (/s?me={sellerId}). |
categoryNodeIds | array | optional | Amazon browse-node IDs. Each node builds a real category listing (/s?rh=n:{node}&fs=true), with a merchandising fallback only when Amazon renders no listing grid. |
marketplaceDomain | string | optional | Amazon marketplace used for keyword, ASIN, seller, and node modes. URLs in categoryUrls/productUrls keep their own marketplace. |
maxItems | integer | optional | Global cap across every source in the run. 0 means no global cap. |
maxItemsPerCategory | integer | optional | Maximum products to return from each keyword, URL, seller, or node source. |
maxPages | integer | optional | Maximum listing pages per source. Amazon keyword search itself stops at page 7; category listings go deeper. |
scrapeProductDetails | boolean | optional | If true, visit each accepted product's own page for specs, gallery images, seller, BSR, variants, and histogram. ASIN/product-URL modes always use detail pages. If false, only listing-card fields are returned. |
includeSpecifications | boolean | optional | If true (and detail pages are scraped), return the specifications object parsed from the overview and technical-detail tables. |
sortBy | string | optional | Sort order applied to search and category listings. |
priceMin | number | optional | Only return products priced at or above this amount (marketplace currency). |
priceMax | number | optional | Only return products priced at or below this amount (marketplace currency). |
minRating | number | optional | Only return products with a star rating at or above this value (0-5). |
includeSponsored | boolean | optional | If true (default), sponsored/ad placements are included. Set false to return organic results only. |
onlyDeals | boolean | optional | If true, only return products with visible deal evidence (coupon, limited-time-deal badge, or genuine strike-through list price). |
primeOnly | boolean | optional | If true, only return products with a visible Amazon Prime badge. Badges are render-dependent in some marketplaces. |
rateLimitDelay | integer | optional | Base pacing delay between live requests. Product-detail requests always add human-like jitter. |
Download the published input schema
View complete JSON
{
"properties": {
"asins": {
"description": "Amazon ASINs to fetch exactly. Each ASIN opens its own product page (/dp/{ASIN}) directly, never a keyword search.",
"editor": "stringList",
"example": [
"B08N5WRWNW",
"B09X7MPX8L"
],
"items": {
"type": "string"
},
"title": "ASINs",
"type": "array"
},
"categoryNodeIds": {
"description": "Amazon browse-node IDs. Each node builds a real category listing (/s?rh=n:{node}&fs=true), with a merchandising fallback only when Amazon renders no listing grid.",
"editor": "stringList",
"example": [
"172282"
],
"items": {
"type": "string"
},
"title": "Category Node IDs",
"type": "array"
},
"categoryUrls": {
"description": "Amazon search, category, seller-profile, or exact product URLs. Search pages (/s?k=), browse nodes (/b?node=), seller profiles (/sp?seller=), and product pages (/dp/) are routed automatically. Combine with any other mode.",
"editor": "stringList",
"example": [
"https://www.amazon.com/s?k=laptops",
"https://www.amazon.com/dp/B08N5WRWNW"
],
"items": {
"type": "string"
},
"title": "Search, Category & Product URLs",
"type": "array"
},
"includeSpecifications": {
"default": true,
"description": "If true (and detail pages are scraped), return the specifications object parsed from the overview and technical-detail tables.",
"prefill": false,
"title": "Include Specifications",
"type": "boolean"
},
"includeSponsored": {
"default": true,
"description": "If true (default), sponsored/ad placements are included. Set false to return organic results only.",
"title": "Include Sponsored Results",
"type": "boolean"
},
"keywords": {
"description": "Plain search keywords or phrases. Each keyword builds an Amazon search URL (/s?k={query}).",
"editor": "stringList",
"example": [
"wireless earbuds",
"bluetooth speaker"
],
"items": {
"type": "string"
},
"prefill": [
"wireless earbuds"
],
"title": "Search Keywords",
"type": "array"
},
"marketplaceDomain": {
"default": "amazon.com",
"description": "Amazon marketplace used for keyword, ASIN, seller, and node modes. URLs in categoryUrls/productUrls keep their own marketplace.",
"editor": "select",
"enum": [
"amazon.com",
"amazon.co.uk",
"amazon.de",
"amazon.fr",
"amazon.it",
"amazon.es",
"amazon.ca",
"amazon.com.au",
"amazon.co.jp",
"amazon.in",
"amazon.com.br",
"amazon.com.mx",
"amazon.nl",
"amazon.se",
"amazon.pl",
"amazon.com.tr",
"amazon.ae",
"amazon.sa",
"amazon.sg",
"amazon.com.be",
"amazon.eg"
],
"enumTitles": [
"United States (amazon.com)",
"United Kingdom (amazon.co.uk)",
"Germany (amazon.de)",
"France (amazon.fr)",
"Italy (amazon.it)",
"Spain (amazon.es)",
"Canada (amazon.ca)",
"Australia (amazon.com.au)",
"Japan (amazon.co.jp)",
"India (amazon.in)",
"Brazil (amazon.com.br)",
"Mexico (amazon.com.mx)",
"Netherlands (amazon.nl)",
"Sweden (amazon.se)",
"Poland (amazon.pl)",
"Turkey (amazon.com.tr)",
"United Arab Emirates (amazon.ae)",
"Saudi Arabia (amazon.sa)",
"Singapore (amazon.sg)",
"Belgium (amazon.com.be)",
"Egypt (amazon.eg)"
],
"prefill": "amazon.com",
"title": "Marketplace",
"type": "string"
},
"maxItems": {
"default": 0,
"description": "Global cap across every source in the run. 0 means no global cap.",
"editor": "number",
"maximum": 100000,
"minimum": 0,
"prefill": 3,
"title": "Maximum Items (all sources)",
"type": "integer"
},
"maxItemsPerCategory": {
"default": 10,
"description": "Maximum products to return from each keyword, URL, seller, or node source.",
"editor": "number",
"maximum": 10000,
"minimum": 1,
"prefill": 3,
"title": "Maximum Items Per Source",
"type": "integer"
},
"maxPages": {
"default": 1,
"description": "Maximum listing pages per source. Amazon keyword search itself stops at page 7; category listings go deeper.",
"editor": "number",
"maximum": 50,
"minimum": 1,
"title": "Maximum Pages",
"type": "integer"
},
"minRating": {
"description": "Only return products with a star rating at or above this value (0-5).",
"editor": "number",
"maximum": 5,
"minimum": 0,
"title": "Minimum Rating",
"type": "number"
},
"onlyDeals": {
"default": false,
"description": "If true, only return products with visible deal evidence (coupon, limited-time-deal badge, or genuine strike-through list price).",
"title": "Only Deals",
"type": "boolean"
},
"priceMax": {
"description": "Only return products priced at or below this amount (marketplace currency).",
"editor": "number",
"minimum": 0,
"title": "Maximum Price",
"type": "number"
},
"priceMin": {
"description": "Only return products priced at or above this amount (marketplace currency).",
"editor": "number",
"minimum": 0,
"title": "Minimum Price",
"type": "number"
},
"primeOnly": {
"default": false,
"description": "If true, only return products with a visible Amazon Prime badge. Badges are render-dependent in some marketplaces.",
"title": "Prime Only",
"type": "boolean"
},
"productUrls": {
"description": "Exact Amazon product URLs. Each URL is normalized to /dp/{ASIN} on its own marketplace and fetched directly (never as a search).",
"editor": "stringList",
"example": [
"https://www.amazon.com/dp/B08N5WRWNW"
],
"items": {
"type": "string"
},
"title": "Product URLs",
"type": "array"
},
"rateLimitDelay": {
"default": 2,
"description": "Base pacing delay between live requests. Product-detail requests always add human-like jitter.",
"editor": "number",
"maximum": 30,
"minimum": 1,
"title": "Base Request Delay (seconds)",
"type": "integer"
},
"scrapeProductDetails": {
"default": true,
"description": "If true, visit each accepted product's own page for specs, gallery images, seller, BSR, variants, and histogram. ASIN/product-URL modes always use detail pages. If false, only listing-card fields are returned.",
"prefill": false,
"title": "Scrape Product Details",
"type": "boolean"
},
"sellerIds": {
"description": "Amazon seller/merchant IDs. Each ID builds that seller's storefront listing (/s?me={sellerId}).",
"editor": "stringList",
"example": [
"A1B2C3D4E5F6G7"
],
"items": {
"type": "string"
},
"title": "Seller IDs",
"type": "array"
},
"sortBy": {
"default": "relevanceblender",
"description": "Sort order applied to search and category listings.",
"editor": "select",
"enum": [
"relevanceblender",
"price-asc-rank",
"price-desc-rank",
"review-rank",
"date-desc-rank",
"exact-aware-popularity-rank"
],
"enumTitles": [
"Featured/Relevance",
"Price: Low to High",
"Price: High to Low",
"Avg. Customer Review",
"Newest Arrivals",
"Best Sellers"
],
"title": "Sort By",
"type": "string"
}
},
"required": [],
"schemaVersion": 1,
"title": "Amazon Listings Extractor Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
title | string | optional | Product title |
url | string | required | Direct Amazon URL for the product page |
marketplace | string | optional | Bare Amazon marketplace domain this record came from (e.g. amazon.com) |
sourceMode | string | optional | Input mode that produced this record: keywords, categoryUrls, categoryNodeIds, sellerIds, asins, or productUrls |
searchQuery | string | optional | Keyword, node ID, or seller ID that produced this listing record |
asin | string | required | Amazon Standard Identification Number |
brand | string | optional | Product brand name |
images | string | optional | All deduplicated image URLs for the product (JSON array) |
imageLarge | string | optional | Largest product image URL available (upscaled Amazon media URL) |
price | string | optional | Current price (JSON object with value, currency, display) |
listPrice | string | optional | Genuine list/strike-through price only; never Amazon's "Typical price" reference |
typicalPrice | string | optional | Amazon's separate "Typical price" reference price (never used as listPrice) |
discountPercent | string | optional | Discount percentage, calculated only from a genuine current price and strike-through list price |
currency | string | optional | ISO currency code resolved from the product price, when available |
stars | string | optional | Average star rating from 1 to 5 |
starsBreakdown | string | optional | Rating breakdown by star count as a share per star, 0.0-1.0 (JSON object), from the product detail page when rendered |
reviewsCount | string | optional | Total number of customer reviews |
answeredQuestions | string | optional | Answered-question count, only when the detail page renders it |
inStock | string | optional | Whether the product is currently in stock |
inStockText | string | optional | Detailed stock availability text |
thumbnailImage | string | optional | Main product image URL |
features | string | optional | List of product features and bullet points (JSON array) |
description | string | optional | Full product description |
breadCrumbs | string | optional | Product category breadcrumb path |
bestsellerRanks | string | optional | Bestseller rankings in different categories (JSON array) |
specifications | string | optional | Deduplicated product specifications (JSON object), from the overview and technical-detail tables |
seller | string | optional | Seller identity {name, id, url}; omitted when no real seller ID can be resolved |
delivery | string | optional | Delivery information and estimated date |
fastestDelivery | string | optional | Fastest delivery estimate, only when the detail page renders it |
returnPolicy | string | optional | Return policy text, from the product detail page |
support | string | optional | Support/warranty information, only when the detail page renders it |
priceVariants | string | optional | Per-variant price map, only when the detail page exposes one |
locationText | string | optional | Delivery destination the product detail page rendered for |
shippingPrice | string | optional | Shipping cost when explicitly shown (0 means free shipping) |
variantAsins | string | optional | List of variant product ASINs (JSON array) |
variantAttributes | string | optional | Visible variant dimensions (JSON array of {name, values}), when a twister widget exists |
reviewsLink | string | optional | Absolute link to the full reviews page, when available |
categoryUrl | string | optional | Source category/search URL |
categoryPage | string | optional | Page number in search results |
categoryPosition | string | optional | Position in search results |
organicPosition | string | optional | Position among organic results (sponsored rows are excluded from this count) |
scrapedAt | string | required | ISO timestamp when the data was scraped |
sourceLayout | string | optional | Which page layout this card was extracted from: SEARCH_GRID, MERCHANDISING_LANDING, or MIXED |
sponsored | string | optional | Whether this result is a sponsored/ad placement (evidence-only) |
isSponsored | string | optional | Same true/false value as `sponsored` |
resultType | string | optional | Result classification: ORGANIC, SPONSORED, EDITORIAL, or OTHER |
badge | string | optional | Merchandising badge shown on the card (e.g. BestSeller, AmazonsChoice) |
boughtInPastMonth | string | optional | Number of units bought in the past month, parsed from the card's compact-count hint |
boughtInPastMonthText | string | optional | Raw "X+ bought in past month" card text |
coupon | string | optional | Coupon text shown on the card, if any |
stockText | string | optional | Raw stock hint shown on the listing card |
unitPrice | string | optional | Per-unit price text shown on the listing card |
dealText | string | optional | Raw deal/percent-off text shown on the listing card |
soldByText | string | optional | Raw "Sold by" line shown on the listing card |
moreOptionsText | string | optional | Raw "More options" hint shown on the listing card |
deliveryEstimate | string | optional | Estimated delivery text shown on the card |
shipsTo | string | optional | Ships-to location text shown on the card, if any |
sustainabilityFeatures | string | optional | Sustainability/Climate Pledge Friendly badge labels (JSON array) |
variantsCount | string | optional | Number of additional color/style variants shown via the card's "+N" hint |
prime | string | optional | Whether the card shows an Amazon Prime badge (evidence-only) |
isPrime | string | optional | Same true/false value as `prime` |
offerCount | string | optional | Number of "More Buying Choices" offers shown on the card |
lowestOfferPrice | string | optional | Lowest "More Buying Choices" offer price (JSON object with value and currency) |
resultsTotal | string | optional | Total number of results reported by the results-info bar |
resultsFrom | string | optional | Starting result index reported by the results-info bar |
resultsTo | string | optional | Ending result index reported by the results-info bar |
position | string | optional | Position metadata (JSON object with page, positionOnPage, globalPosition, uuid) |
facets | string | optional | Refinement facets available on this results page (JSON array) |
relatedSearches | string | optional | Related search suggestions shown on this results page (JSON array of text/url pairs) |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Amazon product records from search, category, and seller listings with price, rating, badges, and delivery details.",
"properties": {
"answeredQuestions": {
"description": "Answered-question count, only when the detail page renders it",
"template": "{{answeredQuestions}}",
"title": "Answered Questions",
"type": "string"
},
"asin": {
"description": "Amazon Standard Identification Number",
"template": "{{asin}}",
"title": "ASIN",
"type": "string"
},
"badge": {
"description": "Merchandising badge shown on the card (e.g. BestSeller, AmazonsChoice)",
"template": "{{badge}}",
"title": "Badge",
"type": "string"
},
"bestsellerRanks": {
"description": "Bestseller rankings in different categories (JSON array)",
"template": "{{bestsellerRanks}}",
"title": "Bestseller Ranks",
"type": "string"
},
"boughtInPastMonth": {
"description": "Number of units bought in the past month, parsed from the card's compact-count hint",
"template": "{{boughtInPastMonth}}",
"title": "Bought In Past Month",
"type": "string"
},
"boughtInPastMonthText": {
"description": "Raw \"X+ bought in past month\" card text",
"template": "{{boughtInPastMonthText}}",
"title": "Bought In Past Month (raw text)",
"type": "string"
},
"brand": {
"description": "Product brand name",
"template": "{{brand}}",
"title": "Brand",
"type": "string"
},
"breadCrumbs": {
"description": "Product category breadcrumb path",
"template": "{{breadCrumbs}}",
"title": "Categories",
"type": "string"
},
"categoryPage": {
"description": "Page number in search results",
"template": "{{categoryPage}}",
"title": "Category Page",
"type": "string"
},
"categoryPosition": {
"description": "Position in search results",
"template": "{{categoryPosition}}",
"title": "Position",
"type": "string"
},
"categoryUrl": {
"description": "Source category/search URL",
"template": "{{categoryUrl}}",
"title": "Category URL",
"type": "string"
},
"coupon": {
"description": "Coupon text shown on the card, if any",
"template": "{{coupon}}",
"title": "Coupon",
"type": "string"
},
"currency": {
"description": "ISO currency code resolved from the product price, when available",
"template": "{{currency}}",
"title": "Currency",
"type": "string"
},
"dealText": {
"description": "Raw deal/percent-off text shown on the listing card",
"template": "{{dealText}}",
"title": "Deal Text",
"type": "string"
},
"delivery": {
"description": "Delivery information and estimated date",
"template": "{{delivery}}",
"title": "Delivery",
"type": "string"
},
"deliveryEstimate": {
"description": "Estimated delivery text shown on the card",
"template": "{{deliveryEstimate}}",
"title": "Delivery Estimate",
"type": "string"
},
"description": {
"description": "Full product description",
"template": "{{description}}",
"title": "Description",
"type": "string"
},
"discountPercent": {
"description": "Discount percentage, calculated only from a genuine current price and strike-through list price",
"template": "{{discountPercent}}",
"title": "Discount Percent",
"type": "string"
},
"facets": {
"description": "Refinement facets available on this results page (JSON array)",
"template": "{{facets}}",
"title": "Facets",
"type": "string"
},
"fastestDelivery": {
"description": "Fastest delivery estimate, only when the detail page renders it",
"template": "{{fastestDelivery}}",
"title": "Fastest Delivery",
"type": "string"
},
"features": {
"description": "List of product features and bullet points (JSON array)",
"template": "{{features}}",
"title": "Features",
"type": "string"
},
"imageLarge": {
"description": "Largest product image URL available (upscaled Amazon media URL)",
"template": "{{imageLarge}}",
"title": "Large Image",
"type": "string"
},
"images": {
"description": "All deduplicated image URLs for the product (JSON array)",
"template": "{{images}}",
"title": "Images",
"type": "string"
},
"inStock": {
"description": "Whether the product is currently in stock",
"template": "{{inStock}}",
"title": "In Stock",
"type": "string"
},
"inStockText": {
"description": "Detailed stock availability text",
"template": "{{inStockText}}",
"title": "Stock Status",
"type": "string"
},
"isPrime": {
"description": "Same true/false value as `prime`",
"template": "{{isPrime}}",
"title": "Is Prime",
"type": "string"
},
"isSponsored": {
"description": "Same true/false value as `sponsored`",
"template": "{{isSponsored}}",
"title": "Is Sponsored",
"type": "string"
},
"listPrice": {
"description": "Genuine list/strike-through price only; never Amazon's \"Typical price\" reference",
"template": "{{listPrice}}",
"title": "List Price",
"type": "string"
},
"locationText": {
"description": "Delivery destination the product detail page rendered for",
"template": "{{locationText}}",
"title": "Delivery Location",
"type": "string"
},
"lowestOfferPrice": {
"description": "Lowest \"More Buying Choices\" offer price (JSON object with value and currency)",
"template": "{{lowestOfferPrice}}",
"title": "Lowest Offer Price",
"type": "string"
},
"marketplace": {
"description": "Bare Amazon marketplace domain this record came from (e.g. amazon.com)",
"template": "{{marketplace}}",
"title": "Marketplace",
"type": "string"
},
"moreOptionsText": {
"description": "Raw \"More options\" hint shown on the listing card",
"template": "{{moreOptionsText}}",
"title": "More Options Text",
"type": "string"
},
"offerCount": {
"description": "Number of \"More Buying Choices\" offers shown on the card",
"template": "{{offerCount}}",
"title": "Offer Count",
"type": "string"
},
"organicPosition": {
"description": "Position among organic results (sponsored rows are excluded from this count)",
"template": "{{organicPosition}}",
"title": "Organic Position",
"type": "string"
},
"position": {
"description": "Position metadata (JSON object with page, positionOnPage, globalPosition, uuid)",
"template": "{{position}}",
"title": "Position",
"type": "string"
},
"price": {
"description": "Current price (JSON object with value, currency, display)",
"template": "{{price}}",
"title": "Price",
"type": "string"
},
"priceVariants": {
"description": "Per-variant price map, only when the detail page exposes one",
"template": "{{priceVariants}}",
"title": "Price Variants",
"type": "string"
},
"prime": {
"description": "Whether the card shows an Amazon Prime badge (evidence-only)",
"template": "{{prime}}",
"title": "Prime",
"type": "string"
},
"relatedSearches": {
"description": "Related search suggestions shown on this results page (JSON array of text/url pairs)",
"template": "{{relatedSearches}}",
"title": "Related Searches",
"type": "string"
},
"resultType": {
"description": "Result classification: ORGANIC, SPONSORED, EDITORIAL, or OTHER",
"template": "{{resultType}}",
"title": "Result Type",
"type": "string"
},
"resultsFrom": {
"description": "Starting result index reported by the results-info bar",
"template": "{{resultsFrom}}",
"title": "Results From",
"type": "string"
},
"resultsTo": {
"description": "Ending result index reported by the results-info bar",
"template": "{{resultsTo}}",
"title": "Results To",
"type": "string"
},
"resultsTotal": {
"description": "Total number of results reported by the results-info bar",
"template": "{{resultsTotal}}",
"title": "Results Total",
"type": "string"
},
"returnPolicy": {
"description": "Return policy text, from the product detail page",
"template": "{{returnPolicy}}",
"title": "Return Policy",
"type": "string"
},
"reviewsCount": {
"description": "Total number of customer reviews",
"template": "{{reviewsCount}}",
"title": "Reviews Count",
"type": "string"
},
"reviewsLink": {
"description": "Absolute link to the full reviews page, when available",
"template": "{{reviewsLink}}",
"title": "Reviews Link",
"type": "string"
},
"scrapedAt": {
"description": "ISO timestamp when the data was scraped",
"template": "{{scrapedAt}}",
"title": "Scraped At",
"type": "string"
},
"searchQuery": {
"description": "Keyword, node ID, or seller ID that produced this listing record",
"template": "{{searchQuery}}",
"title": "Search Query",
"type": "string"
},
"seller": {
"description": "Seller identity {name, id, url}; omitted when no real seller ID can be resolved",
"template": "{{seller}}",
"title": "Seller",
"type": "string"
},
"shippingPrice": {
"description": "Shipping cost when explicitly shown (0 means free shipping)",
"template": "{{shippingPrice}}",
"title": "Shipping Price",
"type": "string"
},
"shipsTo": {
"description": "Ships-to location text shown on the card, if any",
"template": "{{shipsTo}}",
"title": "Ships To",
"type": "string"
},
"soldByText": {
"description": "Raw \"Sold by\" line shown on the listing card",
"template": "{{soldByText}}",
"title": "Sold By Text",
"type": "string"
},
"sourceLayout": {
"description": "Which page layout this card was extracted from: SEARCH_GRID, MERCHANDISING_LANDING, or MIXED",
"template": "{{sourceLayout}}",
"title": "Source Layout",
"type": "string"
},
"sourceMode": {
"description": "Input mode that produced this record: keywords, categoryUrls, categoryNodeIds, sellerIds, asins, or productUrls",
"template": "{{sourceMode}}",
"title": "Source Mode",
"type": "string"
},
"specifications": {
"description": "Deduplicated product specifications (JSON object), from the overview and technical-detail tables",
"template": "{{specifications}}",
"title": "Specifications",
"type": "string"
},
"sponsored": {
"description": "Whether this result is a sponsored/ad placement (evidence-only)",
"template": "{{sponsored}}",
"title": "Sponsored",
"type": "string"
},
"stars": {
"description": "Average star rating from 1 to 5",
"template": "{{stars}}",
"title": "Rating",
"type": "string"
},
"starsBreakdown": {
"description": "Rating breakdown by star count as a share per star, 0.0-1.0 (JSON object), from the product detail page when rendered",
"template": "{{starsBreakdown}}",
"title": "Rating Breakdown",
"type": "string"
},
"stockText": {
"description": "Raw stock hint shown on the listing card",
"template": "{{stockText}}",
"title": "Stock Text",
"type": "string"
},
"support": {
"description": "Support/warranty information, only when the detail page renders it",
"template": "{{support}}",
"title": "Support",
"type": "string"
},
"sustainabilityFeatures": {
"description": "Sustainability/Climate Pledge Friendly badge labels (JSON array)",
"template": "{{sustainabilityFeatures}}",
"title": "Sustainability Features",
"type": "string"
},
"thumbnailImage": {
"description": "Main product image URL",
"template": "{{thumbnailImage}}",
"title": "Image",
"type": "string"
},
"title": {
"description": "Product title",
"template": "{{title}}",
"title": "Product Title",
"type": "string"
},
"typicalPrice": {
"description": "Amazon's separate \"Typical price\" reference price (never used as listPrice)",
"template": "{{typicalPrice}}",
"title": "Typical Price",
"type": "string"
},
"unitPrice": {
"description": "Per-unit price text shown on the listing card",
"template": "{{unitPrice}}",
"title": "Unit Price",
"type": "string"
},
"url": {
"description": "Direct Amazon URL for the product page",
"template": "{{url}}",
"title": "Product URL",
"type": "string"
},
"variantAsins": {
"description": "List of variant product ASINs (JSON array)",
"template": "{{variantAsins}}",
"title": "Variant ASINs",
"type": "string"
},
"variantAttributes": {
"description": "Visible variant dimensions (JSON array of {name, values}), when a twister widget exists",
"template": "{{variantAttributes}}",
"title": "Variant Attributes",
"type": "string"
},
"variantsCount": {
"description": "Number of additional color/style variants shown via the card's \"+N\" hint",
"template": "{{variantsCount}}",
"title": "Variants Count",
"type": "string"
}
},
"required": [
"url",
"asin",
"scrapedAt"
],
"title": "Amazon Search, Category & Seller Listings Extractor Output",
"type": "object"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"views": {
"overview": {
"display": {
"component": "table",
"properties": {
"asin": {
"format": "text",
"label": "ASIN"
},
"brand": {
"format": "text",
"label": "Brand"
},
"inStock": {
"format": "boolean",
"label": "In Stock"
},
"price": {
"format": "object",
"label": "Price"
},
"reviewsCount": {
"format": "number",
"label": "Reviews"
},
"stars": {
"format": "number",
"label": "Rating"
},
"title": {
"format": "text",
"label": "Product Title"
},
"url": {
"format": "link",
"label": "URL"
}
}
},
"title": "Overview",
"transformation": {
"fields": [
"title",
"asin",
"price",
"stars",
"reviewsCount",
"inStock",
"brand",
"url"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
Amazon Search, Category & Seller Listings Extractor
Pull Amazon product listings from keyword search, category/search URLs, browse-node IDs, seller storefronts, ASINs, and exact product URLs in one run. Every record carries the listing card data — price, brand, rating, badges, images, delivery hints, and organic/sponsored position — and optional product-detail enrichment adds specifications, the full gallery, seller identity, rating histogram, variants, and bestseller ranks. No login, cookies, or API key needed.
What this actor does
- Six additive input modes. Combine
keywords,categoryUrls,categoryNodeIds,sellerIds,asins, andproductUrlsin the same run; every source is processed and deduplicated by ASIN. - Exact product lookup. ASIN and product-URL modes open
/dp/{ASIN}directly. They never fall back to an Amazon keyword search, so a known product cannot turn into an unrelated result. - Real category listings. Node IDs use Amazon's
/s?rh=n:{node}&fs=truelisting route, not the/b?node=merchandising landing page. Search, seller (/s?me=), and seller-profile (/sp?seller=) URLs are routed automatically. - Playwright reliability. Each marketplace session is warmed up on the homepage and paced with human-like jitter. Continue-shopping interstitials, dog pages, rate limits, and interstitial challenges are classified and retried. Proxy selection is automatic: an available non-residential (datacenter/static) group in the marketplace's country, never residential by default.
- Listing intelligence. Brand, card image set and large image, organic position, sponsored flag, ships-to line, variant count, unit price, deal text, stock hint, sold-by line, and a genuine list price kept separate from Amazon's "Typical price".
- Detail enrichment. Specifications, gallery images, rating histogram, reviews link, seller ID/name/URL, variant dimensions, BSR, breadcrumbs, description, features, and stock status.
- Safe output. Empty fields are omitted at every depth; nothing is emitted as
null.
Output per product
Listing fields (all modes)
asin,title,url,marketplace,sourceMode,searchQueryprice{value, currency, display},listPrice,typicalPrice,discountPercentstars,reviewsCount,brandthumbnailImage,images,imageLargebadge,coupon,dealText,stockText,unitPrice,soldByText,moreOptionsTextboughtInPastMonth,boughtInPastMonthTextdeliveryEstimate,shipsTo,sustainabilityFeatures,variantsCountofferCount,lowestOfferPricesponsored/isSponsored,resultType,prime/isPrimeorganicPosition,categoryPositioncategoryUrl,categoryPage,sourceLayout,positionresultsTotal,resultsFrom,resultsTo,facets,relatedSearchesscrapedAt
Product-detail fields (detail enrichment or ASIN/product-URL modes)
brand,inStock,inStockText,currencyspecifications(overview + technical tables)images(gallery),imageLargestarsBreakdown(share per star, 0.0-1.0)reviewsLink,answeredQuestionsbreadCrumbs,description,featuresvariantAsins,variantAttributes,priceVariantsdelivery,fastestDelivery,shippingPrice,returnPolicy,supportseller{name, id, url}— omitted when no real seller ID can be resolvedbestsellerRanks,locationText
Fields that Amazon does not render for a specific product are omitted, never fabricated. This includes render-dependent badges (Prime, sponsored), seller identity, and some buy-box details.
Input
At least one of categoryUrls, keywords, productUrls, asins, sellerIds, or
categoryNodeIds is required. All modes are additive.
| Field | Type | Default | Description |
|---|---|---|---|
categoryUrls |
array | – | Search, category, seller-profile, or product URLs; routed automatically |
keywords |
array | – | Search phrases; each builds /s?k={query} |
productUrls |
array | – | Exact product URLs; normalized to /dp/{ASIN} on their own marketplace |
asins |
array | – | Exact ASINs; each opens /dp/{ASIN} directly |
sellerIds |
array | – | Seller/merchant IDs; each builds /s?me={id} |
categoryNodeIds |
array | – | Browse-node IDs; each builds /s?rh=n:{id}&fs=true |
marketplaceDomain |
select | amazon.com |
Marketplace for keyword/ASIN/seller/node modes (21 domains) |
maxItems |
integer | 0 |
Global cap across all sources; 0 means unlimited |
maxItemsPerCategory |
integer | 10 |
Cap per keyword/URL/seller/node source (1-10000) |
maxPages |
integer | 1 |
Pages per listing source (1-50); keyword search itself stops at 7 |
scrapeProductDetails |
boolean | true |
Visit each accepted product page for detail fields |
includeSpecifications |
boolean | true |
Include the specifications object when detail pages are scraped |
sortBy |
select | relevanceblender |
Featured, price, review, newest, or best-seller sort |
priceMin, priceMax |
number | – | Price range in the marketplace currency |
minRating |
number | – | Minimum star rating (0-5) |
includeSponsored |
boolean | true |
Include sponsored placements |
onlyDeals |
boolean | false |
Keep only cards with visible deal evidence |
primeOnly |
boolean | false |
Keep only cards with a visible Prime badge |
rateLimitDelay |
integer | 2 |
Base delay in seconds between requests (1-30) |
Example: keyword search, cards only
{
"keywords": ["wireless earbuds", "bluetooth speaker"],
"maxItemsPerCategory": 100,
"maxPages": 3,
"scrapeProductDetails": false,
"sortBy": "review-rank",
"minRating": 4
}
Example: exact products and a product URL together
{
"asins": ["B08N5WRWNW", "B09X7MPX8L"],
"productUrls": ["https://www.amazon.de/dp/B08N5WRWNW"],
"scrapeProductDetails": true,
"includeSpecifications": true
}
Example: category node, seller storefront, and filters
{
"categoryNodeIds": ["172282"],
"sellerIds": ["A1B2C3D4E5F6G7"],
"marketplaceDomain": "amazon.co.uk",
"maxItemsPerCategory": 50,
"onlyDeals": true,
"maxPages": 3
}
Supported Amazon Marketplaces
amazon.com (US), amazon.co.uk (UK), amazon.de (Germany), amazon.fr (France), amazon.it (Italy), amazon.es (Spain), amazon.ca (Canada), amazon.com.au (Australia), amazon.co.jp (Japan), amazon.in (India), amazon.com.br (Brazil), amazon.com.mx (Mexico), amazon.nl (Netherlands), amazon.se (Sweden), amazon.pl (Poland), amazon.com.tr (Turkey), amazon.ae (UAE), amazon.sa (Saudi Arabia), amazon.sg (Singapore), amazon.com.be (Belgium), amazon.eg (Egypt).
Use cases
- Competitor price tracking — monitor price, list price, typical price, and deal evidence.
- Category and keyword research — collect top products with brand, rating, and organic rank.
- Sponsored-placement analysis — compare organic position with sponsored rows.
- Seller storefront audits — enumerate a seller's listed products.
- Product research — pull full specifications, gallery, variants, and BSR for a shortlist.
- Multi-marketplace checks — compare the same ASIN or keyword across 21 storefronts.
FAQ
Do I need Amazon cookies or an API key? No. The actor reads public search, category, seller, and product pages anonymously. No account, cookie, token, or API key is required.
Do ASIN inputs still search Amazon?
No. ASIN and product-URL modes fetch the exact /dp/{ASIN} page. Keyword mode is the only mode
that performs a search.
Why is listPrice missing on a product that shows a "Typical price"?
"Typical price" is not a strike-through list price. It is returned separately as typicalPrice,
and discountPercent is calculated only from a genuine current price plus list price. This
prevents fake discounts.
Why are Prime or sponsored fields missing from some records? Amazon does not render Prime icons or sponsored labels for every marketplace, exit country, or layout. The actor reports only what the page actually shows and never claims a product is "not Prime" from a missing badge.
Why do I get fewer results than maxPages suggests?
Amazon caps keyword search at page 7. Category listings can go deeper. For more than a keyword
surface allows, split the query by category, brand, or price band and combine the runs.
Does the actor need my proxy? No. Proxy selection is automatic: it uses an available non-residential Apify Proxy group in the marketplace's own country and never switches to residential billing on its own. There is no proxy input to configure.
Why do prices appear in a currency different from the marketplace domain?
Amazon localizes currency and delivery to the request's exit country. The actor sets the
marketplace country automatically and reports the resolved currency; cross-border renders can
still differ from the domain's nominal currency.
How expensive is detail enrichment?
Each detail page is a full Amazon product page (roughly 2.5-3.1 MB). Set
scrapeProductDetails to false for large listing runs and enable it only for a shortlist or
for ASIN/product-URL modes.
Is this affiliated with Amazon? No. It is an independent third-party actor that reads Amazon's public pages.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build aAJedoI4DhBVoe0x1. Documentation is regenerated from the default published build; private drafts are not included.