Amazon Product Research in Google Sheets: 40 ASINs a Minute
Amazon product research in Google Sheets: check 40 competitor ASINs for price, rating, rank and Buy Box in about a minute instead of 2 hours of tabs, and see the discount that is costing you sales the week it starts. Tables, template, cost.
Phil Nguyen · 17 min read · Updated

You can do Amazon product research in Google Sheets by putting your ASINs in a column and dragging one formula down beside them. For 40 competitor ASINs that is about a minute and 40 scraping credits instead of two hours of copying, and the price drop that is quietly costing you sales shows up in a column you can sort.
Here is the Monday it replaces. You sell private label, you track 40 ASINs, and every Monday starts the same way. You open 40 Amazon tabs. You copy a price, a rating, a review count, and you paste each one into a sheet. That is about two hours before you have done a single useful thing with the data, or roughly 100 hours a year spent copying numbers that a page already publishes.
The data you are copying is public. A formula can fetch it into the sheet you were going to paste it into anyway.
Put your ASINs in column A and write this in B2.
Formula
=AMAZONPRODUCT(A2, "US", "10001")Reads the ASIN in A2 and pulls that product's live detail page from the US marketplace. The zip code localizes the pricing.
What comes back
| Source | Title | ASIN | Brand | Price | ListPrice | Rating | TotalRatings | BSR1Rank |
|---|---|---|---|---|---|---|---|---|
| B2 | Neater Pets Stainless Steel Dog Bowl, 8 Cup, Non-Slip Base | B07QK9SJ4T | Neater Pets | 24.99 | 32.99 | 4.6 | 18400 | 412 |
| B3 | Yeti Boomer 8 Dog Bowl, Stainless Steel | B073X6KSVQ | YETI | 50.00 | 50.00 | 4.8 | 9900 | 1190 |
| B4 | Frisco Double Diner Stainless Steel Bowl, Medium | B08GKV3R2M | Frisco | 17.48 | 19.99 | 4.4 | 3120 | 88 |
| B5 | Basis Pet Made in USA Stainless Steel Dog Bowl, 6 Cup | B01N5C8JQ2 | Basis Pet | 29.95 | 29.95 | 4.7 | 1204 | 6740 |
Two columns there do not appear on the listing page at a glance. ListPrice next to Price is the discount a competitor is running right now. BSR1Rank is best seller rank, which moves faster than review count and is usually the first sign that something in your category changed.
Drag it down all 40 rows
This is the part that replaces the two hours.
Grab the corner of B2 and pull it down to B41. Every cell shows ⏳ Scraping... while its job runs, then resolves. You did not open a tab.
The results do not land beside each ASIN. SheetMagic notices that the whole column is the same formula and collects the batch into one new tab called Amazon Product Results, one row per ASIN, with a Source column naming the cell that requested it. With Keep Formula on (the default), each formula cell keeps its formula as plain text. With Keep Formula off, it shows something like ✅ 1 result → Amazon Product Results instead.
That is 40 calls at 1 scraping credit each, so 40 credits, and about a minute of waiting rather than two hours of copying. Rows arrive in the order the jobs finish, not the order of your ASIN column, which is exactly what the Source column is for.
Tip
Keep Formula is on by default in the SheetMagic sidebar. Once the results land, the formula freezes as text, so a recalculation cannot re-run all 40 calls and bill you a second time for numbers you already have. With it off, the status line replaces the formula, which does not re-run either. To refresh next week, re-enter the formula.
If formula-based scraping is new to you, the complete guide to web scraping in Google Sheets covers the rest of the family.
When you do not have the ASINs yet
Tracking your 40 is one job. Finding the next product is another, and it starts with a keyword rather than an ASIN.
Formula
=AMAZONSEARCH("stainless steel dog bowl", "US", "10001", 20)Searches the US marketplace for that keyword and returns the ranked results, about 16 products per page.
What comes back
| Source | Position | Title | ASIN | Price | Rating | ReviewCount | Badge |
|---|---|---|---|---|---|---|---|
| B2 | 1 | Neater Pets Stainless Steel Dog Bowl, 8 Cup, Non-Slip Base | B07QK9SJ4T | 24.99 | 4.6 | 18400 | Amazon's Choice |
| B2 | 2 | Yeti Boomer 8 Dog Bowl, Stainless Steel | B073X6KSVQ | 50.00 | 4.8 | 9900 | |
| B2 | 3 | Frisco Double Diner Stainless Steel Bowl, Medium | B08GKV3R2M | 17.48 | 4.4 | 3120 | Best Seller |
| B2 | 4 | Basis Pet Made in USA Stainless Steel Dog Bowl, 6 Cup | B01N5C8JQ2 | 29.95 | 4.7 | 1204 |
One call, one credit, a whole page of competitors. The table is 17 columns wide in the sheet, counting Source, not the eight shown here, and also carries the product URL, the image URL, the currency, whether the listing is sponsored, the keyword you searched, and the total result count Amazon reported.
Keep your category keywords in a column and drag this one down too. Six categories is six formulas, six credits, and close to 100 competitor rows in a single Amazon Results tab. Because every row carries an ASIN, the same sweep also tells you which of your own products are still on page one.
Who actually owns the Buy Box
Price alone never explains a sales dip. Who is selling at that price usually does.
Formula
=AMAZONOFFERS("B07QK9SJ4T", "US", "10001", 10)Lists the seller offers on one ASIN, including condition, shipping, fulfillment, and which offer holds the Buy Box.
What comes back
| MerchantName | Condition | Price | Shipping | ShipsFrom | IsFBA | IsPrime | IsBuyBoxWinner |
|---|---|---|---|---|---|---|---|
| Neater Pets Official | New | 24.99 | 0 | Amazon | TRUE | TRUE | TRUE |
| PetSupplyDirect | New | 23.45 | 5.99 | Ohio, USA | FALSE | FALSE | FALSE |
| Bargain Bowl Co | New | 26.10 | 0 | Amazon | TRUE | TRUE | FALSE |
| ReStock Pets | Used, Like New | 18.20 | 4.50 | Texas, USA | FALSE | FALSE | FALSE |
Read that the way a seller does. The Buy Box is not on the cheapest offer. It is on the FBA offer with free Prime shipping, 1.54 dollars above the cheapest listing. That is the real answer to "why is my lower price not winning".
The full table is 23 columns, counting Source, and also returns the seller ID, the list price, the discount amount and percentage, the delivery window in hours, and a quantity where Amazon publishes one. Point it at an ASIN cell and drag it down when you want offers on every product you track.
Note
Every Amazon call in this post costs 1 scraping credit. The free allowance is 100 scraping credits, one time, with no card. That covers the 40-row drag with room to spare, which is more than this whole tutorial needs. If you run the check every weekday, Solo's 10,000 credits a month is the plan that fits.
Marketplaces and zip codes
Both arguments after the ASIN matter more than they look.
The geocode is the Amazon marketplace: "US", "GB", "DE", and a couple of dozen more. The zipcode is a delivery postal code inside that country. Amazon shows different prices, different Prime availability, and sometimes a different Buy Box winner depending on where the package is going.
Formula
=AMAZONPRODUCT(A2, "GB", "SW1A 1AA")Same ASIN on the UK marketplace, priced for a London postcode. The Currency column comes back as GBP.
Match the postal code to the marketplace. A US zip with a "DE" geocode is a request Amazon cannot localize, and the call still spends a credit. Use the same zip every week so your history compares like with like.
Let AI read the table for you
You now have 40 rows of competitor detail. Reading them is still work, and it is the kind of work an AI formula does well.
=AITEXT() takes a prompt and an optional cell to work from. Point it at a competitor's title and ask for the gap.
Formula
=AITEXT("In 20 words or fewer, name one feature this product title does not claim that a buyer would care about. Reply with the sentence only.", B2)Reads the title in B2 and drafts a differentiation angle. Drag it down the whole column.
What comes back
| B (Title) | C (=AITEXT result) |
|---|---|
| Neater Pets Stainless Steel Dog Bowl, 8 Cup, Non-Slip Base | No mention of dishwasher safety, which buyers with large dogs ask about constantly. |
| Yeti Boomer 8 Dog Bowl, Stainless Steel | Says nothing about capacity in cups, so shoppers cannot size it without clicking. |
| Frisco Double Diner Stainless Steel Bowl, Medium | No claim about rust resistance, the top complaint in this category. |
| Basis Pet Made in USA Stainless Steel Dog Bowl, 6 Cup | Leads with origin, not with the non-slip base competitors advertise. |
This one spends AI tokens rather than scraping credits, and its answer stays on this sheet rather than going to a results tab. With Keep Formula on (the default) the formula is kept as text and the answer lands in the cell to its right; with it off, the answer replaces the formula. Free comes with 20,000 tokens to try it. Solo's 3.25 million a month is far more than a weekly column of short answers like these.
Swap the prompt for whatever your Monday actually asks. "Rewrite this title in under 200 characters for a 6 cup bowl." "Classify this listing as premium, mid, or budget. Reply with one word." The model is picked in the SheetMagic sidebar, so the formula never changes when you switch models.
Compare this Monday to last Monday
Before you re-run, rename the results tab to something dated, like Week_09_01. The next run then creates a fresh Amazon Product Results tab instead of a suffixed duplicate, and last week's numbers stay put for the comparison.
Formula
=IFERROR(D2 - INDEX(Week_09_01!$G:$G, MATCH(A2, Week_09_01!$C:$C, 0)), "new this week")Subtracts last week's price for the same ASIN from this week's. Returns 'new this week' when the ASIN was not in the earlier run.
What comes back
| A (ASIN) | D (Price now) | J (Price change) | K (Rank change) |
|---|---|---|---|
| B07QK9SJ4T | 24.99 | -3.00 | 412 from 508 |
| B073X6KSVQ | 50.00 | 0.00 | 1190 from 1204 |
| B08GKV3R2M | 17.48 | -1.51 | 88 from 143 |
| B01N5C8JQ2 | 29.95 | new this week | new this week |
No credits are spent here. It is plain Google Sheets on data you already pulled. Sort that column and Monday shrinks to the two or three rows that actually moved. A competitor who dropped three dollars and climbed 96 rank positions is the only thing on the sheet worth an hour of your attention.
What can you do with the competitor data?
The rows are only worth pulling if they change a decision. Here are four that this sheet supports, worked on the 40-ASIN example above.
- Answer a competitor discount the same week. The
Price changecolumn surfaces the listing that dropped 3 dollars and climbed 96 rank places. Seeing that on Monday, rather than when your own sales report dips weeks later, is the difference between a deliberate response and a month of lost orders you only notice afterwards. - Stop cutting price when price is not the problem.
AMAZONOFFERSshows the Buy Box going to an FBA offer 1.54 dollars above the cheapest listing. If you are losing the Buy Box at a lower price, a further price cut only gives away money on every unit. The fix is fulfillment or shipping, and the offers table shows it. - Feed your listing rewrite. The
AITEXTcolumn turns 40 competitor titles into 40 one-line gaps, like "no mention of dishwasher safety". That is a ready list of claims to test in your own title and bullets, drafted while you read the price column. - Spend the two hours somewhere else. At about 3 minutes per ASIN by hand, 40 ASINs is 2 hours every Monday. The dragged formula is about a minute and 40 credits, so four weekly runs are about 160 credits a month, well inside Solo's 10,000.
Compared to Jungle Scout and Helium 10
These are real Amazon seller tools and they do things a spreadsheet does not. Be honest about which job you are buying.
Helium 10 publishes its prices. Its pricing page lists Platinum at 129 dollars a month billed monthly, or 99 dollars a month billed yearly, with 20 ASINs tracked lifetime, 100 keyword searches a month, and one user. Diamond is 359 dollars a month, or 279 billed yearly, and raises that to 1,000 ASINs tracked and unlimited keyword searches. Enterprise starts at 1,499 dollars a month billed annually. There is a free plan with limited access, and the Chrome extension comes in from Platinum up.
Jungle Scout's pricing page describes three Catalyst plans with monthly and annual billing, a 7 day money back guarantee, and 49 dollars a month for each additional seat above the plan's included users. Catalyst tracks up to 200 ASINs. Cobalt, its enterprise product, is custom priced and tracks up to 20,000.
What you get for that is estimates and history: sales volume estimates, keyword volume, category trend data, and review tooling. None of that comes out of a public product page, and no formula is going to invent it.
What you give up is the sheet. The tracked ASIN count is a plan limit, the data lives in their app, and getting it next to your cost of goods means an export. SheetMagic goes the other way. There is no ASIN limit, only credits, and the numbers land in the same file as your unit costs, your reorder dates, and your supplier notes.
The honest split: if you need demand estimates before you launch a product, buy the seller tool. If you need today's price, rank, and Buy Box for products you already sell, a formula in the file you already keep is fewer steps and no export.
Copy this template
Column A holds your ASINs and drives everything. Column B holds the scraper formula you drag down. The rest read back from the results tabs the scrapers create.
| Column | What goes in it |
|---|---|
| A, ASIN | Your tracked ASIN, typed or pasted |
| B, Pull | =AMAZONPRODUCT(A2, "US", "10001") dragged down the column |
| C, Title | =IFERROR(INDEX('Amazon Product Results'!$B:$B, MATCH(A2, 'Amazon Product Results'!$C:$C, 0)), "waiting on the pull") |
| D, Price | =IFERROR(INDEX('Amazon Product Results'!$G:$G, MATCH(A2, 'Amazon Product Results'!$C:$C, 0)), "waiting on the pull") |
| E, List price | =IFERROR(INDEX('Amazon Product Results'!$H:$H, MATCH(A2, 'Amazon Product Results'!$C:$C, 0)), "waiting on the pull") |
| F, Rating | =IFERROR(INDEX('Amazon Product Results'!$K:$K, MATCH(A2, 'Amazon Product Results'!$C:$C, 0)), "waiting on the pull") |
| G, Reviews | =IFERROR(INDEX('Amazon Product Results'!$L:$L, MATCH(A2, 'Amazon Product Results'!$C:$C, 0)), "waiting on the pull") |
| H, Best seller rank | =IFERROR(INDEX('Amazon Product Results'!$O:$O, MATCH(A2, 'Amazon Product Results'!$C:$C, 0)), "waiting on the pull") |
| I, Buy Box price | =IFERROR(INDEX(FILTER('Amazon Offers Results'!$F:$F, 'Amazon Offers Results'!$B:$B=A2, 'Amazon Offers Results'!$T:$T=TRUE), 1), "run AMAZONOFFERS") |
| J, Lowest other offer | =IFERROR(MIN(FILTER('Amazon Offers Results'!$F:$F, 'Amazon Offers Results'!$B:$B=A2, 'Amazon Offers Results'!$T:$T=FALSE)), "run AMAZONOFFERS") |
| K, Notes | =IF(D2="waiting on the pull", "", AITEXT("In 20 words or fewer, name one way a competing listing could beat this one. Reply with the sentence only.", C2 & " at " & D2 & ", rated " & F2)) |
| L, Notes answer | Leave empty. The AI answer lands here |
Download the template CSV. Import it into a blank sheet (File, Import, Upload) and the formulas are ready to drag down. Columns C to J read "waiting on the pull" until the scrapers have created their results tabs, which is correct behavior, not an error. Column K waits for the price before it asks the AI. With the default settings (Keep Formula on), K keeps its formula as text and the answer goes one column right, into L.
The lookups use INDEX and MATCH rather than VLOOKUP because the ASIN column sits to the right of the title in the results tab. Everything except the two SheetMagic formulas is plain Google Sheets.
What to watch for
- Results go to their own tab, not next to your ASIN. A dragged column is collected into one tab named after the function, with a
Sourcecolumn pointing back at the cell that asked. Look up the values you want rather than expecting them beside column A. - Rows arrive in finish order. The jobs run in parallel, so row 7 of the results tab is not necessarily your seventh ASIN. Always match on ASIN or on
Source. - Re-running creates a second tab. If Amazon Product Results already exists, the next run makes Amazon Product Results (2). Rename or delete the old tab first so your lookups keep pointing at fresh data.
- Nothing re-bills on its own. With Keep Formula on (the default) the formula freezes as text; with it off, the status line replaces it. To refresh, re-enter the formula.
- Empty results still cost. Amazon bills per request. A dead ASIN or a keyword with no matches returns nothing and still spends the credit.
- Amazon does not publish sales volume. These formulas return what the page shows: price, rating, review count, rank, offers. Sales estimates are another product's guess, not something you can scrape.
Where to go next
Paste ten of your ASINs into a blank column, drag =AMAZONPRODUCT() down beside them, and see how much of your Monday is already done. If it holds up, the full scraper function list has the rest of the 43 scraper functions, and the e-commerce use cases page shows what other sellers pair them with.
On every plan, including Free, you can also ask the AI Chat Agent to run the pull and lay out the tabs for you in plain English. The formulas themselves work on every plan too.
Text and scraping formulas run on the free allowance. Install from the Google Workspace Marketplace, no card, no expiry.
Install free for Google SheetsAbout the author
Phil NguyenPhil builds SheetMagic, the Google Sheets add-on that brings AI and web scraping into the spreadsheet, used by 6,300+ people. He writes these guides from the formulas he runs on his own sheets.
