Apple App Store Reviews API | iOS & macOS JSON avatar

Apple App Store Reviews API | iOS & macOS JSON

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Apple App Store Reviews API | iOS & macOS JSON

Apple App Store Reviews API | iOS & macOS JSON

Apple App Store Reviews API. Fetch iOS and macOS app reviews on demand as structured JSON: ratings, titles, text, dates, versions, author, and helpfulness across 50+ country stores. Sort by most recent, most helpful, favorable, or critical. Built for ASO, sentiment, and AI agent workflows.

Pricing

from $0.01 / 1,000 results

Rating

5.0

(3)

Developer

John

John

Maintained by Community

Actor stats

3

Bookmarked

7

Total users

5

Monthly active users

7 hours ago

Last modified

Share

Apple App Store Reviews API

The fastest way to query Apple App Store reviews for any iOS or macOS app, delivered as structured JSON and built MCP-first for Claude, AI agents, and developers.

A clean Apple App Store Reviews API. Fetch star ratings, review titles, body text, author info, app versions, dates, and helpfulness counts on demand. Works across 50+ country stores. Sort by most recent, most helpful, most favorable, or most critical. Pass a numeric App Store ID or just an app name and the API finds the right one for you. Built for App Store Optimization (ASO), sentiment analysis, competitor monitoring, churn-signal tracking, localization QA, and AI agent workflows.

This actor is fully MCP (Model Context Protocol) ready, with one click setup for Claude Code, Claude Cowork, and Claude.ai Chat.


AI Agent and MCP Integration

The fastest path to use this actor is through the Apify MCP server. Once connected, Claude (or any MCP-compatible AI agent) can discover and invoke this actor directly from a natural language prompt. No glue code, no client SDK, no manual REST calls.

The Apify MCP server hosts three discovery tools (search-actors, fetch-actor-details, add-actor) that let agents find and register this actor on the fly. Pick the setup that matches your Claude surface.

Option 1: Claude Code (terminal CLI)

The single-command setup. Open your terminal and run:

$claude mcp add apify -- npx -y @apify/actors-mcp-server

Then add your Apify API token (one time):

$claude mcp add apify -e APIFY_TOKEN=your_apify_token_here -- npx -y @apify/actors-mcp-server

Get your token at https://console.apify.com/account/integrations.

Prefer to edit config by hand? Open ~/.claude.json and add:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server"],
"env": { "APIFY_TOKEN": "your_apify_token_here" }
}
}
}

Restart Claude Code, then try a prompt like:

Get the 50 most-critical Apple App Store reviews for Netflix in the US and summarize the top three complaints.

Claude will discover this actor via search-actors, register it as a tool, and run it. You can pass either a numeric product ID or just the app name; the actor handles the lookup.

Option 2: Claude Cowork (web)

Claude Cowork uses the hosted Apify MCP endpoint over HTTP. No local install required.

  1. Open Cowork.
  2. Go to Settings > Connectors > Add custom connector.
  3. Fill in:
    • Name: Apify
    • Remote MCP URL: https://mcp.apify.com
    • Authentication: Bearer token (paste your Apify API token).
  4. Save and enable the connector.

Once connected, the Apify tools appear in the tool drawer. Try a prompt:

Use Apify to pull the 100 most-recent App Store reviews for Spotify in the UK store and bucket them by star rating.

Cowork supports dynamic tool discovery, so once Claude finds this actor in a session, it stays registered as a named tool for the rest of the conversation. Subsequent prompts reuse it without re-discovery.

Option 3: Claude.ai Chat (Connectors)

Same hosted MCP endpoint, configured through the standard Claude.ai UI.

  1. Open https://claude.ai.
  2. Click your profile, then Settings > Connectors > Add custom connector.
  3. Fill in:
    • Name: Apify
    • Remote MCP URL: https://mcp.apify.com
    • Authentication: Bearer token (your Apify API token).
  4. Save. Toggle the connector on at the start of any chat where you want App Store review data.

Then prompt as normal:

Pull the most helpful App Store reviews for Duolingo and tell me what people praise most.

Option 4: ChatGPT, n8n, Zapier, custom GPTs (direct REST)

Skip MCP entirely with a single REST call. Useful for custom GPTs, Zapier flows, n8n pipelines, or any HTTP client.

