Amazon Rank Tracker - Keyword Position, Share of Shelf & Delta avatar

Amazon Rank Tracker - Keyword Position, Share of Shelf & Delta

Pricing

from $15.00 / 1,000 rank check (per keyword, per page scanned)s

Go to Apify Store
Amazon Rank Tracker - Keyword Position, Share of Shelf & Delta

Amazon Rank Tracker - Keyword Position, Share of Shelf & Delta

Track your ASINs' organic & sponsored positions for up to 100 keywords per run, plus share-of-shelf per brand and position delta vs your last run. Amazon search volume attached. Flat price per keyword - not per row. Schedule it daily; cheaper than a Helium 10 seat.

Pricing

from $15.00 / 1,000 rank check (per keyword, per page scanned)s

Rating

0.0

(0)

Developer

David S

David S

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

8 days ago

Last modified

Share

Amazon Rank Tracker — Keyword Position, Share of Shelf & Delta 📈

Find out where your ASINs actually rank in Amazon search — for up to 100 keywords per run, up to 3 result pages deep — plus how much of the first page your brand owns and what moved since your last run. Flat price per keyword, never per row. Schedule it daily and every run tells you what changed. Works with n8n, Make, Zapier and AI agents (Claude, ChatGPT) through the Apify API and MCP.

Most Amazon scrapers hand you a list of products and leave you to find yourself in it. This one answers the question you actually had: is my product on page one for this keyword, who is beating me, and am I going up or down?


What you get per keyword

One dataset row per keyword. Here is a real one, trimmed for readability:

{
"keyword": "protein powder",
"run_at": "2026-07-20T12:00:00Z",
"observed_from": "New York 10001",
"location_pinned": true,
"requested_postal_code": "10001",
"source": "primary",
"samples_taken": 3,
"position_noise": 1,
"search_volume": 135000,
"results_scanned": 50,
"pages_scanned": 1,
"sponsored_count": 7,
"tracked": [
{
"asin": "B000QSNYGI",
"found": true,
"page": 1,
"position_absolute": 4,
"position_organic": 4,
"sponsored": false,
"is_amazon_choice": false,
"is_best_seller": false,
"price": 96.28,
"stars": 4.6,
"reviews": 99400,
"bought_last_month": 20000,
"brand": "Optimum Nutrition",
"delta": {
"position_organic": 3,
"vs_run": "2026-07-19T12:00:00Z",
"within_noise": false,
"noise_floor": 1
}
},
{
"asin": "B0MISSING1",
"found": false,
"page": null,
"position_organic": null,
"not_in_top": 50
}
],
"share_of_shelf": {
"top_n": 10,
"top10_organic": [
{ "brand": "Optimum Nutrition", "slots": 5, "share": 0.5, "brand_source": "stated" },
{ "brand": "Premier Protein", "slots": 2, "share": 0.2, "brand_source": "clustered" }
],
"top10_sponsored": [
{ "brand": "Transparent Labs", "slots": 4, "share": 0.571, "brand_source": "stated" }
],
"full_organic": [ "… same shape, across everything scanned …" ],
"tracked_set_share_top10": 0.1,
"tracked_set_share_full": 0.04,
"slots_counted": { "organic_top10": 10, "sponsored_top10": 7, "organic_full": 50 }
},
"new_in_top10": ["B0BJLBD427"],
"dropped_from_top10": ["B00J074W7Q"],
"vs_run": "2026-07-19T12:00:00Z"
}

Field by field:

FieldWhat it means
tracked[].position_organicRank among organic results only, recomputed with ads removed
tracked[].position_absoluteRank counting every slot on the page, ads included
tracked[].found: false + not_in_topYour ASIN was not in the results scanned. This is an answer, and it is delivered and billed like any other
tracked[].deltaChange since your previous run of the same watchlist. Positive = moved up
share_of_shelf.tracked_set_share_*Share of slots held by your ASIN set — matched by ASIN, exact
share_of_shelf.*_organic / *_sponsoredShare per brand, organic and sponsored kept separate
results_scannedHow many results were actually examined (Amazon varies this — see below)
position_noiseHow much this keyword's own results shifted between samples
samples_takenHow many times the keyword was checked before taking the median
sourceprimary or fallback — which data path answered

Track changes, not snapshots

A position on its own is data. A position compared with last week is a decision.

