Amazon Product Details — Independent avatar

Amazon Product Details — Independent

Pricing

from $2.20 / 1,000 product rows

Go to Apify Store
Amazon Product Details — Independent

Amazon Product Details — Independent

Collect public Amazon product details, observed prices and stock evidence. Direct product URLs are cloud-validated; search and variant options have bounded local evidence only. Independent tool.

Pricing

from $2.20 / 1,000 product rows

Rating

0.0

(0)

Developer

tingyou333 zhuang

tingyou333 zhuang

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Extract publicly visible Amazon product information into structured records: ASIN, title, displayed price, stock text, images, specifications and linked variants. Use small snapshots for catalog research, price comparisons and availability checks. This is an independent tool, not affiliated with or endorsed by Amazon.

Coverage: direct product collection has passed a one-product cloud check. Search pagination and variant collection have bounded local evidence; complete search coverage, every variant, every country and delivery-location overrides are not guaranteed. Prices and availability reflect the anonymous page at collection time.

Quick start

  1. Add a public Amazon product URL to categoryOrProductUrls.
  2. Start with one result and proxy use disabled. The input below is the actual input used for the verified cloud sample.
  3. Download the product dataset as JSON, CSV or Excel. Check the SUMMARY record for missing fields, blocked pages and collection limits.
{
"categoryOrProductUrls": [
{
"url": "https://www.amazon.com/dp/B0G8M2FH2G"
}
],
"maxItemsPerStartUrl": 1,
"maxSearchPagesPerStartUrl": 1,
"maxProductVariantsAsSeparateResults": 0,
"maxOffers": 0,
"scrapeSellers": false,
"maxRequests": 3,
"maxConcurrency": 1,
"requestTimeoutSecs": 20,
"maxRetries": 1,
"maxRunSeconds": 90,
"useProxy": false,
"dnsMode": "system"
}

For search, use a normal Amazon /s URL such as https://www.amazon.com/s?k=keyboard, set maxSearchPagesPerStartUrl to a small number, and choose whether to fetch detailed product pages with scrapeProductDetails. Search-card mode (false) is lighter and leaves detail-only fields, including stock, unknown.

For variants, set maxProductVariantsAsSeparateResults above zero to emit linked sibling products. scrapeProductVariantPrices=true requests sibling detail pages for prices. These options use additional requests and can stop before the complete family is fetched.

Inputs

InputDefaultBehavior
categoryOrProductUrlsRequiredPublic product or /s search/category URLs, as strings or { "url": "..." } objects. URL filters and sort order are retained.
maxItemsPerStartUrl100Maximum persisted rows per starting URL, including separate variants. 0 returns no rows.
maxSearchPagesPerStartUrl9999Maximum search pages; request, row and time budgets normally stop a small run sooner.
scrapeProductDetailstrueVisit each found product for details; false emits source search cards with unavailable detail fields null.
maxProductVariantsAsSeparateResults0Maximum sibling variants emitted as separate rows.
scrapeProductVariantPricesfalseFetch sibling prices; missing prices stay null.
maxVariantRequestsPerProduct20Cap on variant-page requests per product. Partial coverage is reported.
languageSite defaultRequest a mapped locale; unsupported market/language combinations fall back with a warning.
maxRequests40Maximum HTTP attempts, including redirects and retries.
maxConcurrency2Concurrent requests, supported range 1–4; larger values fail validation.
requestTimeoutSecs / maxRetries15 / 1Bounded attempt timeout and transient retries. Challenges and HTTP 403/404 are not retried.
maxRunSeconds105Collection deadline, maximum 105 seconds.
useProxy / proxyConfigurationfalse / disabledOptional user-owned Apify or HTTP proxy. Default collection needs no proxy. Real paid-proxy behavior has not been accepted in live testing.
proxyCountryAUTO_SELECT_PROXY_COUNTRYApplies when using your Apify proxy; it does not control a direct request's geography.
dnsModesystemOptional google-doh mode for synthetic local DNS; public-IP and TLS checks remain enabled.
maxTotalChargeUsdNo extra input capAdditional output-event fee cap if result billing is active. It does not cap platform compute/storage/network costs.

