🚀 Discover the "Apple Store API" by Bebity! Unlock the power of the Apple Store and unleash its vast potential with ease and efficiency! 🌟 Whether you are an app developer 🛠️, a data analyst 📊, or a marketer 🚀, this versatile tool is your ultimate companion for all your Apple Store data needs.
Changelog — Apple App Store Scraper (bebity/apple-store-api)
Mirrors every shipped version of .actor/actor.json / package.json. The README carries an excerpt.
2.0.2 — 2026-09-15 · pricing
Changed
Pay-per-event is live on the Store since 2026-09-15. The prices listed in 2.0.0 were never billed; these are:
scraped-app — $0.20 / 1,000 app rows, on every plan.
app-full-details and app-public-store-details — +$0.30 / 1,000 on the Free, Bronze and Silver plans, +$0.20 from Gold.
app-ratings — +$0.20 / 1,000, on every plan.
app-review — $0.50 / 1,000 on the Free plan, $0.40 from Bronze.
Each run is charged Apify's apify-actor-start event: $0.00005 at the actor's fixed 1 GB.
Event titles and descriptions rewritten for the Store's pricing table; the input form's box descriptions show the new prices.
2.0.1 — 2026-09-15
Changed
An invalid input no longer fails the run: the log explains in colour what to fix, and the run ends as succeeded — no request sent, nothing charged. Values the input schema itself forbids (an unknown action, a wrong type) are still refused by Apify before the run starts.
Memory is fixed at 1 GB (minMemoryMbytes = maxMemoryMbytes = 1024): the actor is HTTP-only and never needs more.
2.0.0 — 2026-09-15 · full rewrite
Rewritten on Crawlee HttpCrawler; the app-store-scraper library is removed. Priced pay-per-event.
Breaking — input
One action per run: action is now searchApps · appDetails · similarApps · appReviews; privacy and ratings became the boxes includeAppStorePage and includeRatings.
fullDetail → includeAppFullDetails (on by default); unticked, rows are short (what the search, chart or similar-apps source gives).
A v1 input is refused with a message mapping it to the new fields.
Breaking — output
App rows keep the 33 historical cleanApp fields and their v1 types: id and developerId stay numbers, like the new sourceAppId and a review's appId (a review's own id stays a string).
Reviews moved to their own reviews dataset.
Failures are { failed: true, reason, inputUrl, error, scrapedAt } rows instead of empty "succeeded" runs.
Platforms: iPhone, iPad, Mac, Apple TV, Apple Watch, Vision Pro; Apple TV charts.
Developers by name, resolved with a developerConfidence.
includeAppStorePage — privacy, in-app purchases (the ones the store lists, local prices), the 25 latest versions and the app's chart rank (chartRank), from one page per app.
Reviews up to 100,000 per app, with developerResponse, isEdited, position, and the favorable / critical sorts.
Ratings histogram with its total; provenance fields sourceType, sourceAppId, searchTerm, position, platform.
Dataset views overview and failed_items for both datasets; output schema.
Fixed
Privacy labels — dead since Apple removed the page token.
Numeric app IDs were sent as bundle IDs and returned 0 rows.
App Store URLs were never parsed.
Reviews were capped at 50, developer catalogues at 50.
Rating counts were truncated (42,036,572 read as 42).
Errors were swallowed: every run ended "succeeded", with or without data.
0.0.18 — 2023-07-04
Legacy actor: a thin wrapper around app-store-scraper@0.18.0, monthly subscription.