agentsclimarketplace

Apify app store reviews scraper

Skill johnisanerd/claude-skill-app-store-reviews-scraper/apify-app-store-reviews-scraper

Claude/agent skill: scrape Apple App Store reviews into structured JSON. Installs via npx skills add.

Install
npx -y skills add johnisanerd/claude-skill-app-store-reviews-scraper --skill apify-app-store-reviews-scraper

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • 18 days oldThe repository was created 18 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Scrape Apple App Store reviews into structured JSON with the Apify Apple App Store Reviews API Actor (johnvc/apple-app-store-reviews-api). Give it a numeric Apple product ID or just an app name and get one row per review with rating, review_title, review_text, author_name, reviewed_version, review_date_iso, and app context, across 52 country stores, sorted by most recent, most helpful, most favorable, or most critical. Use when the user wants an app store reviews scraper, wants to scrape App Store reviews or iOS app reviews, export Apple app reviews to JSON or CSV, build a review dataset for one or more apps, or pull the reviews behind a competitor's App Store listing. Pay-per-review billing, MCP-ready for Claude and other AI agents.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

7.4 KB, as published. Nobody here has run it

App Store Reviews Scraper: Apple Reviews to Structured JSON

Scrape Apple App Store reviews into clean JSON with the Apify Apple App Store Reviews API. Give it a numeric product ID or just an app name, pick a country store and a sort order, and get one flat row per review: rating, title, body text, author, reviewed version, and dates.

When to use this skill

  • The user wants to scrape App Store reviews (to JSON, CSV, a sheet, or a database).
  • They want the reviews for a specific iOS or macOS app as a dataset.
  • They want reviews from a specific country store, or the most critical or most helpful reviews first.
  • They ask for an "app store reviews scraper", "apple reviews scraper", or "iOS review export".

Not for: App Store keyword rankings or app search results (use the Apple App Store Search Actor), app listing metadata such as price or screenshots (use the Apple App Store Product API Actor), or Google Play reviews (different store, different Actor).

What you get (one row per review)

review_id, review_title, review_text, rating (integer 1 to 5), review_date (locale string) plus review_date_iso, reviewed_version, author_name, author_id, product_id, app_platform (ios or macos), app_country, sort_order, page_number, position_on_page, position_global, total_page_count, reviews_for_current_version, fetch_timestamp. When a review carries helpfulness votes and parse_helpfulness is on, helpful_count and total_helpful_count are added; most rows do not have them.

Prerequisites

The Actor

Run it with the Apify CLI

Scrape by app name (the Actor resolves the top App Store search match):

apify actors call "johnvc/apple-app-store-reviews-api" -i '{"app_name":"spotify","country":"us","sort":"mostrecent","max_reviews":100}' \
  --json \
  --user-agent apify-awesome-skills/apify-app-store-reviews-scraper \
  2>/dev/null

Scrape exact apps by product ID, most critical first, from the UK store:

apify actors call "johnvc/apple-app-store-reviews-api" -i '{"product_ids":["534220544","363590051"],"country":"gb","sort":"mostcritical","max_reviews":200}' \
  --json \
  --user-agent apify-awesome-skills/apify-app-store-reviews-scraper \
  2>/dev/null

Every call carries the three flags this repo expects: --json, --user-agent apify-awesome-skills/apify-app-store-reviews-scraper, and 2>/dev/null.

Run it from Claude or another AI agent (MCP)

The Actor is MCP-ready. Add the hosted server URL:

https://mcp.apify.com/?tools=actors,docs,johnvc/apple-app-store-reviews-api

Then ask, for example: "Scrape the 100 most recent App Store reviews for Duolingo in the US and export them as JSON." MCP setup docs: https://docs.apify.com/platform/integrations/mcp

Workflow

  1. Identify the app. Prefer product_ids (the number after id in an App Store URL: apps.apple.com/us/app/slug/idNNNNNNNN) for exact targeting. app_name is fine when the user only knows the name; the Actor reviews the top search match.
  2. Pick the store and order. country (two-letter code, 52 stores, default us) drives the storefront and the locale of review text and dates. sort is mostrecent, mosthelpful, mostfavorable, or mostcritical (iOS only; macOS always returns most recent).
  3. Bound the volume. max_reviews caps rows per app (default 100). Setting 0 means unlimited up to 50 pages, about 1,250 reviews on iOS or 500 on macOS.
  4. Estimate cost, then confirm with the user if the run is large. See references/gotchas.md.
  5. Run the Actor and read the dataset. Deliver rows as JSON or CSV, or hand back the dataset link. Dedupe across runs on review_id.

Inputs

  • product_ids (array of strings): numeric Apple product IDs, fetched sequentially in one run
  • app_name (string): free-form app name, auto-resolved to the top search match when product_ids is empty (one of the two is required)
  • country (enum, 52 codes, default us): Apple country store
  • sort (enum, default mostrecent): mostrecent, mosthelpful, mostfavorable, mostcritical
  • max_reviews (integer, default 100): cap per app; 0 = unlimited up to 50 pages
  • start_page (integer, default 1): resume a long run
  • include_macos (boolean, default true): set false to skip macOS apps without charges
  • normalize_dates (boolean, default true): adds review_date_iso
  • parse_helpfulness (boolean, default true): adds helpfulness counts when a review has votes

Cost

Billing is per review returned plus a small one-time setup fee per run. A 100-review run is well under a dollar; even the 1,250-review iOS maximum for one app stays around two dollars. Batch multiple product_ids into one run so the setup fee is paid once. Live prices and estimates are in references/gotchas.md.

Honest limits

  • sort applies to iOS apps only; macOS apps always return most recent.
  • app_name resolution takes the top search match, which can be the wrong app for generic names; use product_ids when it matters.
  • review_date_iso is best-effort parsing and can be null for unfamiliar locale formats; the raw review_date string is always there.
  • Helpfulness counts appear only on reviews that have votes; do not promise them on every row.
  • Apple serves a bounded review window per app (about 50 pages), not the full historical archive.

Troubleshooting

  • Empty dataset: wrong product_id, an app with no reviews in that country store, or a macOS app with include_macos false.
  • Wrong app came back: app_name matched a different app; rerun with the exact product_ids.
  • Fewer rows than max_reviews: the store had fewer reviews; total_page_count on each row shows what was available.
  • Run stops around 1,250 rows per iOS app: the 50-page cap; use start_page to continue in a follow-up run.

See references/gotchas.md for cost guardrails and error recovery, and references/actor-index.md for the Actor routing table.

Related Apple App Store Actors

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.