The exposed optional enrichment inputs maxOffers and scrapeSellers have limited public-page parsers but no successful complete live acceptance. Leave them at 0 and false for the advertised product-detail workflow. Missing offer/seller layouts appear in SUMMARY.

Delivery overrides countryCode and zipCode are unsupported and fail explicitly. locationDeliverableRoutes cannot enable them. useCaptchaSolver=true is rejected. Shortened URLs, request-list files, bestsellers entry workflows and non-GET requests are unsupported. Although /b URL syntax is accepted, category-node behavior has not been validated; use documented /s category URLs.

Output

FieldTypeMeaning
asin, title, urlStringProduct identity and canonical public URL.
price, listPrice, shippingPriceObject or null{ "value": number, "currency": string } using the displayed code or symbol. Missing is not zero.
inStock, inStockTextBoolean/string or nullExplicit page availability. Unknown stock is null, not false.
brand, features, descriptionString/array or nullVisible catalog content when the supported layout provides it.
thumbnailImage, galleryThumbnails, highResolutionImagesString/array or nullImages exposed in the product's public gallery.
stars, reviewsCountNumber or nullVisible aggregate rating information; customer review text is not crawled.
variantAsins, variantDetails, variantAttributesArray or nullPublicly linked siblings and selected dimensions. Child prices require enrichment and may remain null.
priceRangeObject or nullRange of observed child prices. Read _source.priceRangeCoverage; an incomplete subset is not the full-family range.
categoryPageDataObject or nullSource search URL, page number, position and available sponsorship/badge information.
_sourceObjectFetch time, page type, response hash, displayed currency interpretation, and missing-field/coverage information.

Additional compatible field names are retained, but presence in the schema is not a completeness promise. Sustainability features, video counts, product comparisons and bestsellers metadata are unimplemented; complex A+/brand-story content is partial. Error records never enter the product dataset: diagnostics and stop reasons belong to SUMMARY.

Actual output example

This excerpt is from the one-product cloud sample captured on 26 September 2026 (UTC). It is a historical observation, not a current price quote. Copy the input in Quick start and inspect the selected output fields below. The dated sample and its coverage are described in Latest acceptance sample.

{
"asin": "B0G8M2FH2G",
"title": "SANDISK 256B Extreme microSD Card + Adapter, Up to 245MB/s Read Speeds",
"url": "https://www.amazon.com/dp/B0G8M2FH2G",
"price": {
"value": 74.99,
"currency": "$"
},
"inStock": true,
"inStockText": "In Stock",
"_source": {
"currencyCode": null,
"retrievedAt": "2026-09-26T18:39:34.575695+00:00",
"httpStatus": 200
}
}

The raw $ symbol is preserved and _source.currencyCode stays null because the specific dollar currency was not established. Amazon.com does not imply USD. Other observed pages displayed KRW; no currency conversion or forced relabeling is performed. _source.marketplaceDefaultCurrency is geographic context only. The source title is preserved as received, including its spelling.

Search, variants and availability limits

  • Search follows actual Next links, keeping URL-level filters and sort settings. It preserves source order and sponsored results. It stops on row/page/request/time limits, missing Next links and repeated pages/products. It does not invent pages or locally remove results based on guessed relevance.
  • Deduplication is global by marketplace host and ASIN, so the same product encountered under multiple starting URLs can appear once.
  • Local samples followed two pages with 37 rows/33 displayed prices, and a filtered/sorted search with 32 rows/31 prices. These are bounded observations, not a success-rate or all-filters guarantee.
  • A linked variant's price and stock were verified, with price coverage only 1 of 12 discovered variants. Full-family extraction is not claimed.
  • Locale, shipping context, currency and source layout can change the offer shown. No all-country or native GBP/EUR/JPY coverage claim is made.
  • A random query returned product cards rather than an explicit empty-result message. Genuine empty-result handling has offline tests but no passing live empty-page example.
  • The Actor uses anonymous public HTTP pages. It does not log in, read personal cookies, solve CAPTCHAs or include a browser-rendering fallback in its runtime image.

