Shopify App Store Scraper | App Pricing, Rankings, Reviews
Pricing
from $0.40 / 1,000 app results
Shopify App Store Scraper | App Pricing, Rankings, Reviews
Scrape the Shopify App Store at $0.75 per 1,000 apps on the free plan: every app pricing plan, category rankings, rating, reviews, developers with address and launch date. Start from apps, categories or developers; only-new mode for a daily watch.
Pricing
from $0.40 / 1,000 app results
Rating
0.0
(0)
Developer
Aurelix
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
an hour ago
Last modified
Categories
Features
Share
What is Shopify App Store Scraper?
Shopify app pricing plans, category rankings, ratings and reviews from the Shopify App Store, for $0.75 per 1,000 apps, no login.
For Shopify app developers, agencies and SaaS marketers. Paid Apify plans pay from $0.40 per 1,000 apps; reviews cost $0.025 per 1,000. Only-new mode makes a daily new-app and new-review watch. Your first run with the example input costs about $0.0073 (44 apps in our test run).
| Start from | App links or handles, category names or links, developer (partner) pages |
| App fields | Pricing plans, rating and star breakdown, reviews, developer and address, launch date, languages, integrations |
| Ranks | Position of every app in each category, Shopify's order or newest first |
| Reviews | Stars, date, text, merchant store and country, time using the app, developer reply |
| Output | 32 app fields, 16 review fields; JSON, CSV, Excel, API |
| Automate | Only-new apps and reviews, schedules, Slack/webhook digest, Zapier, Make, n8n, MCP |
| Price | $0.75 per 1,000 apps (from $0.40 per 1,000 apps on paid Apify plans) |
| Free to try | Runs on Apify's free plan: the $5 monthly credit covers about 6,600 apps |
| Login needed | No |
Daily monitor: only what's new, every morning
Set it once, get only the new apps every morning. With Only new apps and reviews on and newest first, the first run returns the newest apps in the category; each later run returns only apps listed since the last run and their new reviews.
{"categoryUrls": ["Email marketing"],"categorySort": "newest","maxAppsPerCategory": 48,"includeReviews": true,"maxReviewsPerApp": 20,"onlyNewEntries": true,"stateKey": "email-marketing-daily"}
- Paste this input into the Input tab (JSON view) and click Save as a new task; it appears under Saved tasks.
- Open the task from Saved tasks and click Schedule.
- Choose Daily, pick the hour, and save.
Cost example: 1 category, about 3 new apps a day with a few reviews ≈ $0.17/month on the free plan (from $0.14 on paid plans): one run a day for 30 days, start fee included. The first run returns everything that matches, so it costs more.
Add a Slack incoming-webhook URL in slackWebhookUrl (or any URL in webhookUrl) to get a short digest of each run's new apps; nothing is sent when a run finds nothing.
Why Shopify App Store Scraper users pick this one
- Cheaper than the leading tools. $0.75 per 1,000 apps, from $0.40 on paid plans.
- Every pricing plan. Plan name, price, billing period and features for each app.
- Category ranks. Each app's position, Shopify's order or newest first.
- New apps and reviews only. Daily runs return only what earlier runs did not.
- One run, every source. Apps, categories, developers and reviews together.
Get started in 3 steps
- Paste apps into 'Apps' (e.g. klaviyo-email-marketing or an apps.shopify.com link), category names into 'Categories' (e.g. Email marketing) or developers into 'Developers'.
- Set 'Max apps per category' and turn on 'Include reviews' with 'Max reviews per app' if you want reviews; turn on 'Only new apps and reviews' for a daily watch.
- Click Start, or schedule it daily. Download JSON, CSV or Excel, or send results to Google Sheets, Slack, Zapier, Make or n8n.
▶ Try it with the example input
The form opens with an example input already filled in: that run costs about $0.0073 on the free plan.
How much does it cost to scrape the Shopify App Store?
Pay per event: you pay only for what the run returns, plus a small start fee. Bronze, Silver, Gold and higher Apify plans pay less per result. Paid plans pay $0.50 (Bronze), $0.45 (Silver) and $0.40 (Gold and higher) per 1,000 apps.
| Apps | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.0783 | $0.0533 | $0.0483 | $0.0433 |
| 1,000 | $0.75 | $0.50 | $0.45 | $0.40 |
| 10,000 | $7.50 | $5.00 | $4.50 | $4.00 |
Totals include the $0.0033 start fee per run, rounded to the cent (amounts under $0.10 to four decimals). Apify's free plan includes $5 of credit a month, enough for about 6,600 apps.
Each app row is one app result, however many categories or developers list it; reviews are billed per review row. Worked examples on the free plan, start fee included: the example input (4 apps, 40 reviews) = $0.0073; the top 100 apps of a category with full details = $0.08; 100 apps with 20 reviews each = $0.13. Apps, categories and developers the App Store does not know, pages it refused after every retry, duplicate apps and anything an earlier run returned in only-new mode are never charged.
Billing events
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
app-result | $0.75 per 1,000 apps | $0.50 per 1,000 apps | $0.45 per 1,000 apps | $0.40 per 1,000 apps |
review-result | $0.025 per 1,000 reviews | $0.02 per 1,000 reviews | $0.02 per 1,000 reviews | $0.02 per 1,000 reviews |
apify-actor-start | $0.0033 per run | $0.0033 per run | $0.0033 per run | $0.0033 per run |
Benchmarks: how we compare
| Test | Input | Result | Run time | Peak memory |
|---|---|---|---|---|
| First run (prefilled input) | 1 app + Email marketing top 3, 10 reviews each | 4 apps and 40 reviews | 10 s | 77 MB |
| Category, full details | Email marketing, 100 apps | 100 apps | 215 s | 99 MB |
| Reviews | 3 apps, 300 reviews each | 3 apps and 900 reviews | 105 s | 104 MB |
Measured on Apify at 256 MB, no proxy. App pages are read about one a second to stay under the App Store's rate limit, so full details for 1,000 apps take about 20 to 35 minutes; rank lists with 'Full app details' off read 24 apps per page in about half a second.
What data you get
Shopify App Store Scraper reads public listings on the Shopify App Store (apps.shopify.com) and returns one row per app: name, tagline, description, rating with the count per star, review count, every pricing plan with its price and features, the Built for Shopify badge, developer with website and address, launch date, languages, integrations, categories and category features. Start from app links or handles, from category names or links (each app gets its rank in the category), or from developer pages. Turn on reviews for one row per review with stars, date, text, the merchant's store name and country, time using the app and the developer's reply.
- Every row: record_type (app or review), app_handle, source_url, scraped_at in ISO 8601 UTC
- App rows: name, tagline, intro, description, highlights, icon_url, rating, review_count, rating_distribution
- App rows: pricing_summary and pricing_plans [{name, price, price_text, currency, billing_period, details, features}]
- App rows: built_for_shopify, developer_name, developer_url, developer_website, developer_address, developer_country, privacy_policy_url
- App rows: launched_date, languages, works_with, categories, category_features, found_via, category_ranks [{category, position, sort}]
- Review rows: review_id, review_url, rating, review_date, edited, text, reviewer_store, reviewer_country, time_using_app, developer_reply, developer_reply_date, app_name
| record_type | name | rating | review_count | pricing_summary | developer_name | launched_date | reviewer_store | review_date | text |
|---|---|---|---|---|---|---|---|---|---|
| app | Klaviyo: Email Marketing & SMS | 4.7 | 3431 | Free to install | Klaviyo | 2012-09-20 | |||
| review | 5 | GoDoggy | 2026-11-06 | The new Klaviyo experience is out of this world. Composer... |
One full app record, exactly as a real run returned it (long text and lists shortened here):
{"record_type": "app","app_handle": "judgeme","app_url": "https://apps.shopify.com/judgeme","name": "Judge.me Product Reviews App","tagline": "Collect unlimited product reviews, star ratings, testimonials","intro": "Sell more with unlimited product reviews, UGC, star ratings, Google reviews and testimonials","description": "Driving traffic is only half the battle – trust is what converts. Judge.me boosts conversion rate with unlimited product... [363 more characters]","highlights": ["Collect and manage unlimited reviews, photos, videos, testimonials, ratings","Display eye-catching review widgets, testimonial sliders and product ratings","Send coupons and referrals to drive more reviews and repeat sales","... [2 more]"],"icon_url": "https://cdn.shopify.com/app-store/listing_images/8cada0f5da411a64e756606bb036f1ed/icon/CIfp9fWd34sDEAE=.png","rating": 5,"review_count": 49778,"rating_distribution": {"1": 156,"2": 37,"3": 77,"4": 819,"5": 48689},"pricing_summary": "Free plan available. Free trial available.","pricing_plans": [{"name": "Forever Free","price": 0,"price_text": "Free","currency": "USD","billing_period": null,"details": null,"features": ["Unlimited product and store reviews","Unlimited visual reviews (photos/videos)","Review widget & star rating badge","... [5 more]"]},{"name": "Awesome","price": 15,"price_text": "$15 / month","currency": "USD","billing_period": "month","details": null,"features": ["AI (replies, summary, translations)","130+ integrations, inc. Klaviyo, Gorgias","16 widgets (Snippets, Q&A, Reviews Page)","... [5 more]"]}],"currency": "USD","built_for_shopify": true,"developer_name": "Judge.me","developer_url": "https://apps.shopify.com/partners/judge-me","developer_website": null,"developer_address": "C/O Buckworths 2nd Floor, 1-3 Worship Street, London, England, ENG, EC2A 2AB, GB","developer_country": "GB","privacy_policy_url": "https://judge.me/privacy?utm_source=core_app&utm_medium=app_store","launched_date": "2015-06-25","languages": ["English","Spanish","French","... [12 more]"],"works_with": ["Checkout","Customer accounts","Shopify Flow","... [7 more]"],"categories": [],"category_features": ["Testimonials","Photo reviews","Video reviews","... [36 more]"],"details": true,"found_via": ["app"],"category_ranks": null,"source_url": "https://apps.shopify.com/judgeme","scraped_at": "2026-11-07T18:18:46Z"}
Use cases
- Shopify app developers tracking competitors' pricing, ratings and new reviews
- Agencies and SaaS marketers building lists of Shopify app developers in a category
- Founders sizing a category before building an app: count, ratings, prices, launch dates
- Product teams watching newly listed apps in their category every morning
Use-case recipes
Daily new-app watch in your category
Categories: your category, Category order: Newest apps first, Only new apps and reviews: on, then schedule daily with a Slack webhook. Each morning you get the apps listed since yesterday with their pricing, developer and launch date; quiet days cost only the start fee.
Competitor review alerts
Apps: your competitors, Include reviews: on, Max reviews per app: 100, Only new apps and reviews: on. Each run returns their current rating and review count plus only new reviews, with the developer's reply, so you see complaints you could win on.
Category pricing map
Categories: one category, Max apps per category: 0. Every app with all pricing plans, so you can chart free plans, entry prices and billing periods before you price your own app.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
appUrls (Apps) | array | Apps to read, as the app handle or any link to the app, e.g. 'klaviyo-email-marketing' or 'https://apps.shopify.com/judgeme'. | |
categoryUrls (Categories) | array | Categories to list, as a name, handle or link, e.g. 'Email marketing', 'product reviews' or 'https://apps.shopify.com/categories/store-design-site-optimization-seo'. | |
maxAppsPerCategory (Max apps per category) | integer | Upper limit of apps read from each category (and each developer), e.g. 24 for the first page. 0 = every... | 24 |
includeReviews (Include reviews) | boolean | Also return reviews for every app, one row each: stars, date, text, merchant store name and country, time using the... | false |
maxReviewsPerApp (Max reviews per app) | integer | Upper limit of reviews per app, e.g. 100. 0 = every review (large apps have tens of thousands). | 50 |
developerUrls (Developers) | array | Developers (Shopify partners) whose apps to read, as the partner handle or link, e.g. 'klaviyo' or 'https://apps.shopify.com/partners/judge-me'. |
All 14 fields, with examples: see the Input tab.
Use with AI agents (MCP)
MCP (Model Context Protocol) is the open standard that lets AI assistants such as Claude, ChatGPT and Cursor call outside tools. Apify's hosted MCP server at https://mcp.apify.com/?tools=aurelix/shopify-app-store-scraper gives your assistant this Actor only: it fills in the input from your request, runs it and reads the apps back, at the same per-result price as a run started by hand.
Example prompts
- "List the top 20 email marketing apps on the Shopify App Store with their cheapest paid plan and rating"
- "Get the 50 newest reviews of the Shopify app judgeme and summarise the complaints"
- "Which Shopify apps were listed in the product reviews category this week?"
Claude Desktop and claude.ai
Settings > Connectors > Add custom connector, name it Apify, paste https://mcp.apify.com/?tools=aurelix/shopify-app-store-scraper, keep the detected OAuth settings, select Add and sign in to Apify.
Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com/?tools=aurelix/shopify-app-store-scraper"
Cursor and VS Code
Add this to ~/.cursor/mcp.json (Cursor); in VS Code's .vscode/mcp.json put the same entry under "servers" with "type": "http". Sign in to Apify when asked.
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=aurelix/shopify-app-store-scraper"}}}
ChatGPT
Turn on Developer mode, open Settings > Apps & Connectors > Create, paste the URL above as the MCP server URL, choose OAuth and authorize Apify.
Clients without sign-in send Authorization: Bearer <YOUR_APIFY_TOKEN> instead. No Apify account? This Actor supports Apify's agentic payments: an agent can pay per run with a prepaid, spend-capped token, bought with x402 stablecoin payments.
n8n AI agent
Give an AI Agent node an MCP Client Tool with the endpoint https://mcp.apify.com/?tools=aurelix/shopify-app-store-scraper and a Bearer credential holding your Apify token.
Use it from AI agents (MCP), the API or no-code
Copy this to your AI assistant
Use the Apify Actor aurelix/shopify-app-store-scraper (Shopify App Store Scraper) through Apify's MCP server or API. Main input: appUrls (Apps); categoryUrls (Categories). Example input: {"appUrls": ["https://apps.shopify.com/judgeme"], "categoryUrls": ["Email marketing"], "maxAppsPerCategory": 3, "includeReviews": true, "maxReviewsPerApp": 10}. Each result is one app with fields such as record_type, app_handle, app_url, name, tagline, intro, description, highlights. It costs $0.75 per 1,000 apps on Apify's free plan plus a $0.0033 start fee per run, and needs no login.
MCP server URL for this Actor: https://mcp.apify.com/?tools=aurelix/shopify-app-store-scraper (setup for each client in the section above).
API
Start a run and read the dataset with Apify's REST API or the Python and JavaScript clients:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("aurelix/shopify-app-store-scraper").call(run_input={'appUrls': ['https://apps.shopify.com/judgeme'], 'categoryUrls': ['Email marketing'], 'maxAppsPerCategory': 3, 'includeReviews': True, 'maxReviewsPerApp': 10})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
No-code: schedule it in 3 clicks
Send the results to Google Sheets, Zapier, Make, n8n, Slack or any webhook URL.
- Fill in the input, then click Save as a new task.
- In the task, click Schedule and pick daily or weekly (Apify Schedules).
- Turn on Only new apps and reviews so each run returns only what is new, and paste a Slack or webhook URL into Slack webhook URL / Webhook URL to get a digest of the new items (count plus the top 10) after every run.
Prefer n8n or Make? Ask in the Issues tab and we will share a ready-made workflow for it.
FAQ
Can I scrape the Shopify App Store without login?
Yes. It never logs in, so you need no Shopify account, password or cookies; only a free Apify account to run it.
Is there a Shopify App Store API?
You can use this Actor as one. Start it with Apify's REST API or the Python and JavaScript clients and read the results as JSON (see the code above), or call it from an AI agent through MCP.
How much does it cost to scrape the Shopify App Store?
About $0.75 for 1,000 apps on Apify's free plan and from $0.40 on paid plans, start fee included. The free $5 monthly credit covers about 6,600 apps.
Can I export Shopify App Store data to Excel or Google Sheets?
Yes. Download the results as Excel, CSV, JSON, XML or HTML from the run's Storage tab, or send them to Google Sheets with Apify's Google Sheets integration or the API.
Is it legal to scrape the Shopify App Store?
It reads only public data any logged-out visitor can see: app listings, category and developer pages and reviews, with robots.txt obeyed and no login or CAPTCHA solving. Reviews are returned word for word as the page shows them, written by merchants under their store names. This is not legal advice; check the rules that apply to your use.
Is there a cheaper Shopify App Store scraper?
Yes. This Actor charges $0.75 per 1,000 apps (from $0.40 on paid plans) and $0.025 per 1,000 reviews ($0.02 on paid plans), cheaper than the leading tools.
Can I send Shopify App Store data to Google Sheets, n8n or an AI agent?
Yes. Use Apify's Google Sheets integration, the n8n Apify node, or call the Actor from an AI agent through Apify's MCP server; every row is flat JSON with stable field names.
Which apps can I read?
Any public app on apps.shopify.com: by handle or link, every app in a category (with its position), or every app of a developer. A top-level category such as 'Marketing and conversion' lists all of its sub-categories.
What is the category rank?
The app's position in the category listing when the run read it: Shopify's own order (the default) or newest first. Each app row carries category_ranks with every category it was found in during the run, so a daily run is a rank tracker.
How do I watch for new apps?
Put your categories in 'Categories', set 'Category order' to 'Newest apps first' and turn on 'Only new apps and reviews'. The first run returns the newest apps; each scheduled run after that returns only apps listed since, and stops reading a category at the first page with nothing new.
How do I track new reviews of competitor apps?
List the apps under 'Apps', turn on 'Include reviews' and 'Only new apps and reviews'. Each run returns the apps' current rating and review count plus only the reviews you have not received yet, newest first.
Why are plan prices in my currency?
The App Store shows plan prices in the visitor's currency. Runs on Apify's servers see US dollars; the currency field on every plan says which currency it is.
Limits (stated honestly)
- No keyword search rankings: the App Store's robots.txt disallows its search pages, so start from categories, developers or apps.
- Pricing plans are the ones shown on the app page (up to about 4); apps with more plans link to 'See all pricing options', which is not read.
- Plan prices are in the visitor's currency; runs on Apify's US servers see US dollars.
- With 'Full app details' off, apps from categories and developers carry only the card fields (name, rating, review count, price label, tagline, badge).
- After 2 refused requests in a row (HTTP 429 or 5xx after retries) the run stops asking, keeps what it has and says so in the status.
- Developer support emails are not shown to logged-out visitors, so they are not collected.
Works great with
- Then: Tech Stack API: put the developer websites from
developer_websiteinto its domains to see the stack and email provider behind each developer
Related Aurelix tools
Public Aurelix Actors, grouped by the data they collect. All are pay-per-result and need no login.
E-commerce and product data
- AliExpress Scraper API: AliExpress search results by keyword: price, discount, rating, units sold, ship-from country and sponsored flag.
- Amazon Best Sellers & Amazon New Releases: Amazon Best Sellers and New Releases top 100 on 10 marketplaces: rank, ASIN, price, rating, rank change.
- Best Buy Canada Scraper API: Best Buy Canada search results: CAD price, sale savings, rating, reviews and seller, plus optional UPC and specs.
- Shopify Product Export Scraper: Every public product of any Shopify store with variants, SKUs, prices, barcodes, stock counts and collections.
- Shopify Best Sellers Tracker: Competitor Shopify stores' best-sellers, new products, price changes, stock-outs and restocks since your last run, plus catalogue summary.
Jobs and hiring data
- Job Bank Canada Scraper API: Official Job Bank Canada postings by month: NOC and NAICS codes, wages, hours and location.
- Greenhouse Jobs Scraper: Live jobs from a company's Greenhouse, Lever, Ashby or SmartRecruiters board, with salary and Canadian province tags.
- Career Page Monitor: New, removed and reposted roles plus hiring velocity per company, from seven job-board systems including Workday.
- LinkedIn Jobs Country Filter Scraper: Public LinkedIn job postings by keyword and country: title, company, location, seniority, job type, salary text, description.
- Multiple Job Boards Scraper: LinkedIn, about 50 company career sites, Remote OK and We Work Remotely jobs in one deduplicated list.
- Remote Job Board Scraper API: Remote OK and We Work Remotely jobs in one deduplicated list with salary, regions and tags.
- Wellfound Jobs API & Scraper: Wellfound startup jobs with salary and equity ranges, company stage and size, $0.50 per 1,000.
- Workday Job Postings Scraper: Jobs from any Workday career site by link or company name, with full descriptions and Canadian province tags.
Leads and company data
- Companies House Scraper: Newly incorporated UK companies from Companies House: SIC codes, region, registered office, directors with roles.
- Contact Page Scraper: Published company emails, phones, addresses, social pages and team members from a list of company websites.
- Decision Maker Finder: Founders, CEOs, VPs and department heads from company team pages, with title, seniority and function.
- Newly Funded Companies Hiring: Companies that just raised money (SEC Form D), with their open roles and business contacts, as a new-only monitor.
- Google Maps Phone Scraper: Local business lists from Google Maps: phones, websites, ratings, hours, coordinates; optional website emails and socials.
- Recently Funded Companies API: US companies that just filed an SEC Form D: amount raised, industry, state, executives, confirmed website.
- Tech Stack API: CMS, e-commerce platform, analytics, ad pixels, chat, CDN and email provider for each domain you enter.
- Yellow Pages Canada Scraper: YellowPages.ca businesses by search term and city: phone, website, address, postal code, hours and rating.
Ad intelligence
- Competitor Watch: One report per competitor with only what is new: Meta and TikTok ads, page changes, Shopify products and prices, jobs.
- Facebook Ad Library Search & API: Facebook and Instagram business ads from the Meta Ad Library: copy, creatives, landing pages, dates, optional EU reach.
- TikTok Ads Library API: TikTok Ads Library ads for Europe, UK, Switzerland and Turkey with targeting, reach, ad text and landing pages.
Canada and government data
- Canada Building Permits: Building permits and development applications from 7 Canadian cities: address, type, status, dates, value, applicant, contractor and Toronto planner contact.
- Government Tenders Scraper: Open tenders from SAM.gov, CanadaBuys and EU TED in one table: buyer, codes, value, deadline, contact and link.
- USPTO Trademark API: US trademark search and watch from USPTO: mark, owner or number lookups, new filings, owner, attorney, goods.
AI, content and SEO
- Google Trends by Region: Google Trends interest over time, by region and rising queries for any number of keywords, plus trending searches.
- Google Autocomplete API: Expands seed keywords into hundreds of real Google and YouTube autocomplete phrases, tagged by search intent.
- PDF Table Extraction & PDF to Markdown OCR: Turns linked PDF and Word files into Markdown per page, with tables as JSON rows, RAG chunks and OCR.
- Broken Link Crawler & SEO Audit: Audits a whole site: one row per page with SEO checks and broken links, plus a ranked issues summary.
- Bulk TikTok Transcripts Scraper: Returns TikTok video transcripts as text, timed segments and SRT, from video links or @profiles' latest videos.
- Website to Markdown API: Crawls a site and returns one row of clean main-content Markdown per page, with title, headings and links.
- YouTube Transcript Scraper: Returns YouTube video transcripts as text, timed segments and AI chunks, from videos, channels, playlists or searches.
- YouTube Video Scraper API: Full details for every YouTube video in a search, channel or playlist: views, likes, comments, tags, publish time.
More data tools
- Agoda API (Unofficial): Scrape Agoda guest reviews at $0.50 per 1,000 with this unofficial Agoda API, cheaper than the leading tools: Agoda and...
- Tennis Betting Odds Scraper: Tennis results and upcoming matches with opening and closing odds per bookmaker and implied probabilities.
Recent changes
- 0.2: Review text and developer replies are returned word for word with their paragraph breaks; new developer_address field; comma-separated handles, common page-limit inputs and unreadable numbers are accepted.
- 0.1: First release: apps, categories with rank, developers and reviews in one run; pricing plans with features; only-new apps and reviews; Slack/webhook digest.
The full history is on the Changelog tab.
Tested daily
An automated health check runs this Actor every day on a fixed input and checks that at least 13 apps come back with record_type, app_handle, source_url, scraped_at filled in; a failed check alerts the maintainer straight away.
Your feedback
Missing a field, found a bug or need another filter? Open an issue on the Issues tab; we aim to answer within a day. If this Actor saved you time, a short review helps other people find it.