Set a Watchlist ID — any label you like, such as my-brand or a client name — and schedule the Actor daily or weekly. Every run after the first one compares itself with the previous run under the same watchlist and reports:

  • delta.position_organic per tracked ASIN — positive means it moved up the page
  • new_in_top10[] — ASINs that entered the first ten organic slots
  • dropped_from_top10[] — ASINs that fell out of them

Use a separate watchlist ID per brand or per client, and history stays separate too.

How to set it up

  1. Run once with your keywords, ASINs and a watchlist ID. The first run has nothing to compare against, so it reports no movement — deliberately. Reporting everything as "new" on day one would tell you nothing.
  2. Add an Apify Schedule (daily or weekly).
  3. From the second run onward, every row carries its own movement.

When we refuse to report movement

Deltas are suppressed, rather than guessed, when two runs are not like-for-like:

  • The data path changed between runs (source_changed)
  • The location pin changed between runs (location_pin_changed)

Both produce genuinely different result sets, so diffing them would report relocation as ranking movement. A tracker that invents a drop-out is worse than one that says "not comparable" — so this one says it.


Share of shelf — who owns the first page

For every keyword you get slot share at two depths (the top 10, and everything scanned), split between organic and sponsored:

  • Per brand — who occupies the shelf
  • For your tracked ASIN set — how much of it is yours

Two things worth knowing, because they change how much weight to put on each number:

Your own share is exact. tracked_set_share_* is computed by matching ASINs you supplied. There is no guesswork in it.

Competitor brand shares are inferred. Amazon does not publish a brand field on organic search results, so brands are worked out from product titles: the page's own stated brands are matched first, then titles that share a leading phrase are grouped (three "Cesar …" products are one brand holding 30%, not three brands holding 10% each). Every entry carries brand_source:

brand_sourceMeaning
statedAmazon stated this brand on the page
clusteredInferred, and corroborated by other titles on the same page
guessedInferred from a single title with nothing to corroborate it
noneCould not be determined — the slot is still counted, under brand: null

Unattributed slots are counted, not dropped. Dropping them would quietly inflate everyone else's share.


Pricing — flat per keyword, not per row

EventPrice (FREE tier)When it fires
Actor start$0.05, once per runRun starts; covers validation and the cache check
Rank check$0.025 per keyword × pages scannedOnce per keyword delivered

Tiered by your Apify Store tier: FREE $0.025 · BRONZE $0.022 · SILVER $0.019 · GOLD $0.015.

Everything is included in that one price — positions for every tracked ASIN, share of shelf, deltas, and Amazon search volume. There is no separate enrichment fee and no per-row charge.

You are never charged for: keywords that failed upstream · runs served from the 24-hour cache · empty results. Those cost the start fee only.

You are charged for an ASIN that does not rank, because "you are not in these results" is the answer you came for.

What it actually costs

All-in, including the $0.05 start fee on every run:

WhoSetupRank checks/monthMonthly total
Seller25 keywords, daily, 1 page750$20.25
Agency5 clients × 30 keywords, weekly650$14.51 (BRONZE)
Hobby10 keywords, weekly43$1.30

Flat vs per-row — read this before comparing headline prices

Some trackers advertise a lower per-keyword price and then bill per returned row. An Amazon result page holds roughly 50–65 products, so:

ModelHeadlineReal cost, one keyword, one page
Per-row rival$0.01/keyword + $0.001/row$0.01 + 60 × $0.001 = **$0.07**
This Actor$0.025/keyword flat$0.025 — regardless of how many results came back

That is ~2.8× cheaper in practice, and it includes share of shelf, deltas and volume, which the per-row model does not offer at all. More importantly, your bill is predictable: 25 keywords daily is $20.25 a month, every month, whatever Amazon returns.

Start free

  • 10-keyword preview per run on a free Apify plan — real positions, no charge
  • New Apify accounts include $5 of platform credit — roughly 200 keyword checks here

The free preview returns genuine positions. Search volume and run-over-run tracking are the paid features.


How it compares

This ActorHelium 10Jungle ScoutPer-row trackers
Pricefrom $0.015/keyword$99/mo (Platinum)$49–129/mo$0.01/kw + $0.001/row
Keyword cap100/run, unlimited runs500 keywords on Platinumtier-cappednone
Share of shelfincludedDiamond, $279/mo+Cobalt (enterprise)not offered
Run-over-run deltaincludedincludedincludednot offered
Search volume attachedincludedincludedincludednot offered
Seatsnone — API keyed to your accountper seatper seatn/a
Multi-client / agency useunlimited watchlistsper-seat costper-seat costmanual
OutputJSON / CSV / API, schedulabledashboard-firstdashboard-firstJSON