Pricing

The paid unit is one valid product row saved in the default dataset. Each separately saved record is another row. Inline arrays do not create extra row events. Failed requests, duplicate rows and diagnostic records do not create result events. A valid source record may have nullable optional fields; a row charge does not guarantee every field.

Apify planUSD per rowUSD per 1,000 rows
FREE0.0044.00
BRONZE0.00343.40
SILVER0.00282.80
GOLD0.00222.20
PLATINUM0.00222.20
DIAMOND0.00222.20

There is no startup event fee. FREE names the Apify subscription tier; it does not mean results are free. The Pricing tab shows the active rate before a run.

Apify platform compute, storage and transfer are charged separately, including for failed or empty runs. An explicitly enabled proxy can add provider fees. A row limit is not an all-inclusive dollar cap. Use small inputs first and inspect actual run usage. Historical owner test runs are not customer revenue or cost forecasts.

API usage

Use the existing Actor ID with an Apify token supplied through your environment. Access and active pricing depend on the Actor's current platform settings.

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("SSTtC20zO6CRpgqnf").call(
run_input={
"categoryOrProductUrls": [{"url": "https://www.amazon.com/dp/B0G8M2FH2G"}],
"maxItemsPerStartUrl": 1,
"maxRequests": 3,
"maxConcurrency": 1,
"maxRunSeconds": 90,
"useProxy": False,
},
memory_mbytes=256,
timeout_secs=120,
)
products = client.dataset(run["defaultDatasetId"]).list_items().items
summary = client.key_value_store(run["defaultKeyValueStoreId"]).get_record("SUMMARY")

You can use Apify schedules and dataset integrations for repeated snapshots. Review SUMMARY and actual costs alongside each dataset; a completed run does not guarantee every requested field or page was available.

FAQ

Can I get a price for every product? No. Anonymous delivery context or an unsupported source layout may hide offers. Missing prices remain null and product rows can still be charged if result billing is active.

Can I choose a ZIP code or delivery country? No. Those overrides explicitly fail. An optional proxy country is a network setting and is not a delivery-address substitute.

Are search and variants supported? Bounded HTTP collection is implemented and has local examples. The accepted cloud sample covers one direct product; broader cloud search/variant coverage is unverified.

Does this replace Junglee's full Amazon crawler? No. Some input/output names are compatible, but optional enrichment, nested shapes, delivery controls and coverage differ. Review Inputs, Output, and Search, variants and availability limits before migrating; these sections state the supported fields and material differences.

Why is a field null or an array incomplete? The source did not supply supported data, the layout was unsupported, or collection reached a cap. Inspect _source.missingFields, variant coverage and SUMMARY; nulls and partial arrays are not invented values.

Why does SUMMARY.releaseReady say false? That legacy field is always false in this version; it is not a live test of dataset availability or a run failure. Check the actual fields, status, errors and coverage instead.

Is this an official Amazon product? No. The icon uses an official-site identification asset with an independent-tool label; Amazon does not endorse this Actor.

Latest acceptance sample

The quickstart input was checked in Apify Cloud on 2026-09-26 (UTC; run finished at 2026-09-26T18:39:36.927Z). It saved 1 valid rows. The output example on this page copies real source values from that dataset; it is a dated sample, not current inventory or a current quote.

One direct product, ASIN B0G8M2FH2G, returned a displayed price of 74.99 with the source dollar symbol and explicit In Stock text. The currency code remains unknown. Search and variants have bounded local evidence only.