curl -X POST \
"https://api.apify.com/v2/acts/YOUR_USERNAME~apple-app-store-reviews/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"product_ids": ["534220544"], "country": "us", "max_reviews": 50}'

For ChatGPT custom GPT Actions, import the Apify OpenAPI spec as a custom action. Once added, ChatGPT can call this actor as a function from any custom GPT.

Why this actor is MCP-discoverable

  • Title and description are tuned for the Apify MCP server's search-actors tool: platform name, data type, and use case appear in the first 150 characters of the description.
  • The input schema uses MCP-friendly descriptions that read cleanly even when prefixed with REQUIRED. Every array property declares an explicit items.type so dynamic-discovery clients (Cursor, Cline, Claude Code, VS Code, Windsurf, Glama) can register the actor as a typed tool.
  • Pay-per-event pricing keeps the result-card description transparent for autonomous agents.
  • Both product_ids (exact targeting) and app_name (auto-resolution) are accepted so agents that only have an app name can still call the actor in one shot.

Full Apify MCP documentation


What You Can Extract

Every dataset item is one review, flat and ready for analysis.

FieldDescription
Star ratingInteger 1 to 5
Review titleThe headline the author wrote
Review textFull body of the review
Author name and IDDisplay name plus a stable author identifier (iOS only)
Review dateAs returned by the store, locale-formatted
Review date (ISO)Best-effort ISO 8601 normalization (e.g. 2021-06-02)
App version reviewedVersion string captured at the time of review
HelpfulnessOriginal prose plus parsed integer helpful / total counts
Source product IDNumeric Apple App Store ID this review came from
App platformios or macos, inferred automatically per app
Country storeThe two-letter country store code applied
Sort order appliedEchoes which order was requested
Page numberSource page of pagination
Reviews for current versionPresent for macOS apps only
Fetch timestampUTC ISO timestamp at request time

Each row also carries the originating product ID and country store, so multi-app and multi-country runs stay self-contained.


Use Cases

  • App Store Optimization (ASO): Track sentiment, monitor version-specific complaints, and benchmark competitor reviews.
  • Sentiment analysis pipelines: Feed real review text into an LLM or a classical NLP model. Star ratings already labeled.
  • Competitor monitoring: Watch a rival app's reviews and react to negative spikes before they show in the headline rating.
  • Churn-signal tracking: Catch the first one-star reviews on a new release and triage them in your support workflow.
  • Localization QA: Compare reviews from the US, UK, JP, DE, and BR stores to spot region-specific bugs and translation issues.
  • AI agent feedback loops: Let an AI agent gather reviews on demand to ground its answers in real user voice.
  • Investor and PM research: Quickly read what users actually say about an app, not just the headline rating.

Input Parameters

ParameterTypeRequiredDefaultDescription
product_idsarray of stringyes (one of)[]Numeric Apple App Store IDs (e.g. ["534220544"]). Find each ID in the App Store URL: apps.apple.com/<country>/app/<slug>/id<NNNNNNNN>.
app_namestringyes (one of)(none)Free-form Apple app name (e.g. netflix). If product_ids is empty, the actor resolves the ID automatically and reviews the top match.
countrystringnousTwo-letter Apple country store code. 50+ stores supported.
sortstringnomostrecentmostrecent, mosthelpful, mostfavorable, or mostcritical. iOS only; macOS apps always return most-recent.
max_reviewsintegerno100Hard cap on reviews per app. 0 for unlimited (internally capped at 50 pages).
start_pageintegerno1Page to start paginating from. Useful for resuming a long run.
include_macosbooleannotrueSet false to skip macOS apps entirely.
normalize_datesbooleannotrueEmit review_date_iso alongside the locale-formatted date.
parse_helpfulnessbooleannotrueExtract helpful_count and total_helpful_count integers from the helpfulness prose.
output_filestringnoautoLocal-only JSON output filename for debugging. Ignored on Apify platform.

At least one of product_ids or app_name must be provided.


Example Inputs

Basic: most recent reviews for one app (by product ID)

{
"product_ids": ["534220544"],
"max_reviews": 50
}

Auto-resolve by app name

{
"app_name": "netflix",
"country": "us",
"sort": "mostcritical",
"max_reviews": 100
}

Multi-app competitor sweep

{
"product_ids": ["324684580", "284882215", "447188370"],
"country": "us",
"sort": "mostrecent",
"max_reviews": 200
}