If you live in a dashboard all day, a suite is a reasonable purchase. If you want rankings in your own systems — a sheet, a database, a Slack alert, an LLM report — paying $99/month for a UI you will not open is the expensive option.


Use with AI agents & LLM workflows

The output is designed to be consumed by software, not just read.

n8n / Make / Zapier

  1. Schedule trigger → run this Actor
  2. Read the dataset
  3. Branch on dropped_from_top10.length > 0 → Slack alert, or append rows to Google Sheets

AI agents (Claude, ChatGPT) via Apify MCP

Connect the Apify MCP server and ask directly:

"Run the Amazon Rank Tracker for my watchlist my-brand and tell me which keywords lost top-10 positions since yesterday, ignoring anything inside the noise floor."

Because each row carries position_noise and delta.within_noise, an agent can separate real movement from jitter without you writing that logic.

LLM reporting

Feed the dataset to a model and ask for a weekly summary: which keywords improved, which competitor gained shelf share, which ASINs dropped off page one. The delta and share_of_shelf objects are shaped for exactly that.


How positions are measured (honest scope)

Amazon search is personalised and genuinely unstable. This section says what that means, because it determines how much you should trust any Amazon rank number — from this Actor or any other.

Positions are observed, never estimated

Every position comes from a real Amazon search results page fetched at run time. Nothing is modelled. observed_from records the location the page was rendered for, and location_pinned tells you whether the postal code you asked for was actually applied.

Set a postal code

Amazon personalises results by delivery location. Tracking from a fixed postal code is what makes two runs comparable. If a run cannot be pinned, the row says so via location_pinned: false rather than silently reporting a different city's results as yours.

Each keyword is checked several times, then reduced to a median

This is the part most rank trackers do not talk about. Amazon returns different orderings for identical requests, seconds apart. In our own measurements the same keyword's results moved by up to 13 positions between two back-to-back checks.

So a single lookup is an anecdote, not a ranking. Each keyword is checked three times per run and reduced to a median position, and an ASIN must appear in a majority of those checks to be ranked at all. position_noise on every row tells you how much that keyword's own results jittered, and delta.within_noise flags movement that falls inside it.

What is reliable, and what is directional

Measured across repeated pinned runs:

PositionsMedian movement between runsWithin ±2 positions
Top 10182–100%
Top 20167%
All depths scanned2–346–58%

Top-10 positions are stable enough to track and to act on. Deeper positions are directional — useful for "am I on page one at all" and for share-of-shelf totals, but a move from 38 to 44 is mostly Amazon reshuffling, not your ranking changing. Treat deep numbers as a band, not a measurement.

"Not found" is an answer

If a tracked ASIN is not in the results, the row says found: false and

not_in_top: <number actually scanned>
. It is not an empty result and not an error — it is the answer, and it is billed as one.

Note that not_in_top reflects what was really examined, not a round number. Amazon returns roughly 50–65 organic results per page and varies it by keyword, so this Actor reports the actual count rather than assuming one.

Sponsored products are identified and excluded from organic rank, so position_organic means what it says. Ads are still reported: sponsored_count, sponsored share of shelf, and a sponsored flag per row. Banner-style Sponsored Brands blocks are counted as advertising but kept out of the numbered ladder, because they occupy no ranked slot — folding them in would shift every position below them.

Scope limits in this version

  • amazon.com (US) only. Other marketplaces are planned.
  • Up to 100 keywords, 20 tracked ASINs, 50 competitor ASINs, 3 pages per run.
  • Search volume is a monthly estimate, cached for 7 days.

Input

FieldRequiredDefaultNotes
keywordsUp to 100. Case and whitespace variants are merged before anything is billed
asinsUp to 20. 10 characters, e.g. B002DYIZH6. Invalid ones are reported and skipped
competitorAsinsUp to 50. Tracked alongside yours, no extra charge
marketplacecomamazon.com only in this version
postalCodeRecommended. Pins results to one location
depth1Pages per keyword, 1–3. Also the billing multiplier
watchlistIdEnables run-over-run tracking. Use one per brand or client
includeVolumetrueAttaches Amazon search volume, cached 7 days
bypassRunCachefalseForces a fresh snapshot. This will incur charges

Minimal input:

