Amazon Seller Scraper — Profile + Live Listings, Flat Fee avatar

Amazon Seller Scraper — Profile + Live Listings, Flat Fee

Pricing

from $1.50 / 1,000 seller records

Go to Apify Store
Amazon Seller Scraper — Profile + Live Listings, Flat Fee

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

Steadyfetch Team

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

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-scraper
Input: { "sellers": ["A124O05NL4Z2HN"], "maxListingsPerSeller": 20 }
Output: one row per record; recordType is "profile" or "listing"; charged rows have
status "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 silently
swapped for amazon.com: the run returns one uncharged row naming the stores
that 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 planPrice per seller recordPer 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

InputExample
sellers (one per line)A124O05NL4Z2HN, https://www.amazon.com/s?me=A124O05NL4Z2HN, https://www.amazon.co.uk/sp?seller=…, or a /dp/ product link
marketplaceamazon.com (default), amazon.co.uk, amazon.de — applies to bare IDs only; a link always uses its own store
includeListingstrue (default); false returns one profile record per seller and makes no storefront request
maxListingsPerSeller100 (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

statusWhat happenedCharged?Worth re-running?
okA complete recordyes
amazon_retailNo 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 marketplacenonot there
no_listingsThe seller has a profile but nothing live on their storefront right now. The profile row is the whole answernono
not_a_productA listing on that storefront is one of Amazon's own subscription plans, not a product — no price, no seller, no reviews of its ownnono
not_foundNo seller page at that ID on that marketplace — wrong ID, or the account is closed therenono
blockedAmazon asked us to prove we are not a robot, on every route we triednoyes
parse_failedAmazon served a page in a layout we do not recognise. That one is on usnono
source_unavailableAmazon dropped or throttled the requestnoyes
invalid_inputA line was blank, not an Amazon link, or an Amazon link with no ID in it — the row says whichnono
cap_reached / stopped_at_limitA limit you set stopped the run; earlier rows were delivered normallynosee 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 pasteActor
ASINs or product URLsAmazon Product Scraper · Flat Fee
Search keywordsAmazon Search Scraper · Flat Fee
A Best Sellers categoryAmazon Bestsellers · Flat Fee
A seller ID or storefrontthis actor

The rest of the steadyfetch shelf — same contract everywhere: all-inclusive pay per event, no start fee, charged only on delivery.

FamilyActors
Ad creative intelligenceFacebook · Google Ads video · TikTok · LinkedIn · Google Ads text & OCR
Trends & keywordsGoogle Trends · Trends Now · Breakout keywords · Autocomplete keywords · Keyword volume & CPC · Social trends
YouTube transcriptsYouTube videos · YouTube channels
InstagramReel transcripts · Profile posts
JobsIndeed · Career sites by domain · Glassdoor · Multi-board · Google Jobs
AmazonProducts · Search · Bestsellers · Sellers
Any media fileSpeech 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.