Amazon & Trendyol Product Price Scraper
Pricing
from $2.00 / 1,000 price & buybox trackeds
Amazon & Trendyol Product Price Scraper
Extract visible product prices, seller details, ratings and availability from public Amazon and Trendyol pages. Use structured snapshots for marketplace research. Blocked pages and missing fields can limit results.
Pricing
from $2.00 / 1,000 price & buybox trackeds
Rating
0.0
(0)
Developer
Scopras Data Labs
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Amazon & Trendyol Price and Buy Box Tracker
Track public Amazon and Trendyol product pages for price, seller, availability and Buy Box signals — and get the change since the last run, not just today's number.
Give it direct product URLs, or give it a search / listing URL and let it find the product links.
Trendyol note: Trendyol blocks data-center IPs. For Trendyol URLs set
proxyGroupsto["RESIDENTIAL"], otherwise those pages come back as blocked (blocked pages are never billed). Amazon works with the default proxy.
{"startUrls": [{ "url": "https://www.amazon.com/dp/B0EXAMPLE" },{ "url": "https://www.trendyol.com/marka/urun-adi-p-123456" }],"searchUrls": [{ "url": "https://www.amazon.com/s?k=mechanical+keyboard" }],"marketplace": "auto","maxProducts": 50,"includeUnchanged": false,"useApifyProxy": true,"proxyGroups": ["RESIDENTIAL"]}
{"marketplace": "trendyol","url": "https://www.trendyol.com/marka/urun-adi-p-123456","productId": "123456","title": "Marka Kablosuz Kulaklık","brand": "Marka","price": 1299.9,"currency": "TRY","seller": "Marka Resmi Mağaza","buyBoxSeller": "Marka Resmi Mağaza","isBuyBoxWinner": true,"availability": "InStock","rating": 4.4,"reviewCount": 2841,"offersObserved": 3,"previousPrice": 1499.9,"priceChange": -200,"priceChangePercent": -13.34,"status": "ok","checkedAt": "2026-08-28T09:00:00.000Z","error": null}
What this does that a generic scraper does not
Every row carries its own history. previousPrice, priceChange and
priceChangePercent are computed against the snapshot stored in the run's
key-value store, so a scheduled run is a change feed, not a re-scrape. Point
snapshotKeyValueStoreId at a named store to keep one history across runs.
Prices come out as numbers, in the right magnitude. "1.299,90" and
"1,299.90" are parsed to the same amount. priceText keeps the original
string so you can audit the parse.
A challenge page is never a price. Amazon and Trendyol return consent,
captcha and bot-protection pages under load. Those become status: "blocked"
and are never turned into a fabricated 0 or a stale number.
Proxy is on by default. Both marketplaces block most datacenter IPs. A
direct request is tried first; if it is empty or challenged and useApifyProxy
is on, the page is retried through Apify Proxy with rotation. RESIDENTIAL is
the most reliable group for marketplace pages.
Discovery is bounded. Search / listing URLs contribute the product links
found on the page, capped by maxProducts. The run never wanders past the cap.
Input
| Field | What it does |
|---|---|
startUrls | Direct Amazon / Trendyol product URLs |
searchUrls | Search or listing URLs; product links on them are added, up to maxProducts |
marketplace | auto, amazon or trendyol — filter seeds to one marketplace |
maxProducts | Hard cap on unique product pages fetched (1–500) |
requestTimeoutSecs | Per-request timeout (5–120) |
includeUnchanged | Keep rows with no price / seller / Buy Box change |
currency | Optional currency-code label; blank keeps the marketplace currency |
snapshotKeyValueStoreId | Named KV store for cross-run price history; blank uses the shared default |
useApifyProxy | Retry blocked pages through Apify Proxy (recommended on) |
proxyGroups | Optional proxy groups such as RESIDENTIAL |
Output
One row per product: identity, price / currency / priceText, seller /
buyBoxSeller / isBuyBoxWinner, availability, rating, reviewCount,
offersObserved, and the previousPrice / priceChange /
priceChangePercent delta. Only pages that were read successfully become
dataset rows. Blocked, unreadable or unsupported URLs are not added to the
dataset; they are listed with a reason under failures (and rejected inputs
under skippedInputs) in the SUMMARY record, so a run is always auditable.
A failed page never overwrites the last good price in the history store.
Only public amazon.* and trendyol.com URLs are accepted; duplicates of the
same product are fetched once.
Limits, stated plainly
- No JavaScript rendering. Prices drawn purely client-side with no markup
come back thin;
statussaysnot-foundrather than guessing. - Buy Box is a signal, not a scrape of the offer listing.
buyBoxSellermirrors the seller shown on the product page;offersObservedcounts offer-bearing JSON-LD blocks. - Discovery only sees links on the page given. It does not paginate a search result set.
- Use this Actor lawfully and respect each marketplace's terms, robots rules, rate limits and applicable competition / data-protection law.
Built alongside Scopras, an audit tool that grades a store's product data against what AI shopping agents need.