{
"keywords": ["protein powder", "whey protein isolate"],
"asins": ["B002DYIZH6"],
"postalCode": "10001",
"watchlistId": "my-brand"
}

Quick start

1. Gather your ASINs

An ASIN is the 10-character identifier in any Amazon product URL:

https://www.amazon.com/dp/B002DYIZH6
^^^^^^^^^^

Add your own products under Your ASINs, and anyone you benchmark against under Competitor ASINs. Competitors cost nothing extra — they ride along on searches you are already paying for.

2. Pick keywords the way a shopper would type them

Track the searches you want to win, not the ones that describe your product internally. Ten to thirty well-chosen keywords beat a hundred vague ones, and a keyword list stays useful for months.

If you do not know where to start, pull the search terms your listing already gets impressions for from Amazon Seller Central, or use the companion Amazon Keyword Research Actor to expand a seed keyword and reverse-engineer a competitor's ASIN.

3. Set a postal code

Use one and never change it. 10001 (New York) is a reasonable default. Amazon personalises results by delivery location, so a fixed pin is what makes tomorrow's run comparable with today's.

4. Set a watchlist ID

Any label: my-brand, client-acme, supplements-q3. This is what turns a snapshot into tracking. One per brand or client.

5. Run once, then schedule

The first run establishes the baseline and reports no movement. Add an Apify Schedule — daily for active launches or PPC work, weekly for reporting — and every run from then on tells you what changed.


Reading the output

Which position number should I look at?

position_organic — that is the one that reflects your listing's own performance. It counts only organic results, with ads removed, so it does not jump around when a competitor turns advertising on or off.

Use position_absolute when you care about visual placement: where a shopper's eye actually lands, ads included.

Is this move real?

Check delta.within_noise:

const realMoves = row.tracked.filter(t => t.delta && !t.delta.within_noise);

within_noise: true means the change is smaller than the jitter measured on that keyword in this very run — it is not evidence of anything. Filtering on this one field removes most of the false alarms that make people distrust rank tracking.

Am I gaining or losing ground?

Compare share_of_shelf.tracked_set_share_top10 across runs. This is the number to put in a client report: it is exact, it is a percentage rather than a rank, and it moves slowly and meaningfully. A single ASIN slipping from position 4 to 6 may be noise; your share of the top ten falling from 30% to 10% is not.

Who is beating me?

share_of_shelf.top10_organic is ordered by share. Anyone above you with more slots is out-ranking you on breadth, not just on one listing — usually a sign they have more variants indexed for the keyword, which is actionable in a way a single position is not.


Full output reference

Row level

FieldTypeNotes
keywordstringNormalised: lowercased, whitespace collapsed
run_atISO dateWhen this run started
observed_fromstringLocation the results were rendered for
location_pinnedbooleanWhether your postal code was actually applied
requested_postal_codestring|nullWhat you asked for
sourceprimary|fallbackWhich data path answered
samples_takennumberChecks taken before the median (3 on paid plans)
position_noisenumber|nullMeasured jitter for this keyword, in positions
search_volumenumber|nullMonthly Amazon search volume estimate
results_scannednumberResults actually examined across all pages
pages_scannednumberPages fetched, 1–3
sponsored_countnumberAd slots seen, including banner placements
new_in_top10string[]Present only when a comparable previous run exists
dropped_from_top10string[]Same
vs_runISO dateThe run this one was compared against

tracked[] — one entry per ASIN you supplied

FieldTypeNotes
asinstringUppercased
foundbooleanWhether it appeared at all
pagenumber|nullWhich page it was found on
position_absolutenumber|nullRank including ad slots
position_organicnumber|nullRank among organic results only
not_in_topnumberPresent when found: false — results actually scanned
sponsoredbooleanWhether this placement was an ad
is_amazon_choice / is_best_sellerbooleanBadges
price / stars / reviewsnumber|nullAs displayed
bought_last_monthnumber|nullPurchase count, when Amazon shows one
brand / brand_sourcestringSee share-of-shelf notes
deltaobject|null{ position_organic, vs_run, within_noise, noise_floor }

share_of_shelf

FieldNotes
top10_organic[] / top10_sponsored[]{ brand, slots, share, brand_source }, ordered by share
full_organic[] / full_sponsored[]Same, across everything scanned
tracked_set_share_top10Your set's share of the top 10, exact
tracked_set_share_fullSame across everything scanned
slots_countedHow many slots each figure was computed from

Shares within a set always sum to 1.0. Slots whose brand could not be determined appear under brand: null rather than being dropped.


