Nimbryxo Studio

Amazon Third-Party Seller Profile & Storefront Catalog

Look up an Amazon third-party seller's public business details, feedback history and ratings histogram, plus every product listed in their storefront, by seller ID or product URL.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringrequiredPROFILE fetches only the seller profile page. PRODUCTS fetches only the seller's storefront catalog. BOTH fetches both for every resolved seller.
sellerIdsarrayoptionalAmazon seller/merchant IDs (e.g. A294P4X9EWVXLJ). Accepts bare IDs or IDs embedded in a seller/storefront URL.
productUrlsarrayoptionalAmazon product page URLs (e.g. https://www.amazon.com/dp/ASIN). The seller ID is auto-derived from each product's buy-box "sold by" seller link.
Show all input fields
FieldTypeRequiredDescription
modestringrequiredPROFILE fetches only the seller profile page. PRODUCTS fetches only the seller's storefront catalog. BOTH fetches both for every resolved seller.
sellerIdsarrayoptionalAmazon seller/merchant IDs (e.g. A294P4X9EWVXLJ). Accepts bare IDs or IDs embedded in a seller/storefront URL.
productUrlsarrayoptionalAmazon product page URLs (e.g. https://www.amazon.com/dp/ASIN). The seller ID is auto-derived from each product's buy-box "sold by" seller link.
marketplacestringoptionalAmazon marketplace/domain to scrape sellers on. Overrides the domain inferred from productUrls when both are provided.
maxProductPagesintegeroptionalMaximum number of /s?me= storefront pages to fetch per seller (mode=PRODUCTS or BOTH). Each page holds up to ~16 products.
includeBusinessDetailsbooleanoptionalIf true, includes the seller's publicly-displayed legal business name, business address, and customer-service phone number (data Amazon itself shows on the public seller profile page -- not customer-level personal data).
sortBystringoptionalSort order for the seller's storefront catalog (mode=PRODUCTS or BOTH), matching Amazon's own storefront "Sort by" dropdown. Leave blank for Amazon's default (Featured).
useResidentialProxybooleanoptionalBy default the actor uses datacenter (AUTO) proxies with a homepage-priming technique that reliably bypasses Amazon's cold-navigation block, escalating to residential proxies automatically only if repeated blocks occur. Enable this to force residential proxies (more reliable but more expensive) from the start.
proxyCountrystringoptionalProxy country for geo-targeting. Use AUTO to automatically select based on the Amazon marketplace/domain.

Download the published input schema

View complete JSON
{
  "description": "Scrape Amazon third-party seller profiles and storefront catalogs. Provide one or more seller IDs directly, and/or product URLs to auto-derive the seller ID from the buy-box seller link.",
  "properties": {
    "includeBusinessDetails": {
      "default": true,
      "description": "If true, includes the seller's publicly-displayed legal business name, business address, and customer-service phone number (data Amazon itself shows on the public seller profile page -- not customer-level personal data).",
      "prefill": true,
      "title": "Include Business Details",
      "type": "boolean"
    },
    "marketplace": {
      "default": "US",
      "description": "Amazon marketplace/domain to scrape sellers on. Overrides the domain inferred from productUrls when both are provided.",
      "editor": "select",
      "enum": [
        "US",
        "CA",
        "MX",
        "BR",
        "IE",
        "ES",
        "GB",
        "FR",
        "BE",
        "NL",
        "DE",
        "IT",
        "SE",
        "ZA",
        "PL",
        "EG",
        "TR",
        "SA",
        "AE",
        "IN",
        "SG",
        "AU",
        "JP"
      ],
      "enumTitles": [
        "United States (amazon.com)",
        "Canada (amazon.ca)",
        "Mexico (amazon.com.mx)",
        "Brazil (amazon.com.br)",
        "Ireland (amazon.ie)",
        "Spain (amazon.es)",
        "United Kingdom (amazon.co.uk)",
        "France (amazon.fr)",
        "Belgium (amazon.com.be)",
        "Netherlands (amazon.nl)",
        "Germany (amazon.de)",
        "Italy (amazon.it)",
        "Sweden (amazon.se)",
        "South Africa (amazon.co.za)",
        "Poland (amazon.pl)",
        "Egypt (amazon.eg)",
        "Turkey (amazon.com.tr)",
        "Saudi Arabia (amazon.sa)",
        "United Arab Emirates (amazon.ae)",
        "India (amazon.in)",
        "Singapore (amazon.sg)",
        "Australia (amazon.com.au)",
        "Japan (amazon.co.jp)"
      ],
      "prefill": "US",
      "title": "Marketplace",
      "type": "string"
    },
    "maxProductPages": {
      "default": 3,
      "description": "Maximum number of /s?me= storefront pages to fetch per seller (mode=PRODUCTS or BOTH). Each page holds up to ~16 products.",
      "maximum": 20,
      "minimum": 1,
      "prefill": 1,
      "title": "Max Storefront Pages Per Seller",
      "type": "integer"
    },
    "mode": {
      "default": "BOTH",
      "description": "PROFILE fetches only the seller profile page. PRODUCTS fetches only the seller's storefront catalog. BOTH fetches both for every resolved seller.",
      "editor": "select",
      "enum": [
        "PROFILE",
        "PRODUCTS",
        "BOTH"
      ],
      "enumTitles": [
        "Seller profile only",
        "Seller storefront products only",
        "Both profile and products"
      ],
      "prefill": "BOTH",
      "title": "Mode",
      "type": "string"
    },
    "productUrls": {
      "default": [],
      "description": "Amazon product page URLs (e.g. https://www.amazon.com/dp/ASIN). The seller ID is auto-derived from each product's buy-box \"sold by\" seller link.",
      "editor": "stringList",
      "example": [
        "https://www.amazon.com/dp/B0BTYCRJSS"
      ],
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Product URLs",
      "type": "array"
    },
    "proxyCountry": {
      "default": "AUTO",
      "description": "Proxy country for geo-targeting. Use AUTO to automatically select based on the Amazon marketplace/domain.",
      "editor": "select",
      "enum": [
        "AUTO",
        "US",
        "CA",
        "MX",
        "BR",
        "IE",
        "ES",
        "GB",
        "FR",
        "BE",
        "NL",
        "DE",
        "IT",
        "SE",
        "ZA",
        "PL",
        "EG",
        "TR",
        "SA",
        "AE",
        "IN",
        "SG",
        "AU",
        "JP"
      ],
      "enumTitles": [
        "Auto (based on marketplace)",
        "United States",
        "Canada",
        "Mexico",
        "Brazil",
        "Ireland",
        "Spain",
        "United Kingdom",
        "France",
        "Belgium",
        "Netherlands",
        "Germany",
        "Italy",
        "Sweden",
        "South Africa",
        "Poland",
        "Egypt",
        "Turkey",
        "Saudi Arabia",
        "United Arab Emirates",
        "India",
        "Singapore",
        "Australia",
        "Japan"
      ],
      "prefill": "AUTO",
      "title": "Proxy Country",
      "type": "string"
    },
    "sellerIds": {
      "default": [],
      "description": "Amazon seller/merchant IDs (e.g. A294P4X9EWVXLJ). Accepts bare IDs or IDs embedded in a seller/storefront URL.",
      "editor": "stringList",
      "example": [
        "A294P4X9EWVXLJ"
      ],
      "items": {
        "type": "string"
      },
      "prefill": [
        "A294P4X9EWVXLJ"
      ],
      "title": "Seller IDs",
      "type": "array"
    },
    "sortBy": {
      "default": "",
      "description": "Sort order for the seller's storefront catalog (mode=PRODUCTS or BOTH), matching Amazon's own storefront \"Sort by\" dropdown. Leave blank for Amazon's default (Featured).",
      "editor": "select",
      "enum": [
        "",
        "relevanceblender",
        "price-asc-rank",
        "price-desc-rank",
        "review-rank",
        "date-desc-rank",
        "exact-aware-popularity-rank"
      ],
      "enumTitles": [
        "Default (Featured)",
        "Featured",
        "Price: Low to High",
        "Price: High to Low",
        "Avg. Customer Review",
        "Newest Arrivals",
        "Best Sellers"
      ],
      "prefill": "",
      "title": "Storefront Sort Order",
      "type": "string"
    },
    "useResidentialProxy": {
      "default": false,
      "description": "By default the actor uses datacenter (AUTO) proxies with a homepage-priming technique that reliably bypasses Amazon's cold-navigation block, escalating to residential proxies automatically only if repeated blocks occur. Enable this to force residential proxies (more reliable but more expensive) from the start.",
      "prefill": false,
      "title": "Use Residential Proxy",
      "type": "boolean"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Amazon Seller & Shop Scraper Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
recordsstringoptionalDataset containing all scraped seller profile and seller-storefront product records.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Seller profile records (business name/address/phone, ratings, feedback windows), seller storefront product records, and one storefront-facets record per seller (refinement facets + available sort options) from Amazon.",
  "properties": {
    "records": {
      "description": "Dataset containing all scraped seller profile and seller-storefront product records.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Seller & product records",
      "type": "string"
    }
  },
  "title": "Amazon Third-Party Seller Profile & Storefront Catalog Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {
          "positivePercent12m": {
            "format": "number",
            "label": "Positive % (12mo)"
          },
          "price": {
            "format": "object",
            "label": "Price"
          },
          "recordType": {
            "format": "text",
            "label": "Record Type"
          },
          "scrapedAt": {
            "format": "date",
            "label": "Scraped At"
          },
          "sellerId": {
            "format": "text",
            "label": "Seller ID"
          },
          "sellerName": {
            "format": "text",
            "label": "Seller Name"
          },
          "starRating": {
            "format": "number",
            "label": "Star Rating"
          },
          "title": {
            "format": "text",
            "label": "Product Title"
          }
        }
      },
      "title": "Sellers & Products",
      "transformation": {
        "fields": [
          "recordType",
          "sellerId",
          "sellerName",
          "title",
          "price",
          "starRating",
          "positivePercent12m",
          "scrapedAt"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

Amazon Third-Party Seller Profile & Storefront Catalog

Every third-party seller on Amazon has a public profile page and a storefront of their own listings. This actor turns both into structured records — the seller's business identity, feedback history and ratings histogram from the profile, and every product currently listed in their storefront catalog. No login or cookies required.

What this actor does

  • Three modes: PROFILE (seller profile only), PRODUCTS (storefront catalog only), BOTH (default)
  • Two input paths: supply seller IDs directly, or supply product URLs and the actor auto-derives the seller ID from each product's buy-box "sold by" link
  • Seller feedback windows: 30-day, 90-day, 12-month, and lifetime rating + ratings-count, whichever windows Amazon actually shows for that seller
  • Feedback histogram: percentage breakdown across 5/4/3/2/1 stars
  • Public business data: legal business name, business address, and customer-service phone number — data Amazon itself displays publicly on the seller profile page (toggle off with includeBusinessDetails)
  • Storefront catalog: reuses the standard Amazon search-result card schema (title, price, rating, image, badges) for every product in the seller's shop
  • 23 Amazon marketplaces supported (all browser-verified)
  • Empty fields are omitted — no null placeholders, no fabricated data

Output: seller profile record (recordType: "sellerProfile")

  • sellerId, sellerName, profileUrl, storefrontUrl
  • starRating — overall star rating shown in the page header
  • positivePercent12m, ratingsCount12m — 12-month positive-feedback percent and count (when shown)
  • positivePercentWindow, positivePercent, positivePercentRatingsCount — the exact window Amazon's own page header currently displays (usually 12 months, but not guaranteed)
  • feedbackWindows[] — {window, starRating, ratingsCount} for each of 30 days / 90 days / 12 months / lifetime that Amazon actually shows data for
  • feedbackHistogram — {"5": {percent}, "4": {percent}, ...}
  • aboutText — the seller's "About" description
  • phone — customer-service phone number (public, includeBusinessDetails=true)
  • businessName, businessAddress — public legal business identity (includeBusinessDetails=true). For the common 5-line Western format, businessAddress is {street, city, state, zip, country}; for addresses that don't fit that exact 5-line shape (common among non-Western/international sellers), businessAddress is instead {addressLines: [...]} — the real, ordered address lines exactly as Amazon renders them, never force-fit into the wrong field
  • returnRefundPolicyText, shippingPolicyText, privacyPolicyText — the seller's own return/refund, shipping, and privacy-notice text, when Amazon's page renders one
  • scrapedAt

Output: seller product record (recordType: "sellerProduct")

  • asin, sellerId, title, url
  • price {value, currency, display}, listPrice
  • stars, reviewsCount
  • thumbnailImage
  • prime, sponsored, resultType (ORGANIC/SPONSORED), badge
  • boughtInPastMonth
  • position {page, positionOnPage, globalPosition}
  • scrapedAt

Output: storefront facets record (recordType: "storefrontFacets")

One record per seller (mode PRODUCTS/BOTH), built from the storefront's own refinement rail and sort dropdown — lets you discover what departments/filters and sort orders exist for a seller's catalog before deciding what to request.

  • sellerId, storefrontUrl
  • facets[] — {groupName, label, url, selected, refinementParameter?} from the storefront's #s-refinements rail (Department, Delivery Day, Free Shipping, etc.)
  • sortOptions[] — {value, label, selected} from the storefront's own "Sort by" dropdown — value is the exact string the sortBy input accepts
  • pagesRequested, pagesFetched — how many storefront pages were actually fetched vs. maxProductPages requested. Usually equal; pagesFetched can be lower either because the storefront's own last page was reached naturally (fewer sellers have hundreds of pages of stock) or, rarely, because a persistent anti-bot block stopped the fetch partway through (in that case a pagesStoppedReason: "BLOCKED" field is also present, so a short run is never silently indistinguishable from a genuinely small storefront)
  • scrapedAt

Output: error/terminal record (recordType: "sellerError")

Emitted instead of a normal record when a seller/page could not be resolved (not found, blocked, CAPTCHA, etc.) — the actor never silently returns zero items for a requested seller without explaining why.

  • sellerId, pageClassification (e.g. NOT_FOUND, CAPTCHA, DOG_PAGE_503), scrapedAt

Input

Field Type Default Description
mode string BOTH PROFILE / PRODUCTS / BOTH
sellerIds array – Seller/merchant IDs to look up directly
productUrls array – Product URLs to derive seller IDs from (buy-box seller link)
marketplace string US Amazon marketplace/domain
maxProductPages int 3 Max storefront pages per seller (mode=PRODUCTS/BOTH), ~16 products/page
includeBusinessDetails bool true Include public business name/address/phone
sortBy string (default/Featured) Storefront sort order (mode=PRODUCTS/BOTH) -- matches Amazon's own "Sort by" dropdown values
useResidentialProxy bool false Force residential proxy from the start
proxyCountry string AUTO Proxy geo-targeting country

At least one of sellerIds or productUrls is required.

Example: look up two sellers directly

{
  "mode": "BOTH",
  "sellerIds": ["A294P4X9EWVXLJ", "A35BKAA6VXTYCT"],
  "maxProductPages": 2
}

Example: derive the seller from a product page

{
  "mode": "PROFILE",
  "productUrls": ["https://www.amazon.com/dp/B0BTYCRJSS"]
}

Example: storefront catalog only, UK marketplace

{
  "mode": "PRODUCTS",
  "sellerIds": ["A294P4X9EWVXLJ"],
  "marketplace": "GB",
  "maxProductPages": 5
}

Use cases

  • Lead generation — build a list of active third-party sellers with public business name/address/phone for outreach
  • Competitor research — monitor a competing seller's full storefront catalog and pricing
  • Seller due-diligence — check a seller's rating history across multiple feedback windows before doing business with them
  • Marketplace research — compare seller reputations (histogram, positive %) across a category
  • Supply-chain verification — confirm a seller's legal business identity before sourcing

FAQ

Is this affiliated with Amazon? No. This is an independent third-party actor that scrapes Amazon's own public seller profile and storefront pages — no API keys, cookies, or login required.

Is the business name/address/phone customer personal data? No. This is the seller's own public business identity that Amazon displays on every seller's public profile page (/sp?seller=...), distinct from any Amazon customer's personal/GDPR-sensitive data. You can disable it with includeBusinessDetails: false.

Why do some sellers have fewer feedback windows than others? Amazon only shows a feedback window (30 days / 90 days / 12 months / lifetime) when the seller has ratings data for that window. A newer seller may only show 90-day and lifetime, for example — the actor reports exactly what Amazon displays, never a fabricated shape.

Does this include individual written feedback comments (per-buyer text/author/date)? No. Amazon's public seller profile page (/sp?seller=...) only ever renders the aggregate feedback data this actor extracts — star rating, positive-percent, and the 5/4/3/2/1-star histogram per time window. It does not render individual buyer feedback comments/text/author/date anywhere on that page (verified live), so the actor doesn't fabricate a per-comment feedback list.

Why is a seller record sometimes missing instead of empty? If a seller ID can't be resolved (not found, blocked, CAPTCHA), the actor emits an explicit error/terminal record (recordType: "sellerError") with a pageClassification explaining why, rather than silently returning nothing.

How many products does the storefront catalog return? Up to maxProductPages × ~16 products per seller — exactly what Amazon's own storefront pagination currently exposes for that seller, not a fixed/guaranteed count.

Does this work on every Amazon marketplace? Yes — all 23 supported marketplaces work end-to-end, including ones that show an interactive anti-bot challenge on the seller/storefront pages (it resolves automatically after the actor's normal page-load wait). Non-US marketplaces can occasionally see proxy-routing timeouts; if a run fails on a non-US marketplace, retry it and/or enable useResidentialProxy: true.

Why does profileUrl/storefrontUrl return an error in a plain script check? Amazon blocks non-browser requests to /sp?seller=... and /s?me=... with a 503, even though the exact same URL loads fine in a real browser (or via this actor — verified live). productUrl (/dp/ASIN) and media/thumbnail URLs are not behind this same block and return 200 from a plain client.

Is sortBy guaranteed across every storefront page? Amazon's own storefront reliably honors a non-default sortBy on page 1 of the catalog (verified live: price-asc-rank/price-desc-rank correctly order page 1's results). For maxProductPages > 1, the actor carries the sort session forward using Amazon's own "next page" link and query-id where available, but Amazon's storefront backend does not guarantee the same strict order past page 1 for every sort value — treat page 1 as the authoritative sorted sample if you need a strict global order.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build C2rTUjtkCNXiG6UHW. Documentation is regenerated from the default published build; private drafts are not included.