Apple App Store Reviews & Ratings Scraper avatar

Apple App Store Reviews & Ratings Scraper

Pricing

from $6.15 / 1,000 results

Go to Apify Store
Apple App Store Reviews & Ratings Scraper

Apple App Store Reviews & Ratings Scraper

Extract Apple App Store reviews and ratings for any app by app ID, URL or search term. Get star rating, title, body, author, app version, votes and date, with country codes like us, gb, mx and br. Export to JSON, CSV or Excel. No API key.

Pricing

from $6.15 / 1,000 results

Rating

5.0

(1)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

20 hours ago

Last modified

Share

Apple App Store Reviews & Ratings Scraper

Apple App Store Reviews & Ratings Scraper

Here is one real result, with every field the actor returns (the appDescription, appScreenshots, and appLanguages arrays are trimmed here for readability):

{
"appId": 333903271,
"appName": "X",
"appAverageRating": 4.58335,
"appRatingCount": 10938508,
"appVersionLatest": "12.16",
"seller": "X Corp.",
"genre": "News",
"appDescription": "X (formerly Twitter) is a social media app where you can follow breaking news, live events, and trending topics as they happen...",
"appReleaseNotes": "We made improvements and squashed bugs so X is even better for you.",
"appPrice": 0,
"appFormattedPrice": "Free",
"appCurrency": "USD",
"appContentRating": "17+",
"appReleaseDate": "2009-10-09T19:50:00Z",
"appCurrentVersionReleaseDate": "2026-08-10T22:31:11Z",
"appSizeBytes": 496360448,
"appMinimumOsVersion": "15.0",
"appDeveloperName": "X Corp.",
"appDeveloperUrl": "http://x.com/",
"appDeveloperViewUrl": "https://apps.apple.com/us/developer/x-corp/id296415947?uo=4",
"appDeveloperId": 296415947,
"appBundleId": "com.atebits.Tweetie2",
"appIcon": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/c8/a4/ff/c8a4ffb6-5efa-2202-61bb-d727ff3497a6/ProductionAppIcon-0-0-1x_U007emarketing-0-8-0-0-0-85-220.png/512x512bb.jpg",
"appScreenshots": ["https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/21/82/3c/.../320x480bb.jpg"],
"appGenres": ["News", "Social Networking"],
"appLanguages": ["AR", "EN", "ES", "FR", "JA", "PT"],
"appAverageRatingCurrentVersion": 4.58335,
"appRatingCountCurrentVersion": 10938508,
"country": "us",
"reviewId": "14420739998",
"author": "hi 录哥",
"authorUrl": "https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewUserReviews?userProfileId=1956428607",
"rating": 5,
"title": "好",
"body": "非常好",
"appVersion": "12.16",
"voteSum": null,
"voteCount": null,
"developerResponse": null,
"developerResponseDate": null,
"updatedAt": "2026-08-13T00:00:00.000Z",
"url": "https://apps.apple.com/us/app/x/id333903271?uo=4",
"aiSentiment": null,
"aiSentimentScore": null,
"aiSummary": null,
"aiTopics": null,
"aiCategory": null,
"observedAt": "2026-08-14T05:42:07.440Z",
"error": null
}

The most complete Apple App Store reviews scraper available. It returns every field the App Store review feed exposes (rating, title, body, author, app version, votes, and developer response) joined with full app metadata (average rating, rating count, developer, price, size, genres, languages, screenshots), plus optional AI add-ons for sentiment, summary, and topics, and gives you nine filters to target exactly the reviews you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor resolves apps from app IDs, App Store URLs, or a search term, pulls each app's metadata and the customer review feed for the country you pass, applies your rating, date, keyword, version, and developer-response filters, and writes one normalized record per review to the run's dataset. Each review record is joined with the full app metadata so every row is self-contained. Missing source values are returned as null. Three optional AI add-ons (paid plans only) can classify sentiment, summarize the review, and extract topics and a category.

Quickstart

Open the actor, paste this into the input, and press Run. It returns the 10 most recent US reviews for X (formerly Twitter).

{
"appIds": ["333903271"],
"country": "us",
"maxReviews": 10,
"sortBy": "mostRecent"
}

Provide appIds, appUrls, or a searchTerm. The Apple review feed caps at about 500 reviews per app.

Input reference

FieldTypeRequiredDefaultDescription
appIdsstring[]no["324684580"]Apple App Store numeric app IDs, for example 324684580 for Spotify.
appUrlsstring[]no(empty)Full App Store URLs, for example https://apps.apple.com/us/app/spotify/id324684580. App ID and country are read from the URL.
searchTermstringno(none)Find apps by name and scrape reviews of the top matches.
searchLimitintegerno3How many apps to take from the search term.
countrystringnousTwo-letter App Store country code for ratings and reviews, for example us, gb, mx, br.
maxReviewsintegerno10Maximum reviews per app. The App Store feed caps at about 500.
sortByenumnomostRecentReview order. One of mostRecent, mostHelpful.
includeAppMetadatabooleannofalseAlso output one app-details row for apps with no reviews (or when maxReviews is 0).
minRatingintegerno(none)Only return reviews with a star rating >= this value (1 to 5).
maxRatingintegerno(none)Only return reviews with a star rating <= this value (1 to 5).
reviewsFromDatestringno(none)Only return reviews on or after this date, for example 2025-01-01.
reviewsToDatestringno(none)Only return reviews on or before this date, for example 2025-12-31.
reviewKeywordstringno(none)Only return reviews whose title or body contains this text (case-insensitive).
reviewAppVersionstringno(none)Only return reviews left on this exact app version, for example 8.9.0.
onlyWithDeveloperResponsebooleannofalseOnly return reviews that have a developer reply.
withSentimentbooleannofalseAI add-on (paid plans only). Classify each review's sentiment with a confidence score. Billed only when produced.
withSummarybooleannofalseAI add-on (paid plans only). Generate a 1 to 2 sentence summary of each review. Billed only when produced.
withTopicsbooleannofalseAI add-on (paid plans only). Extract discussed aspects/keywords and a broad category. Billed only when produced.