Recipes

Run it from the API

curl -X POST "https://api.apify.com/v2/acts/doesaiknow~amazon-rank-tracker/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"keywords": ["protein powder", "whey protein isolate"],
"asins": ["B002DYIZH6"],
"postalCode": "10001",
"watchlistId": "my-brand"
}'

Fetch the results:

$curl "https://api.apify.com/v2/acts/doesaiknow~amazon-rank-tracker/runs/last/dataset/items?token=$APIFY_TOKEN&format=json"

Add &format=csv for a spreadsheet, or &clean=true to drop empty fields.

Alert when you fall out of the top 10

const items = await fetch(datasetUrl).then(r => r.json());
const lost = items.flatMap(row =>
row.tracked
.filter(t => t.delta && !t.delta.within_noise && t.position_organic > 10)
.map(t => `${t.asin} fell to ${t.position_organic} on "${row.keyword}"`)
);
if (lost.length) await notifySlack(lost.join('\n'));

Note the !t.delta.within_noise filter — without it you will alert on jitter and stop trusting the alerts within a week.

Weekly share-of-shelf report

import requests, statistics
items = requests.get(DATASET_URL).json()
for row in items:
sos = row["share_of_shelf"]
mine = sos["tracked_set_share_top10"]
leader = sos["top10_organic"][0] if sos["top10_organic"] else None
print(f'{row["keyword"]:30} mine {mine:.0%}'
+ (f' leader {leader["brand"]} {leader["share"]:.0%}' if leader else ''))

n8n / Make / Zapier

  1. Schedule trigger — daily at a fixed hour (consistency matters more than the hour)
  2. Apify node — run this Actor with your saved input
  3. Filter — keep rows where dropped_from_top10 is non-empty
  4. Action — Slack message, Google Sheets row, or an email digest

Running at the same time each day keeps your comparisons like-for-like.


Choosing what to track

Track the keywords you are trying to win, plus the ones you already own. The second group is your early-warning system: you find out you are slipping on a keyword that used to convert, which is more valuable than watching a keyword you have never ranked for.

Track competitor ASINs deliberately. Two or three real rivals per category tell you more than twenty. Their movement explains yours — if you dropped and they all rose, something changed in the category, not in your listing.

Pick a cadence that matches what you are doing. Daily during a launch, a PPC push, or after a listing change. Weekly for steady-state reporting. Rank tracking daily on a stable listing mostly produces noise, and now costs money to produce.

Depth is a cost multiplier. Page 1 answers "am I visible". Pages 2–3 answer "how far off am I", and cost 2× and 3× accordingly. Most tracking only needs page 1.


Troubleshooting

"None of the ASINs provided are valid" An ASIN is exactly 10 characters, letters and digits. Product URLs contain it after /dp/. If you pasted a full URL or an SKU, the run stops before spending anything.

A keyword is missing from the results It failed upstream after retries and was skipped rather than billed. The run's status message says how many. Re-run to pick it up.

Deltas are missing Either it is the first run for that watchlist ID, or the runs were not comparable — the location pin or the data path differed. Check location_pinned and source on both runs.

Positions look different from what I see in my browser Expected, and not a defect. Your browser carries your account history, Prime status and precise location. This Actor reports what an unauthenticated shopper at your chosen postal code sees. It is also why position_noise exists — check it before treating a small difference as real.

Results came back cached and I wanted fresh ones Identical runs within 24 hours are served from cache at no per-keyword charge. Tick Force a fresh snapshot to override — that will incur charges.


Glossary

ASIN — Amazon Standard Identification Number, the 10-character product ID in every product URL.

Organic position — rank among unpaid results only. What your listing earned.

Absolute position — rank counting every slot including ads. What a shopper's eye sees.

Share of shelf — the percentage of visible slots held by a brand or a set of ASINs. Answers "how much of this page is mine" rather than "where is my one product".

Delta — change since the previous run of the same watchlist. Positive means moved up.

Noise floor — how much a keyword's results shifted between checks within a single run. Movement smaller than this is not evidence.

Watchlist ID — the label that groups runs into a history so deltas can be computed.


FAQ

How is this different from Helium 10 or Jungle Scout? Price model and delivery. They sell a monthly seat and a dashboard; this sells per keyword checked, with output landing in your systems via API, JSON or CSV. Helium 10's Platinum plan is $99/month and caps keyword tracking at 500; share of shelf starts at $279/month. Here, 25 keywords tracked daily costs about $20.25/month with share of shelf included. If you want a dashboard and a full suite, buy the suite — this is for people who want the data in a pipeline.

