App Store Search & Top Charts - iOS App Data
Pricing
from $0.08 / 1,000 app results
App Store Search & Top Charts - iOS App Data
Search iOS apps, look up IDs or bundle IDs, and get country top-free, top-paid, or top-grossing charts from Apple's public catalog and RSS endpoints. No login, browser scraping, proxy, or personal-data collection.
Pricing
from $0.08 / 1,000 app results
Rating
0.0
(0)
Developer
drop-in apis
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 minutes ago
Last modified
Categories
Share
App Store Search & Top Charts API
Search iOS apps, resolve app IDs or bundle IDs, and get country top-free, top-paid, or top-grossing charts from Apple's public catalog and RSS endpoints. Results are structured app rows that can feed dropin-apis/app-store-reviews directly—no login, App Store Connect key, browser scraping, proxy, or CAPTCHA handling.
Price: $0.00008 per delivered app row ($0.08 per 1,000), with no custom setup or query fee. Apify also adds its standard $0.00005 Actor Start event per 256 MiB run. A real zero-result answer succeeds, writes a free run summary, and pushes no paid result row; the platform start event can still apply. Live health runs delivered 24 search results in 2.955–4.225 seconds; measured Actor cost averaged about $0.0003 per run. Full evidence is in ./VERIFY.md.
What you get
search: keyword → up to 200 iOS apps for one storefront.lookup: numeric IDs,id123..., App Store URLs, or bundle IDs → matching apps.topCharts: top free, paid, or grossing apps by country, optionally filtered by Apple genre ID, up to 50 rows.- One stable shape across all modes:
appId,bundleId,country, name, public publisher display name, price, ratings, version, genres, OS requirement, Store URL, source, chart rank, andcheckedAt. - A free
RUN-SUMMARYwith found/pushed counts, invalid inputs, endpoint families, and the empty-result explanation.
The output intentionally omits App Store icons, screenshots, previews, and copied app-description bodies. Apple's Search API treats promotional media as restricted promotional content; this Actor stays focused on factual catalog fields and includes the product URL.
Quick start
Search by keyword
{"mode": "search","term": "markdown editor","country": "us","limit": 25}
Look up IDs, URLs, or bundle IDs
{"mode": "lookup","apps": ["570060128","https://apps.apple.com/us/app/gmail-email-by-google/id422689480","com.google.Gmail"],"country": "us"}
Get a country chart
{"mode": "topCharts","country": "gb","chartType": "grossing","limit": 25}
Optional genreId accepts a numeric Apple App Store genre ID, for example 6014 for Games.
Output
Each paid dataset row is one app:
{"type": "app","sourceMode": "search","sourceEndpoint": "itunes-search","query": "markdown editor","rank": null,"chartType": null,"appId": "100000001","bundleId": "com.example.notes","country": "us","name": "Example Notes","developer": "Example Software LLC","price": 0,"currency": "USD","averageRating": 4.7,"ratingCount": 1200,"version": "3.2.1","releaseDate": "2024-02-01T00:00:00Z","currentVersionReleaseDate": "2026-09-20T00:00:00Z","genres": ["Productivity", "Utilities"],"genreIds": ["6007", "6002"],"contentRating": "4+","size": "12345678","minimumOsVersion": "16.0","url": "https://apps.apple.com/us/app/example-notes/id100000001","checkedAt": "2026-10-10T00:00:00.000Z"}
Apple owns the live values; the example shape uses synthetic fixture values. checkedAt is when this Actor requested the data, not a promise about when Apple refreshed its catalog cache.
Chain search → reviews
- Run this Actor in
search,lookup, ortopChartsmode. - Take the
appIdvalues from the dataset. - Run App Store Reviews Scraper:
{"apps": ["570060128", "422689480"],"countries": ["us"],"maxReviewsPerApp": 100,"includeAppDetails": false}
The common appId, country, and name fields make that handoff explicit. The two Actors remain separate so catalog buyers do not pay to fetch reviews they did not request.
Reliability and limits
- Apple's Search API documentation says approximately 20 calls per minute, subject to change. Calls are paced at least 3.1 seconds apart,
Retry-Afteris honored, and 429/5xx/network failures get bounded retries. - Search supports 1–200 rows. Charts support 1–50; the Actor requests Apple's next available 10/25/50 feed size and returns only the requested count.
- Numeric app IDs are documented by Apple's Search API. Public
bundleIdlookup worked in the 2026-10-10 verification but is not listed in Apple's official lookup examples, so treat it as a useful compatibility path rather than a permanent guarantee. - Current Apple Marketing Tools JSON feeds are used for unfiltered free and paid charts. Apple's public legacy iTunes RSS feed is used for grossing or genre-filtered charts because the current grossing path returned 404 during verification.
- If current chart metadata enrichment fails after retries, the Actor can still return the chart's own factual fields and rank.
- Apple can cache catalog data and can change public endpoints. There is no historical chart archive in v1.
- The Actor accepts only fixed Apple hosts, HTTPS, bounded redirects, a 2 MB response cap, a 20-second request timeout, and at most 50 lookup inputs.
Billing and empty results
The product event is apify-default-dataset-item at $0.00008. One pushed row means one charged result. There is no custom setup, query, chart, invalid-input, or empty-result event. Apify injects its standard apify-actor-start event—currently $0.00005 for this 256 MiB Actor—so an empty run has no result charge but is not necessarily a zero-dollar platform run.
Examples that succeed with zero paid rows:
- a keyword has no results in the chosen storefront;
- an app ID is not sold in that country;
- a bundle ID returns no public match;
- a valid country/chart combination returns an empty feed.
Network exhaustion, malformed upstream JSON, and invalid required input fail the run rather than returning invented data.
Privacy and scope
The Actor returns public app/catalog metadata. It does not collect customer accounts, review-author data, emails, phone numbers, profiles, device IDs, or private App Store Connect data. developer is only the public publisher/developer display name returned for the app listing.
FAQ
Is this affiliated with Apple?
No. It is an independent Apify Actor using public Apple endpoints. Apple, App Store, and iTunes are trademarks of Apple Inc.
Is this an App Store HTML scraper?
No. It calls Apple's public Search/Lookup API and RSS chart endpoints. It does not load product-page HTML or bypass access controls.
Why not include icons, screenshots, or descriptions?
Apple's Search API terms constrain promotional media use. V1 avoids reselling promotional assets and copied description bodies; it returns factual app metadata and the App Store product URL.
Does a zero-result search fail or cost money?
It does not fail and it has no result charge: the run saves found: 0 in RUN-SUMMARY and pushes no dataset item. Apify's standard Actor Start event can still apply.
Can I get reviews in the same run?
Not in this Actor. Pass its appId values to dropin-apis/app-store-reviews; separating the jobs keeps pricing and failures understandable.
Is bundle-ID lookup guaranteed?
No. It is a current public behavior observed live, but Apple's official lookup examples document numeric IDs rather than bundle IDs. Numeric IDs and App Store URLs are the most stable inputs.
Sources
- Apple iTunes Search API documentation
- Apple RSS Builder
- ../../research/round12/APP-STORE-SEARCH-GATE.md
- ./VERIFY.md