Output reference

One dataset item per review (each joined with the app's metadata). Types: string, number, integer, boolean, string[], or null when the source value is absent.

FieldTypeDescription
appIdintegerApple App Store numeric app ID.
appNamestringApp name.
appAverageRatingnumberOverall average rating (0 to 5).
appRatingCountintegerTotal number of ratings.
appVersionLateststringLatest published app version.
sellerstringSeller name.
genrestringPrimary genre.
appDescriptionstringFull app description.
appReleaseNotesstringRelease notes for the current version.
appPricenumberPrice as a number.
appFormattedPricestringPrice as displayed, for example Free.
appCurrencystringCurrency code.
appContentRatingstringContent advisory rating, for example 17+.
appReleaseDatestringISO original release date.
appCurrentVersionReleaseDatestringISO release date of the current version.
appSizeBytesintegerApp download size in bytes.
appMinimumOsVersionstringMinimum iOS version required.
appDeveloperNamestringDeveloper name.
appDeveloperUrlstringDeveloper website URL.
appDeveloperViewUrlstringDeveloper page URL on the App Store.
appDeveloperIdintegerApple developer ID.
appBundleIdstringApp bundle identifier.
appIconstringApp icon image URL.
appScreenshotsstring[]App screenshot image URLs.
appGenresstring[]All genres the app is listed under.
appLanguagesstring[]Supported language codes.
appAverageRatingCurrentVersionnumberAverage rating of the current version.
appRatingCountCurrentVersionintegerRating count of the current version.
countrystringApp Store country code the review was pulled from.
reviewIdstringUnique review ID.
authorstringReview author display name.
authorUrlstringAuthor profile URL.
ratingintegerStar rating of the review (1 to 5).
titlestringReview title.
bodystringReview body text.
appVersionstringApp version the review was left on.
voteSumintegerNet helpful votes, or null.
voteCountintegerTotal votes cast, or null.
developerResponsestringDeveloper reply text, or null.
developerResponseDatestringISO date of the developer reply, or null.
updatedAtstringISO date the review was posted or updated.
urlstringApp Store URL for the app.
aiSentimentstringSentiment from the AI add-on (positive, negative, neutral), or null.
aiSentimentScorenumberSentiment confidence 0 to 1 from the AI add-on, or null.
aiSummarystringShort summary from the AI add-on, or null.
aiTopicsstring[]Topics/keywords from the AI add-on, or null.
aiCategorystringBroad category from the AI add-on, or null.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Example output record

Real record from a live run (input {"appIds": ["333903271"], "country": "us", "maxReviews": 3, "sortBy": "mostRecent"}):

{
"appId": 333903271,
"appName": "X",
"appAverageRating": 4.58335,
"appRatingCount": 10938508,
"seller": "X Corp.",
"genre": "News",
"country": "us",
"reviewId": "14420739998",
"author": "hi 录哥",
"rating": 5,
"title": "好",
"body": "非常好",
"appVersion": "12.16",
"voteSum": null,
"voteCount": null,
"developerResponse": null,
"developerResponseDate": null,
"updatedAt": "2026-08-13T00:00:00.000Z",
"url": "https://apps.apple.com/us/app/x/id333903271?uo=4",
"observedAt": "2026-08-14T05:42:07.440Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~app-store-reviews-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"appIds":["333903271"],"country":"us","maxReviews":50,"minRating":1,"maxRating":2}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~app-store-reviews-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchTerm":"spotify","searchLimit":3,"country":"gb","maxReviews":100,"sortBy":"mostHelpful"}'

Apify CLI:

apify call scrapers_lat/app-store-reviews-scraper \
--input '{"appUrls":["https://apps.apple.com/us/app/spotify/id324684580"],"maxReviews":50}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per review returned (result event). See the pricing tab for the current per-result price.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Apps that return no reviews cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 reviews per run. AI add-ons are disabled for free plans.
  • AI add-ons (withSentiment, withSummary, withTopics) require a paid plan and are charged per review only when the model returns usable output.
  • Feed ceiling. The Apple review feed returns at most about 500 reviews per app per country.

FAQ and troubleshooting

A run returned 0 reviews. Why? The app has no reviews in that country, or your filters matched nothing. Zero-result runs are not charged. Try a different country or loosen rating and date filters.

How do I get reviews for a specific country? Set country to the two-letter App Store code, for example mx or br. App Store URLs already encode the country.

Why are votes null? The current App Store review feed does not expose helpful-vote counts for every review; missing values are returned as null, never invented.

How do I only get complaints? Set maxRating to 2 (or minRating/maxRating to 1) and optionally add a reviewKeyword.

Why are the AI fields null? The AI add-ons are off by default and require a paid plan. Enable withSentiment, withSummary, or withTopics on a paid plan to populate them.

Is this an official Apple tool? No. This actor is independent and has no affiliation with Apple. It reads only data that is publicly available through the Apple App Store.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with Apple. Accesses only publicly available App Store data.