Does it track sponsored positions? Yes, and separately from organic. position_organic excludes ads entirely, position_absolute counts them, and share of shelf is reported for organic and sponsored independently, so you can see who is buying the top of the page versus earning it.

What happens if my ASIN is not in the results? You get found: false with not_in_top set to the number of results actually scanned. That is a delivered answer and is billed like any other — knowing you are not on page one is usually the reason you ran the check.

Can I schedule it? Yes, and it is designed for that. Add an Apify Schedule and set a watchlistId. Each run then reports what changed since the previous one. Daily is the common setup for sellers; weekly for agency reporting.

How much does 100 keywords daily cost? 100 keywords × 1 page × 30 days = 3,000 rank-check events, plus the daily start fee. On the FREE tier that is roughly $76.50/month; on GOLD about $46.50. Still below a single Helium 10 Platinum seat, and without the 500-keyword cap.

Does it work for agencies with multiple brands? Yes. Use a separate watchlistId per client, and each keeps its own history. There are no seats — billing is per keyword checked, so a second client costs what their keywords cost and nothing more.

How accurate are the positions? Top-10 positions are stable: in repeated pinned runs, the median movement between runs is 1 position and 82–100% of top-10 positions move by 2 or less. Deeper positions are noisier and should be read as directional. Every row carries position_noise, so you can see the jitter rather than take our word for it.

Why is my delta missing on some rows? Either it is your first run for that watchlist, or the two runs were not comparable — the location pin or the data path changed between them. In those cases movement is suppressed rather than guessed, because comparing two differently-taken observations would report noise as a ranking change.

Why is there a "fallback" source, and does it cost me more? No — the price is the same either way. If the primary data path fails repeatedly during a run, a secondary one takes over so you still get results instead of an error. Rows say which answered via source, because the two are not identical: the fallback resolves location at country level rather than to your postal code, which is also why deltas are suppressed across a source change.

Can I track more than 100 keywords? Per run, no — that cap keeps runs inside a predictable time and cost envelope. Split larger lists across several runs or several scheduled tasks, each with its own watchlist ID. There is no limit on how many runs you make.

Do competitor ASINs cost extra? No. They are read from searches you are already paying for, so tracking 20 of your own ASINs plus 50 competitors costs exactly the same as tracking one ASIN.

Why does the first page sometimes have 50 results and sometimes 65? Because Amazon varies it by keyword and category. This Actor reports results_scanned — the number actually examined — rather than assuming a fixed page size, which is why not_in_top is an honest ceiling rather than a round number.

Is search volume Amazon's own data? It is a monthly estimate for Amazon search, not a figure published by Amazon, and it is cached for 7 days. Use it to prioritise keywords, not as a precise traffic forecast.

What happens if I change my keyword list mid-tracking? Nothing breaks. Keywords already in the watchlist keep their history; newly added ones start their own and report no movement on their first run. Removing a keyword simply stops updating it.

Can I export to CSV or Google Sheets? Yes. Every Apify dataset exports to CSV, JSON, Excel and more, through the UI or the API, and integrates with n8n, Make and Zapier.


This Actor reads publicly available Amazon search results — the same pages any visitor sees without logging in.

  • No login, no account access, no gated content. Nothing behind authentication is touched.
  • No personal data. Output contains product listings: ASINs, titles, prices, ratings, review counts and positions. No customer names, reviewer identities or contact details are collected.
  • Public data only. Search result pages are public web content.

You are responsible for using the output in line with Amazon's terms and any laws that apply to you.


  • Amazon Bestseller Radar — which products entered, climbed or fell out of your categories' Best Sellers top 30 since your last run — rank deltas, prices, demand signals. Spot the mover, then track its keywords here.
  • Amazon Keyword Research — search volume and reverse-ASIN. Use it to find keywords worth tracking, then bring them here.
  • Google Rank Checker — the same idea for Google: positions, competitors above you, SERP features.
  • Keyword Metrics Pro — volume, CPC and competition in bulk.

Support & feedback

Found a bug, need another marketplace, or want a field that is not here? Open an issue on the Actor's page. Bug reports get fixed; feature requests shape the roadmap — non-.com marketplaces and a buy-box module are the two most requested so far.

If the Actor is useful, a review or bookmark on the Store page helps other sellers find it.