Product reviews are some of the most useful data in ecommerce. They tell you what buyers actually care about, which products are worth stocking, and which words customers use when they describe a problem. The trouble is getting them out of a store in a usable format.
This guide covers the common reasons you might need a review export, why doing it by hand is slow, and how to do it in a few minutes with the Shopify Reviews Scraper on Apify.
The problem
Shopify itself doesn't store most reviews. Stores use third-party apps such as Judge.me, Yotpo, Okendo, Loox or Stamped.io, and each one has its own widget, its own data format and its own export tool. That creates a few headaches:
- Competitor research: you can't use the app's export button on a store you don't own.
- Review migration: moving from one app to another means mapping columns between formats.
- Product research: if you're comparing ten stores, you're dealing with up to five different widget layouts.
- Voice-of-customer and AI work: sentiment analysis and summarization need clean text in one schema.
The manual way (and why it hurts)
Without a tool, you'd open each product page, scroll the review widget, click "load more" until it stops, then copy and paste the text into a spreadsheet. Then you'd repeat that for every product. A store with a few hundred products can take a full day, star ratings and dates often don't paste cleanly, and you have to start over next month to catch new reviews.
If you own the store, the review app's CSV export works, but only for your store, and only in that app's own format.
Step 1: Open the Actor and set your input
Go to the Shopify Reviews Scraper page and click Try for free. The default input already works, so you can press Start right away to see what you get. Here are the defaults:
{ "storeUrls": [ { "url": "https://www.brooklinen.com" } ], "maxReviewsPerStore": 100, "maxProductsPerStore": 250, "includeProducts": false } -
storeUrls: store homepages. The Actor finds the products and detects the review app automatically. -
maxReviewsPerStore: a cap so you control cost. -
maxProductsPerStore: how many products to scan per store. -
includeProducts: set totrueif you also want the product list.
You can also pass productUrls to scrape just a few specific products. You don't need a login, an API key or proxies, because the Actor reads the same public widgets shoppers see.
Step 2: Read the output
Every review comes back in the same format, no matter which app the store uses. Here's a trimmed example:
| storeUrl | reviewApp | productTitle | rating | title | date |
|---|---|---|---|---|---|
| https://feals.com | judgeme | The Sleep Gummies | 5 | Sleeping again!! | 2026-10-29T19:54:41Z |
| https://feals.com | judgeme | The Sleep Gummies | 5 | 2026-10-28T16:11:48Z |
Full records also include the review body, a verified-buyer flag, helpful votes, photo and video URLs and the store's reply. You can download the dataset as CSV, Excel, JSON or XML.
A few things to know:
- Loox grid widgets don't show dates, so
dateis empty for those stores. - Stores that use an unsupported app return a single
reviewApp: "unsupported"item, which isn't charged. - Okendo and Stamped use a fast store-wide feed. For the other apps, lowering
maxProductsPerStorespeeds things up.
Step 3: Schedule it
A one-off export is useful, but the real value is getting new records on a timetable without thinking about it.
- In Apify Console, open Schedules and click Create new.
- Set the cron expression. For example,
0 8 * * *runs it every morning at 8:00. - Add the Actor (Shopify Reviews Scraper) and paste the same input JSON you used above.
- Optional: under the Actor's Integrations tab, connect Google Sheets, Slack, Zapier, Make or a webhook so each finished run lands where your team already works.
To monitor new reviews, keep maxReviewsPerStore small. Judge.me, Okendo and Stamped return the newest reviews first, so a daily run picks up recent feedback without re-downloading the whole history.
Step 4: Run it from Python with apify-client
If you'd rather pull the data into your own scripts or CRM, use the official apify-client package (pip install apify-client). Grab your API token from Settings > API & Integrations in Apify Console and keep it in an environment variable rather than in code.
import os from apify_client import ApifyClient client = ApifyClient(os.environ["APIFY_TOKEN"]) run_input = { "storeUrls": [ { "url": "https://www.brooklinen.com" } ], "maxReviewsPerStore": 100, "maxProductsPerStore": 250, "includeProducts": False } run = client.actor("perskekits/shopify-reviews-scraper").call(run_input=run_input) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item.get("productTitle"), item.get("rating"), item.get("title")) From there you can write rows to a database, feed review text to a sentiment model, or push low-star reviews into a Slack channel.
What it costs
The Actor uses Apify's pay-per-event pricing, so you pay for results, not for server time:
- $0.005 per run start
- $0.0005 per review returned
That works out to $0.50 per 1,000 reviews. For example, 100 reviews cost about $0.055, and 1,000 reviews cost about $0.51. Stores where no reviews are found only cost the start fee. Apify's free plan includes a small amount of monthly platform credit, which is enough to try small runs. Check the Actor's pricing tab for the current rates before you run anything large.
FAQ
Which review apps are supported?
Judge.me, Yotpo, Okendo, Loox and Stamped.io. The app is detected per store, so you can mix stores in a single run.
Do I need access to the store?
No. Only public review data that's visible on the storefront is collected.
Does it collect customer emails?
No. Reviewer names are returned only the way the store displays them, usually a first name and last initial.
Can I use it to migrate reviews between apps?
It gives you every review in one consistent schema, which makes column mapping much easier. Check your destination app's import format before you upload.
Is it legal?
It collects publicly visible content only. You're responsible for using the data in line with applicable laws such as GDPR and the website's terms.
My store isn't detected. What now?
It may use an app that isn't supported yet, such as Shopify Product Reviews, Reviews.io or Fera. Open an issue on the Actor's Issues tab with the URL.
Wrapping up
Exporting reviews shouldn't take a day of copying and pasting. Add a store URL, press Start, and you'll have every review in one clean format. Try the Shopify Reviews Scraper on Apify.