Amazon Seller Scraper — Profile + Live Listings, Flat Fee
Pricing
from $1.50 / 1,000 seller records
Amazon Seller Scraper — Profile + Live Listings, Flat Fee
Any Amazon seller by ID, storefront or URL: name, feedback from 30 days to lifetime, registered business details, plus a full product row for every live listing. From $1.50 per 1,000 seller records, one flat fee, no add-on events. Blocked or missing sellers are never charged.
Pricing
from $1.50 / 1,000 seller records
Rating
0.0
(0)
Developer
Steadyfetch Team
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Amazon Seller Scraper · Flat Fee
Paste an Amazon seller ID or a storefront link and get the seller's profile plus their live listings — feedback history, registered business details, and a full product row for every item they sell. One flat fee per record. There is no second event to pay for, and sellers we could not deliver are never charged.
Give it A124O05NL4Z2HN, or the storefront link, or the profile link, or even a product link whose seller you want. Get finished records back.
Unofficial. This actor is not affiliated with, endorsed by, or sponsored by Amazon. "Amazon" and all related marks are trademarks of Amazon.com, Inc. or its affiliates. It reads only the public seller pages an ordinary browser sees. It never signs in and never touches an account.
Output
Two record types in one dataset, told apart by recordType. Every column exists on every row and is null where it does not apply, so the whole run exports to one CSV.
A profile record:
{"recordType": "profile","sellerId": "A124O05NL4Z2HN","sellerName": "decorUhome","marketplace": "amazon.com","storefrontUrl": "https://www.amazon.com/s?ie=UTF8&marketplaceID=ATVPDKIKX0DER&me=A124O05NL4Z2HN","sellerRating": 4.9,"sellerRatingCount": 4396,"positivePercent12m": 100,"feedback30d": { "rating": 4.8, "count": 114 },"feedback90d": { "rating": 4.9, "count": 299 },"feedback12m": { "rating": 4.9, "count": 1233 },"feedbackLifetime": { "rating": 4.9, "count": 4396 },"businessName": "…","businessType": null,"businessAddress": "…, CN","country": "CN","vatNumber": null,"tradeRegisterNumber": null,"about": "decorUhome is committed to providing …","listingCount": 302,"charged": true,"status": "ok"}
A listing record carries the same full product row Amazon Product Scraper · Flat Fee returns — asin, title, brand, price, currency, listPrice, inStock, availability, buyBoxSeller, buyBoxSellerId, fulfilledByAmazon, soldByAmazon, buyBoxNote, rating, reviewCount, boughtInPastMonth, images, features, variants, categoryPath, bestSellersRank, specs — plus listingRank, listingPage and the seller it belongs to.
sellerRating and sellerRatingCount are the seller's stars; rating and reviewCount on a listing row are the product's. One column never means two things.
Fields Amazon does not always publish
businessName, businessAddress and country are on most third-party profiles. vatNumber, tradeRegisterNumber, businessType, about and returnPolicy are genuinely sparse — many sellers simply do not publish them, and EU sellers publish more than US ones. Those columns come back null when the seller left them blank. That is data, not a failure, and it is stated here rather than sold as a promise.
listingCount is Amazon's own total for the storefront, so you can see when your maxListingsPerSeller truncated the answer. It is null when listings are turned off.
Seller phone numbers and email addresses appear on some EU profiles. This actor does not return them and has no column for them.
The last row of every run is a summary carrying requested, profiles, listings, sellerMisses, listingMisses, chargedRows and unchargedRows — so the invoice reconciles from the dataset itself, without opening the billing tab.
Browse the full live example dataset → — one real run of the current code, unedited: the Electronics Expo (Authorized Dealer) profile record, one of its live listings with the Sold-by cluster populated, and the run's own cap_reached summary row last. Two records delivered, two charged.
For AI agents & LLMs — copy this block
Actor: steadyfetch/amazon-seller-scraperInput: { "sellers": ["A124O05NL4Z2HN"], "maxListingsPerSeller": 20 }Output: one row per record; recordType is "profile" or "listing"; charged rows havestatus "ok" and charged true.Pricing: one priced event ("seller-record"), all-inclusive, no start fee, no add-ons.A profile and a listing cost the same flat fee.Misses: amazon_retail / no_listings / not_found / not_a_product / blocked /parse_failed / source_unavailable ship as rows with charged:false.Notes: omit an optional field or send it as null — both mean "use the default", the"marketplace" dropdown included. A store it does not offer is not silentlyswapped for amazon.com: the run returns one uncharged row naming the storesthat work. "sellers" is the one field that must carry a real value.Limits are hard limits.
Works over the Apify API, MCP, n8n and Make. Running it with an empty seller list returns uncharged sample rows, so a workflow can be wired up and tested before it costs anything.
What one record costs
One priced event, Seller record, and nothing else. No start fee, no per-seller fee, no per-field fee, no "detail" upcharge. A seller profile and one of that seller's listings cost exactly the same flat fee. The store header reads from $1.50/1,000 seller records.
| Your Apify plan | Price per seller record | Per 1,000 seller records |
|---|---|---|
| Apify Free plan | $0.006 | $6.00 |
| Bronze | $0.0035 | $3.50 |
| Silver | $0.0022 | $2.20 |
| Gold, Platinum, Diamond | $0.0015 | $1.50 |
The header shows the Gold price. The whole ladder is printed here because an actor whose promise is billing honesty cannot have an undisclosed tier ladder.
Work out a run before you start it. One seller with listings on = 1 profile record + up to maxListingsPerSeller listing records. Five sellers at the default 100 listings each is at most 505 records. Set Max records (whole run) if you want a hard ceiling, or turn listings off to pay for profiles only.
What can fail, and what a failure costs you: nothing. The two misses you will actually see are amazon_retail (the id has no seller profile on that marketplace — Amazon's own retail accounts, or a real seller not registered in that country's store) and no_listings (a real seller with nothing live on their storefront right now). Both ship as real rows carrying charged: false, as do not_found, blocked, parse_failed, source_unavailable and invalid_input. A row is charged only if it is a record.
What you give it
| Input | Example |
|---|---|
sellers (one per line) | A124O05NL4Z2HN, https://www.amazon.com/s?me=A124O05NL4Z2HN, https://www.amazon.co.uk/sp?seller=…, or a /dp/ product link |
marketplace | amazon.com (default), amazon.co.uk, amazon.de — applies to bare IDs only; a link always uses its own store |
includeListings | true (default); false returns one profile record per seller and makes no storefront request |
maxListingsPerSeller | 100 (default), max 300 |
A product link is resolved to its Buy Box seller. That costs one extra lookup, and that lookup is never charged on its own — if the Buy Box turns out to be Amazon itself, you get a guidance row and pay nothing.
Marketplaces: amazon.com, amazon.co.uk, amazon.de. Only three because only three are tested end to end; other Amazon domains are refused with a clear message rather than half-working. Amazon runs a separate seller directory per country, so a seller registered in one store can legitimately be absent from another.
Every way a seller can fail to be a record
status | What happened | Charged? | Worth re-running? |
|---|---|---|---|
ok | A complete record | yes | — |
amazon_retail | No seller profile at that ID on that marketplace: either one of Amazon's own retail accounts (what the Buy Box shows when Amazon is the seller) or a real seller not registered in that country's store — the row suggests re-running with the seller's own marketplace | no | not there |
no_listings | The seller has a profile but nothing live on their storefront right now. The profile row is the whole answer | no | no |
not_a_product | A listing on that storefront is one of Amazon's own subscription plans, not a product — no price, no seller, no reviews of its own | no | no |
not_found | No seller page at that ID on that marketplace — wrong ID, or the account is closed there | no | no |
blocked | Amazon asked us to prove we are not a robot, on every route we tried | no | yes |
parse_failed | Amazon served a page in a layout we do not recognise. That one is on us | no | no |
source_unavailable | Amazon dropped or throttled the request | no | yes |
invalid_input | A line was blank, not an Amazon link, or an Amazon link with no ID in it — the row says which | no | no |
cap_reached / stopped_at_limit | A limit you set stopped the run; earlier rows were delivered normally | no | see resumeCursor |
Limits are exact
Max listings per seller, Max records (whole run), Max run seconds and the run's own maximum total charge all stop the run cleanly: it still finishes as SUCCEEDED, the summary row names the one setting that stopped it, and resumeCursor lists the sellers still to do.
FAQ
Where do I find a seller ID? On any product page, the "Sold by" link in the Buy Box points at /sp?seller=… — that value is the ID. Or paste the product link itself and let this actor resolve it.
Why did my seller ID return amazon_retail? Because that marketplace has no seller profile at that ID. Usually the Buy Box seller is Amazon itself — Amazon's own retail accounts have no storefront to scrape. It is also what a real seller ID returns on a marketplace the seller is not registered in: re-run with the marketplace the seller actually trades on. Nothing was charged either way.
Can I scrape an Amazon seller without an API key? Yes — that is what this is. No Amazon account, no SP-API keys, no seller credentials.
Does it get every listing a seller has? Up to maxListingsPerSeller, in the seller's own storefront order, paging as needed. listingCount tells you the seller's true total.
What does it cost per 1,000 seller records? From $1.50/1,000 on Gold and above; see the ladder above. Nothing else is billable.
Why is a price null, or in a currency I did not expect? Amazon did not print one, or served the page from an unexpected region — priceNote says which. The delivery location is pinned to the marketplace's own country to keep this rare.
Honesty contract
Amazon changes its pages often. When a seller can't be looked up, or a listing can't be fetched or parsed, we return it with an honest status and never charge for it.
This actor may fail when the platform changes things — failed items are never charged.
Issues are answered in about three hours during working hours. If a field ever comes back empty that should not be, open an issue with the seller ID and it gets fixed.
Steadyfetch Amazon suite
One actor per entry point, the same product row underneath. All-inclusive pay per event, no start fee, charged only on delivery.
| What you paste | Actor |
|---|---|
| ASINs or product URLs | Amazon Product Scraper · Flat Fee |
| Search keywords | Amazon Search Scraper · Flat Fee |
| A Best Sellers category | Amazon Bestsellers · Flat Fee |
| A seller ID or storefront | this actor |
The rest of the steadyfetch shelf — same contract everywhere: all-inclusive pay per event, no start fee, charged only on delivery.
| Family | Actors |
|---|---|
| Ad creative intelligence | Facebook · Google Ads video · TikTok · LinkedIn · Google Ads text & OCR |
| Trends & keywords | Google Trends · Trends Now · Breakout keywords · Autocomplete keywords · Keyword volume & CPC · Social trends |
| YouTube transcripts | YouTube videos · YouTube channels |
| Reel transcripts · Profile posts | |
| Jobs | Indeed · Career sites by domain · Glassdoor · Multi-board · Google Jobs |
| Amazon | Products · Search · Bestsellers · Sellers |
| Any media file | Speech to Text · any link or file |
Feedback & support
Open an issue on the actor's Issues tab with the seller ID you used. Fields that come back empty when they should not are treated as bugs, not as expected behaviour.