Amazon Product Research in Google Sheets, Not 40 Tabs
Amazon product research in Google Sheets: 40 ASINs checked in about a minute instead of 2 hours of tabs. Result tables, a template, and what it costs.
Phil · 15 min read
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.
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. Each formula cell is left showing something like ✅ 1 result → Amazon Product Results.
That is 40 calls at 1 integration 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
Turn on Keep Formula in the SheetMagic sidebar before a run you want to keep. The formula freezes as text once the results land, so a recalculation cannot re-run all 40 calls and bill you a second time for numbers you already have.
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 | IsPrime | Badge |
|---|---|---|---|---|---|---|---|---|
| B2 | 1 | Neater Pets Stainless Steel Dog Bowl, 8 Cup, Non-Slip Base | B07QK9SJ4T | 24.99 | 4.6 | 18400 | TRUE | Amazon's Choice |
| B2 | 2 | Yeti Boomer 8 Dog Bowl, Stainless Steel | B073X6KSVQ | 50.00 | 4.8 | 9900 | TRUE | |
| B2 | 3 | Frisco Double Diner Stainless Steel Bowl, Medium | B08GKV3R2M | 17.48 | 4.4 | 3120 | TRUE | Best Seller |
| B2 | 4 | Basis Pet Made in USA Stainless Steel Dog Bowl, 6 Cup | B01N5C8JQ2 | 29.95 | 4.7 | 1204 | FALSE |
One call, one credit, a whole page of competitors. The table is 18 columns wide in the sheet, not the nine 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 24 columns 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 integration credit. The free allowance is 100 integration 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 integration credits, and it writes straight into the cell, so it behaves like any normal 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.
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 margins, 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'!$G:$G, 'Amazon Offers Results'!$B:$B=A2, 'Amazon Offers Results'!$U:$U=TRUE), 1), "run AMAZONOFFERS") |
| J, Lowest other offer | =IFERROR(MIN(FILTER('Amazon Offers Results'!$G:$G, 'Amazon Offers Results'!$B:$B=A2, 'Amazon Offers Results'!$U:$U=FALSE)), "run AMAZONOFFERS") |
| K, Notes | =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) |
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.
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.
- Turn on Keep Formula before a run you care about. Without it, a recalculation re-runs every call and spends the credits again.
- 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 43 more sources, and the e-commerce use cases page shows what other sellers pair them with.
On Solo, Team, and Business 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, including Free.
Every formula in this article runs on the free allowance. Install from the Google Workspace Marketplace, no card, no expiry.
Install free for Google Sheets