International sentiment comparison (Japan, most helpful)

{
"app_name": "spotify",
"country": "jp",
"sort": "mosthelpful",
"max_reviews": 200
}

macOS app (Xcode)

{
"product_ids": ["497799835"],
"max_reviews": 100,
"include_macos": true
}

Unlimited (drain all available reviews, capped at 50 pages internally)

{
"product_ids": ["534220544"],
"max_reviews": 0
}

Example Output

Each dataset item is one review:

{
"position_global": 1,
"position_on_page": 1,
"review_id": "7417861364",
"review_title": "Lacks ratios",
"review_text": "Beautiful app with images and videos but doesn't tell you how much of what goes in making the drink. Needs ratios!",
"rating": 3,
"review_date": "Jun 02, 2021",
"review_date_iso": "2021-06-02",
"reviewed_version": "Version 3.4.2",
"helpfulness_text": "3 out of 5 customers found this review helpful",
"helpful_count": 3,
"total_helpful_count": 5,
"author_name": "Punkiepollo",
"author_id": "100937133",
"product_id": "534220544",
"app_platform": "ios",
"app_country": "us",
"sort_order": "mostrecent",
"page_number": 1,
"total_page_count": 8,
"fetch_timestamp": "2026-05-11T18:30:00+00:00"
}

Pricing

Transparent pay-per-event pricing. You only pay for what you get.

EventCostWhen charged
setup$0.02Once at the start of each run. Also covers the optional app-name to product-id lookup.
review$0.0015Per review pushed to the dataset.

Cost estimates

Use caseReviews returnedApprox. cost
Quick spot-check (10 reviews)10$0.035
Standard scan (100 reviews)100$0.17
Deep crawl (500 reviews)500$0.77
Bulk competitor sweep (5 apps, 200 reviews each)1,000$1.52
Maximum iOS depth (1 app, 50 pages, about 1250 reviews)1,250$1.90

No monthly subscription. No hidden fees. Stop the run at any time and pay only for what was already returned.


How to Get Started

  1. Create an Apify account at https://apify.com if you do not have one.
  2. Open the actor page in the Apify store and click Try for free.
  3. Provide either a product_ids array (numeric App Store IDs) or an app_name (free-form), then click Start.
  4. Watch the run live in the Apify console, then download results as JSON, CSV, Excel, or RSS once it finishes.
  5. Optional: connect via MCP (see top of this README) to call the actor directly from Claude or any AI agent.

How to find a product ID

Open the App Store page for any app and look at the URL. The numeric ID is the part after /id:

https://apps.apple.com/us/app/netflix/id363590051
^^^^^^^^^
product_id

Or skip this step entirely and pass an app_name instead. The actor looks it up for you.


FAQ

Q: Why are some fields empty on certain reviews? A: Apple returns slightly different shapes for iOS and macOS apps. macOS reviews do not include review_id or author_id, and they include the reviews_for_current_version field that iOS does not. The actor flags each row with app_platform so you can branch on it cleanly downstream.

Q: Why doesn't sort change the order for one of my apps? A: Sort applies only to iOS apps. macOS apps always return reviews in most-recent order regardless of the sort value. This is a behaviour of the Apple store, not of the actor.

Q: How many reviews does one page return? A: About 25 per page on iOS and about 10 per page on macOS. Page size is fixed by Apple and cannot be changed via input.

Q: How do I drain every review on an app? A: Set max_reviews to 0 for unlimited. The actor caps internally at 50 pages as a safety guard (about 1250 iOS reviews or 500 macOS reviews), which is the practical depth of what the store exposes.

Q: What happens if I run out of budget mid-run? A: The API stops cleanly at the next review and writes a warning to the log. Reviews already pushed are charged; the rest are not. Raise your budget and re-run with start_page to resume.

Q: Can I get developer responses? A: The underlying data source does not expose developer-reply text for App Store reviews. If this changes, the actor will be updated.

Q: Which country stores are supported? A: 50+ stores including US, UK, CA, AU, DE, FR, JP, KR, BR, MX, IN, and more. See the country parameter dropdown for the full list.

Q: Does this work with AI agents and MCP? A: Yes. Setup instructions for Claude Code, Claude Cowork, and Claude.ai Chat are at the top of this README. The actor is registered with the Apify MCP server and is discoverable via search-actors.


Last Updated: 2026.05.20