# Amazon Seller Scraper - Ratings, Feedback & Business Info (`lsdflying/amazon-seller-scraper`) Actor

Scrape public Amazon seller profiles in US, UK, DE, FR, IT, ES, CA, JP and more: store name, star rating, feedback counts (30d/90d/12m/lifetime), positive %, recent feedback, business name, address & VAT (EU), product count and storefront. Input seller IDs, URLs or ASINs.

- **URL**: https://apify.com/lsdflying/amazon-seller-scraper.md
- **Developed by:** [Liang Undef](https://apify.com/lsdflying) (community)
- **Categories:** E-commerce, Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 seller profile scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Amazon Seller Scraper – Ratings, Feedback, Business Info & Storefront

**Amazon Seller Scraper** extracts public **Amazon seller profile** data (`amazon.<tld>/sp?seller=<ID>`) from **US, UK, DE, FR, IT, ES, NL, SE, PL, BE, CA, MX, BR, JP, AU, IN, AE, SA, SG and TR** marketplaces:

- ⭐ **Star rating** and **feedback counts for 30 days / 90 days / 12 months / lifetime**
- 👍 **Positive / neutral / negative %** and star distribution per period
- 💬 **Recent public feedback** (rating, text, date – *reviewer names are never collected*)
- 🏢 **Business name, business type, business address, VAT number, trade register number** where Amazon publicly displays them (EU "Detailed Seller Information")
- 🛍️ **Storefront URL, number of listed products and a sample of products** (ASIN, title, price, rating)

Input **seller IDs**, **seller/storefront URLs** or **ASINs** (the Actor finds the seller shown in the product's buy box). Plain HTTP requests – no browser – so it's fast and cheap.

### ⚠️ Proxy: datacenter for US, residential for EU

- **US (amazon.com)** seller pages work well with the default **Apify datacenter proxy**.
- **EU marketplaces (DE, FR, IT, ES, UK, NL, SE, PL, BE) and JP block datacenter IPs heavily.** In our tests only ~40–60% of EU seller pages loaded on datacenter proxy. For EU sellers, set **Proxy configuration → Residential** and **country = the marketplace country** (e.g. `DE` for amazon.de):

```json
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "DE" }
```

Run one marketplace per run when using a country-specific residential proxy. Each seller is retried at most 3 times; sellers that still fail are listed in `RUN_SUMMARY` and **are not charged**.

### Use cases

- **Supplier & competitor research** – compare seller ratings, volume (rating counts) and assortment size.
- **Brand protection** – identify who is selling your products and check their legal entity, address and VAT ID.
- **Due diligence / KYB** – verify Amazon sellers before partnering or buying an Amazon business (FBA aggregators).
- **Seller monitoring** – track rating and negative-feedback trends over time on a schedule.
- **B2B prospecting** – build lists of *business* sellers in a niche (company names, VAT, address – no personal emails/phones).

### Input

| Field | Description |
|---|---|
| `sellerIds` | Seller IDs, optionally with marketplace: `A294P4X9EWVXLJ`, `A3CN2Y0ZUINWU6:DE` |
| `sellerUrls` | `https://www.amazon.de/sp?seller=...` or storefront `https://www.amazon.com/s?me=...` |
| `asins` | `B088NRLMPV`, `B088NRLMPV:UK` or product URLs – seller(s) read from the buy box |
| `country` | Default marketplace for IDs/ASINs without one (default `US`) |
| `includeProducts` / `maxProductsPerSeller` | Storefront product count + sample |
| `maxFeedbackPerSeller` | Recent feedback texts to include |
| `includeAboutSeller` | Include the free-text "About seller" section (off by default, contacts removed) |
| `maxItems` | Max sellers to save |
| `proxyConfiguration` | Apify Proxy (datacenter by default; Residential recommended for large EU jobs) |

Example:

```json
{
  "sellerIds": ["A3CN2Y0ZUINWU6", "A1PY5LZZWKVRVS", "A2741ZCEBP08MD"],
  "country": "DE",
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "DE" },
  "includeProducts": true,
  "maxProductsPerSeller": 5
}
```

### Output

One item per seller and marketplace. Sample (real data, shortened):

```json
{
  "sellerId": "A3CN2Y0ZUINWU6",
  "country": "DE",
  "marketplace": "amazon.de",
  "sellerName": "pauls-muehle",
  "sellerUrl": "https://www.amazon.de/sp?seller=A3CN2Y0ZUINWU6",
  "storefrontUrl": "https://www.amazon.de/-/en/s?ie=UTF8&marketplaceID=A1PA6795UKMFR9&me=A3CN2Y0ZUINWU6",
  "rating": 4.9,
  "ratingCount12Months": 2373,
  "ratingCountLifetime": 31214,
  "positivePercent12Months": 97,
  "feedbackSummaryText": "5 out of 5 stars97% positive in the last 12 months (2373 ratings)",
  "feedback": {
    "last30Days": {
      "rating": 4.8,
      "ratingCount": 224,
      "positivePercent": 97,
      "neutralPercent": 0,
      "negativePercent": 2,
      "starPercents": {
        "1": 2,
        "2": 0,
        "3": 0,
        "4": 9,
        "5": 88
      },
      "starCounts": {
        "1": 4,
        "2": 0,
        "3": 1,
        "4": 21,
        "5": 198
      }
    },
    "last90Days": {
      "rating": 4.8,
      "ratingCount": 543,
      "positivePercent": 97,
      "neutralPercent": 1,
      "negativePercent": 3,
      "starPercents": {
        "1": 2,
        "2": 1,
        "3": 1,
        "4": 7,
        "5": 90
      },
      "starCounts": {
        "1": 10,
        "2": 4,
        "3": 6,
        "4": 36,
        "5": 487
      }
    },
    "last12Months": {
      "rating": 4.9,
      "ratingCount": 2373,
      "positivePercent": 97,
      "neutralPercent": 1,
      "negativePercent": 3,
      "starPercents": {
        "1": 2,
        "2": 1,
        "3": 1,
        "4": 4,
        "5": 93
      },
      "starCounts": {
        "1": 41,
        "2": 12,
        "3": 20,
        "4": 99,
        "5": 2201
      }
    },
    "lifetime": {
      "rating": 4.9,
      "ratingCount": 31214,
      "positivePercent": 98,
      "neutralPercent": 1,
      "negativePercent": 1,
      "starPercents": {
        "1": 1,
        "2": 0,
        "3": 1,
        "4": 4,
        "5": 94
      },
      "starCounts": {
        "1": 335,
        "2": 132,
        "3": 188,
        "4": 1327,
        "5": 29232
      }
    }
  },
  "sellerType": "Business seller",
  "businessName": null,
  "businessType": null,
  "businessAddress": null,
  "customerServiceAddress": null,
  "vatNumber": "DE236746231",
  "tradeRegisterNumber": null,
  "recentFeedback": [
    {
      "rating": 5,
      "text": "Lieferung kam pünktlich an.",
      "date": "26 October 2026",
      "amazonNote": null
    },
    {
      "rating": 5,
      "text": "Gut",
      "date": "26 October 2026",
      "amazonNote": null
    }
  ],
  "sourceAsin": null,
  "scrapedAt": "2026-10-26T14:55:17.672Z"
}

```

Dataset views: **Sellers**, **Business info**, **Feedback by period**. A `RUN_SUMMARY` record lists blocked responses and sellers that failed.

### Pricing

Pay per result: **$0.003 per seller profile** (Free plan users $0.004) plus a tiny start fee. You are only charged for sellers successfully saved – failed/blocked pages are free.

### Privacy & GDPR

- The Actor collects **only information Amazon publicly displays** on seller profile pages, without logging in.
- It **does not collect email addresses or phone numbers** (they are skipped in "Detailed Seller Information" and removed from free text).
- **Reviewer names are not collected** – only rating, text and date of feedback.
- For **individual (non-business) sellers in the EU, names and addresses are personal data under GDPR**. Only process them if you have a lawful basis (e.g. legitimate interest for brand protection), keep data minimal and delete it when no longer needed. The "About seller" text can contain names of individuals and is therefore **off by default**.
- You are responsible for complying with Amazon's terms and applicable laws when using the data.

### FAQ

**Where do I find a seller ID?**
Open the seller's name on a product page ("Sold by …") – the URL contains `seller=XXXXXXXXXXXX`. Storefront URLs contain `me=XXXXXXXXXXXX`.

**Why are VAT/business address empty for some sellers?**
Amazon shows "Detailed Seller Information" mainly on EU marketplaces and for business sellers. US pages usually show only business name and address.

**Why did a few sellers fail?**
Amazon rate-limits and blocks datacenter IPs, especially on EU marketplaces. The Actor retries each page up to 3 times with new sessions; anything still failing is listed in `RUN_SUMMARY` and is not charged. Use Residential proxy with the marketplace country for EU/JP. Sellers resolved from ASINs depend on Amazon showing a buy box for your proxy location.

**Can I get the full product catalogue of a seller?**
This Actor returns the product count and a first-page sample. Use our Amazon product scrapers for full catalogues.

# Actor input Schema

## `sellerIds` (type: `array`):

Amazon merchant/seller IDs (e.g. A294P4X9EWVXLJ). Add the marketplace after a colon to override the default country: A1PY5LZZWKVRVS:DE, A1PY5LZZWKVRVS:FR.

## `sellerUrls` (type: `array`):

Seller profile URLs (amazon.de/sp?seller=...) or storefront URLs (amazon.com/s?me=...). The marketplace is read from the URL.

## `asins` (type: `array`):

Product ASINs or product URLs. The Actor reads the seller(s) publicly shown in the product's buy box and scrapes their profiles. Use ASIN:COUNTRY (e.g. B088NRLMPV:US) to pick a marketplace. Best effort: products sold by Amazon or without a buy box have no third-party seller.

## `country` (type: `string`):

Marketplace used for seller IDs / ASINs without an explicit country.

## `includeProducts` (type: `boolean`):

Open each seller's storefront to get the number of listed products and a sample of them (1 extra request per seller).

## `maxProductsPerSeller` (type: `integer`):

How many storefront products to include (max 16 from the first page).

## `maxFeedbackPerSeller` (type: `integer`):

Number of recent public feedback texts (rating, text, date) to include. Reviewer names are never collected.

## `includeAboutSeller` (type: `boolean`):

Add the seller's free-text 'About seller' section (phone numbers and emails are removed). It can contain names of individuals (e.g. managing directors) - only enable if you have a lawful basis to process them.

## `maxItems` (type: `integer`):

Stop after saving this many sellers.

## `englishInterface` (type: `boolean`):

Add language=en\_\* to page URLs on non-English marketplaces. Usually not needed (labels in German/French/Italian/Spanish are understood too).

## `proxyConfiguration` (type: `object`):

Proxy used for requests (runs on your Apify account). Datacenter proxy (default) works for US seller pages. For EU marketplaces (DE, FR, IT, ES, UK, NL...) and JP, select RESIDENTIAL proxy group and set the proxy country to the marketplace country (e.g. DE for amazon.de) - datacenter IPs are often blocked there.

## `maxConcurrency` (type: `integer`):

Parallel requests. Keep low to avoid blocks.

## `debugSaveHtml` (type: `boolean`):

Save the first 10 fetched pages to the key-value store (for troubleshooting).

## Actor input object example

```json
{
  "sellerIds": [
    "A294P4X9EWVXLJ"
  ],
  "sellerUrls": [],
  "asins": [],
  "country": "US",
  "includeProducts": true,
  "maxProductsPerSeller": 5,
  "maxFeedbackPerSeller": 5,
  "includeAboutSeller": false,
  "maxItems": 10,
  "englishInterface": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxConcurrency": 2,
  "debugSaveHtml": false
}
```

# Actor output Schema

## `sellers` (type: `string`):

No description

## `business` (type: `string`):

No description

## `allData` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "sellerIds": [
        "A294P4X9EWVXLJ"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("lsdflying/amazon-seller-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "sellerIds": ["A294P4X9EWVXLJ"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("lsdflying/amazon-seller-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "sellerIds": [
    "A294P4X9EWVXLJ"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call lsdflying/amazon-seller-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lsdflying/amazon-seller-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/7NawHMHC98ShKmhiz/builds/d1Xu6iADtSJ84t3hV/openapi.json
