
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Extract public Amazon seller names, ratings, business addresses, and storefront links from seller, product, or search pages.
Look up the business behind an Amazon seller. Paste a seller profile URL and get the display name, lifetime and recent feedback, business name and address, phone when the page shows it, and the public storefront link, one row per seller.
Sellers cost $1 per 1,000, and invalid or unreadable URLs are never charged.
https://www.amazon.com/sp?seller=A33VKVXKE1ZIAY is the most reliable input.| Field | Type | Description |
|---|---|---|
startUrls | array (required) | Seller profile URLs (/sp?seller=), storefront links with me=, or product and search pages that list a seller id. A bare seller id is read from amazon.com. |
maxItemsPerStartUrl | integer | Sellers to save for each start URL. Default 10. |
scrapeOffers | boolean | On a product URL, save every public offer's seller instead of only the buy box seller. |
language | string | Language cookie for the Amazon store. |
proxyConfiguration | object | Datacenter by default; residential is used automatically if a datacenter exit is blocked. |
{
"startUrls": [
{ "url": "https://www.amazon.com/sp?seller=A33VKVXKE1ZIAY" }
],
"maxItemsPerStartUrl": 10,
"scrapeOffers": false,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": ["DATACENTER"]
}
}
Each seller is one row. A URL that cannot be read saves no row: it is listed with the reason in the run's status message and in the OUTPUT record under failedInputs.
| Field | Description |
|---|---|
id, name, url | Seller id, display name and profile link. |
businessName, address, phone | Business details when published. |
storefrontUrl | Public storefront. |
positiveLifetime, neutralLifetime, negativeLifetime, feedbackCountLifetime | Lifetime feedback. |
detailedRatings | Star breakdown; 30-day, 90-day and 12-month ratings are also saved. |
product | The input URL, or the product title, URL, ASIN, price and rating when the start URL was a product page. |
Example item:
{
"id": "A33VKVXKE1ZIAY",
"name": "Doomlings",
"url": "https://www.amazon.com/sp?seller=A33VKVXKE1ZIAY",
"businessName": "Doomlings, LLC",
"address": ["1430 NADEAU DR", "Los Angeles", "CA", "90019-4201", "US"],
"phone": null,
"storefrontUrl": "https://www.amazon.com/s?ie=UTF8&marketplaceID=ATVPDKIKX0DER&me=A33VKVXKE1ZIAY",
"positiveLifetime": "96%",
"neutralLifetime": "2%",
"negativeLifetime": "2%",
"feedbackCountLifetime": 229,
"product": { "input": "https://www.amazon.com/sp?seller=A33VKVXKE1ZIAY" }
}
| Event | When it is charged | Price |
|---|---|---|
| Seller | One seller profile | $0.001 |
That is $1 per 1,000 sellers. Failed URLs are not charged. Platform usage is billed separately: compute at $0.30 per GB-hour, datacenter proxy at $1 per GB and residential proxy at $2 per GB (residential is used only when a datacenter exit is blocked).
Worked example: one seller profile cost about $0.0033 in total in our test, including the $0.001 seller fee, compute and storage.
Is it legal to scrape Amazon seller pages? The actor reads publicly visible profile pages only. You are responsible for using the data in line with applicable law and Amazon's terms.
Do I need a login or my own proxy? No. If Amazon asks for a login, the run stops instead of guessing. Proxies are included.
What does "scrape all product offers" do? On a product URL, the run saves the buy box seller when the page lists one. Turn the option on to also save other sellers from the public offer list, up to the max.
Why is the business address missing? Some profiles do not publish an address. The row still includes the name and ratings when those are on the page.
Why did a product or search URL return no_results_found?
Those pages often do not include a seller id in their HTML. Use a seller profile URL for reliable results.
Can I schedule it or use the API? Yes, via schedules or the API.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayRequiredSeller, product, or search URLs
Seller profile, for example https://www.amazon.com/sp?seller=A33VKVXKE1ZIAY. A storefront link with me= is read as that seller. A bare seller id uses amazon.com. A product or search page is read when it lists a seller id.
maxItemsPerStartUrlintegerOptionaldefault 10Max sellers per URL
Stop after this many sellers for each start URL.
Used when a start URL is a product or a search page. Seller profile URLs ignore these.
scrapeOffersbooleanOptionaldefault falseScrape all product offers
On a product URL, save every public offer's seller. Leave this off to save only the buy box seller.
languageenumOptionalLanguage
Language cookie for the Amazon store. Leave empty to use the store default. A language the store does not offer falls back to that store's default.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter addresses are the default. Residential is used automatically when a datacenter exit is blocked. The exit country follows the Amazon store when you do not set one.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | string | null | Amazon seller id |
| name | string | null | Seller display name |
| businessName | string | null | Registered business name |
| url | string | null | Seller profile URL |
| storefrontUrl | string | null | Public storefront of the seller's products |
| address | array | null | Business address, one line per element |
| phone | string | null | Customer service phone when the profile lists it |
| string | null | Contact email when the profile lists it | |
| VAT | string | null | VAT number when the profile lists it |
| positiveLifetime | string | null | Positive feedback over the seller's lifetime |
| feedbackCountLifetime | number | null | Lifetime feedback count |
| detailedRatings | object | null | Star breakdown for 30 days, 90 days, 12 months, and lifetime |
| product | object | null | Product the seller was found on, or the input URL for a direct seller profile |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Seller | One public seller profile. | $0.001 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/amazon-seller-scraper').call({
"startUrls": [
{
"url": "https://www.amazon.com/sp?seller=A33VKVXKE1ZIAY"
}
],
"maxItemsPerStartUrl": 10,
"scrapeOffers": false,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/amazon-seller-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/amazon-seller-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Every seller offering one product and their offers.
Seller profile from an Amazon storefront URL.
One seller's profile page in German.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.