Apple App Store Apps Scraper
Pricing
from $0.02 / 1,000 app records
Apple App Store Apps Scraper
Scrape Apple App Store app search results and app metadata from public App Store data.
Pricing
from $0.02 / 1,000 app records
Rating
0.0
(0)
Developer
Fetch Cat
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
2
Monthly active users
8 days ago
Last modified
Categories
Share
Search public Apple App Store apps and export listing metadata by keyword, numeric app ID or developer ID. Get names, developers, ratings, prices, versions and screenshots for ASO research, competitor analysis and app-market datasets.
Quick start
Enter a keyword, set a small result limit and start the Actor. Download the dataset as CSV, Excel or JSON when the run finishes.
{"searchTerms": ["fitness tracker"],"country": "US","language": "en_us","maxItems": 5}
Searches return available matches, not a complete category chart. Use numeric app IDs for exact lookups. Listing URLs are not accepted.
Prefer a video guide? This short Apify walkthrough shows you how to set up and run an Actor. It uses a different Actor, but the setup steps are the same.
Ready-to-run examples
Choose a public example to see its settings before starting a run:
- Search Apple App Store apps by country
- Map an iOS developer portfolio
- Enrich Apple App Store app IDs with metadata
What you get
- App identity and listing text: app and bundle IDs, names, descriptions, genres, developers and source links.
- Ratings and release details: available rating counts and averages, version numbers, update dates and release notes.
- Pricing and creative assets: public app prices, currency, artwork and screenshots when available.
Each record keeps its country, language and collection time. You can export the dataset to a spreadsheet or retrieve it through the Apify API.
Who is it for?
- ASO and growth teams that need repeatable keyword searches and localized metadata exports.
- Product and market researchers comparing competitors by numeric app ID.
- Data and automation teams loading public App Store metadata into a spreadsheet, warehouse, dashboard, or agent workflow.
- Developers who need a simple App Store data source behind the Apify API, schedules, webhooks, or MCP.
App research workflows
- Compare known competitors. Collect numeric
appIdswith the same country and language settings, then compareversion,updatedDate, rating counts and listing text in your own spreadsheet. Keep successive exports if you want to review changes. The Actor does not maintain a history or return a search-rank field. - Map a local app niche. Search a few focused phrases such as “fitness tracker” in one storefront. Review app names, genres, developer names and source links to build a shortlist. Keyword matches are a sample rather than a complete category chart. Use separate runs to compare countries.
- Review a developer portfolio. Supply the numeric developer ID in
developerIds, or enableincludeDeveloperAppswhen looking up knownappIds. Compare the returned app names, prices and update dates to understand the available portfolio. Developer expansion does not apply to keyword-search results. - Prepare an ASO review. Export descriptions, screenshots, release notes and ratings for your selected apps. Your team or assistant can then compare positioning and presentation. The export does not measure ranking changes or guarantee an improvement in visibility.
Input settings
{"searchTerms": ["fitness tracker", "habit tracker"],"appIds": ["284882215", "389801252"],"country": "US","language": "en_us","maxItems": 50,"includeDeveloperApps": false}
More input configuration
| Setting | JSON key | What to enter |
|---|---|---|
| Search terms | searchTerms | App Store keywords or phrases, one per row. |
| App IDs | appIds | Numeric Apple App Store app IDs, not full listing URLs. |
| Developer IDs | developerIds | Numeric iTunes developer IDs for public portfolio lookups. |
| Country | country | App Store country code such as US, GB, DE, or FR. Default US. |
| Language | language | Apple API language code such as en_us, de_de, or fr_fr. Default en_us. |
| Maximum items | maxItems | Maximum app rows across all modes. Form default 20. |
| Include developer apps | includeDeveloperApps | Expands developers found through appIds, not keyword searches. |
| Resume inputs | resumeSearchTerms, resumeAppIds | Remaining inputs from RUN_CHECKPOINT. Leave empty for ordinary runs. |
Supply at least one search term, numeric app ID, developer ID, or resume input. Modes can be combined. maxItems limits saved rows across all modes, and duplicate app IDs are saved only once.
Output data
Illustrative shape only. Values below are synthetic, not an observed app listing. Optional metadata may be null or an empty array.
{"searchTerm": "fitness tracker","source": "search","country": "US","language": "en_us","appId": 1234567890,"bundleId": "com.example.app","appName": "Example Fitness Tracker","developer": "Example Developer","developerId": 987654321,"primaryGenre": "Health & Fitness","price": 0,"formattedPrice": "Free","currency": "USD","averageRating": 4.7,"ratingCount": 125000,"version": "4.2.1","updatedDate": "2026-06-20T00:00:00.000Z","appStoreUrl": "https://apps.apple.com/us/app/example/id1234567890","scrapedAt": "2026-07-03T10:00:00.000Z"}
More output fields
| Field group | Fields |
|---|---|
| Search context | searchTerm, inputAppId, source, country, language |
| App identity | appId, bundleId, appName, appStoreUrl |
| Developer | developer, developerId, sellerName |
| Categories | primaryGenre, primaryGenreId, genres, genreIds |
| Pricing | price, formattedPrice, currency |
| Ratings | averageRating, ratingCount, currentVersionRating, currentVersionRatingCount |
| Version and dates | version, releaseDate, updatedDate, releaseNotes |
| Creative assets | artworkUrl, screenshotUrls, ipadScreenshotUrls |
| Text and metadata | description, descriptionSnippet, minimumOsVersion, contentRating, languages, supportedDevices, sellerUrl, isGameCenterEnabled, fileSizeBytes, scrapedAt |
Download your results
Open your run's dataset, choose Export and select JSON, CSV or Excel. JSON keeps nested fields together. CSV and Excel are useful when you want to review the records in a spreadsheet.
See Apify's download and export guide for the available formats and field options.
Pricing
The start event is charged once after input validation, before extraction begins. The item event is charged immediately before each app record is saved to the dataset.
maxItems bounds saved records across all requested modes. Prices in the exported app records are App Store listing data, not the cost of running this Actor.
Rates depend on your Apify plan and any custom agreement. See the live Pricing tab for current rates and the cost shown for your account.
Tips for best results
- Use a specific phrase for discovery. Start with a small keyword sample, then check the app names and genres before expanding your search.
- Use numeric IDs for known apps. Take the number after
/idin the App Store URL and enter it inappIds. Full listing URLs are not accepted. - Keep country and language consistent. These settings can change app availability, prices and listing text, so keep them with exports you plan to compare.
- Choose portfolio expansion deliberately. Enable
includeDeveloperAppsonly when you want apps from developers found throughappIds. UsedeveloperIdsfor a known developer's portfolio. - Check continuation records before repeating work. Review
RUN_SUMMARYand anyRUN_CHECKPOINTif the run returns partial results.
Limits and caveats
- This actor exports public app metadata. It does not scrape App Store reviews. Use Apple App Store Reviews Scraper with the URLs or IDs discovered here when you need review mining.
- Keyword searches are not category charts or guaranteed complete market coverage. Each Apple request returns at most 200 matches.
- A run may save partial results if one input fails or its time limit approaches. Inspect
RUN_SUMMARYand anyRUN_CHECKPOINTbefore continuing. - A run with no usable app records currently fails. An empty result alone does not prove that an app is private or deleted.
- Search rankings, app availability, pricing, and metadata can vary by country.
- Some apps may not expose every image, rating, language, or file-size field.
- Apple can change public response fields. Inspect a small sample before relying on a new dataset.
Automation and integrations
Save your settings for next time
Once you have an input that works for you, save it as an Apify task. This keeps your settings together so you can use them again without filling in the form from scratch.
Run on a schedule
Need fresh results regularly? You can schedule the Actor or a saved task to run at a time that suits you.
Each scheduled run collects the data again. If you want to compare results or highlight changes, add that step in your own workflow.
Send results to your other tools
Use n8n, Make or Zapier to connect this scraper to the rest of your workflow. For example, you could pass its results to an AI assistant or add records to a spreadsheet. Follow the Apify integration guides for your chosen tool.
For a custom connection, an Apify webhook can notify your app when a run finishes or fails. Your app can then fetch the results or handle the failure.
API usage
Want to collect this data from your own app or automation? The examples below send input to the scraper and show how to collect its results.
The Node.js and Python examples wait for the run to finish before reading its results. The cURL example starts the run and returns its details. Wait for that run to finish, then use its defaultDatasetId to fetch the results.
For setup instructions, see Apify's JavaScript client guide, Python client guide and Actor runs API reference.
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~apple-app-store-apps-scraper/runs' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \--data @- <<'JSON'{"searchTerms": ["fitness tracker"],"country": "US","language": "en_us","maxItems": 5}JSON
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/apple-app-store-apps-scraper').call({"searchTerms": ["fitness tracker"],"country": "US","language": "en_us","maxItems": 5});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/apple-app-store-apps-scraper').call(run_input={'searchTerms': ['fitness tracker'], 'country': 'US', 'language': 'en_us', 'maxItems': 5})print(client.dataset(run['defaultDatasetId']).list_items().items)
MCP and AI agents
You can ask your AI assistant to collect data with Apple App Store Apps Scraper and help you work with the results. The scraper returns the data, and your assistant can then summarize it, compare records or prepare notes.
Connect your assistant through the Apify MCP server. MCP gives your assistant a way to find this scraper, run it and read the results. Follow the official setup and sign-in guide for your app.
Easier setup with an Apify plugin
If you use a supported coding assistant, the official Apify plugin can set up the connection for you. It connects your assistant to Apify and includes instructions for common tasks. Follow the guide for your particular app.
Use Apify AI in Console
Prefer to keep everything in Apify? Open Apify AI in Console and ask it to find Fetch Cat's Apple App Store Apps Scraper. You can describe the data you want and ask questions about the results.
Apify AI is currently in beta. It asks for confirmation before starting an Actor, and normal run charges apply.
Choose your assistant
- Claude and Claude Code (Anthropic): Apify setup guide.
- ChatGPT and Codex (OpenAI): Apify setup guides.
- Grok Bot (xAI): Apify plugin guide.
- Gemini CLI (Google): MCP server setup guide. Use the server URL below with the HTTP configuration supported by Gemini CLI.
Connect just this scraper
To keep your setup focused on this scraper, add this server configuration to a compatible MCP client:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/apple-app-store-apps-scraper"}}}
Sign in to Apify when your client asks. If your client uses a Bearer token instead, follow its setup guide and keep the token in its secure configuration. Configuration formats vary by app, so use the linked guide if your client needs a different format.
Use Apify's general server
Already connected to the general Apify MCP server at https://mcp.apify.com? You can use it to find this scraper without adding another server. Ask your assistant to use Apple App Store Apps Scraper by Fetch Cat, or give it the identifier fetch_cat/apple-app-store-apps-scraper.
Your assistant can check the available settings and retrieve the results from the returned run. If the run is still working, it should follow that run rather than start it again. Both connection options use Apify's hosted service.
Example requests
Give your assistant the inputs it needs along with a request like one of these:
- “Find up to ten fitness tracker apps in the US App Store using Fetch Cat's Apple App Store Apps Scraper. Show names, developers, rating counts, prices and listing links so I can make a research shortlist.”
- “Look up App Store IDs 284882215 and 389801252 in the US storefront. Give me their versions, update dates, ratings and release notes, keeping any unavailable values blank.”
- “Collect up to twenty apps from the numeric Apple developer ID I provide, using the UK storefront. Make a table of app names, genres, prices and last update dates with source links.”
Normal Apify charges apply. Check the live Pricing tab before asking your assistant to run a larger batch.
Pay with x402
If your AI agent has a funded wallet, it can pay for Apify usage through x402. This experimental option lets an agent use Apify without a conventional account.
Apify AGI provides a prepaid API token with a spending cap after payment. Your agent can use that token to run this scraper through the Apify API or an authenticated MCP connection.
Some MCP setups also support paying for each request directly. That is a different payment option, so check the official guide for its availability.
Follow the official guide for wallet setup, supported payment options and current terms. Apify handles the payments. Keep wallet keys and payment tokens in your agent's secure configuration.
Other ways for agents to pay
Apify also supports MPP for prepaid access through AGI and Skyfire for eligible Actors. If your agent already uses one of these, see the agentic payment guide to choose the right setup.
FAQ
Can I export App Store data to CSV or Excel?
Yes. Download the Apify dataset as CSV, Excel, JSON, XML, RSS, or through the Dataset API.
Can this scrape reviews?
No. Use the related Apple App Store Reviews actor for review text.
Can I scrape multiple countries in one run?
This actor accepts one country per run. Create separate runs or tasks for different countries.
Is this an official Apple API?
No. It exports public App Store data through Apify.
Related Actors
- Apple App Store Reviews Scraper — Collect public Apple App Store review text and available country, version or helpful-vote fields.
- Google Play Apps Scraper — Collect public Google Play app search listings and available app-detail metadata.
- Google Play Reviews Scraper — Collect public Google Play review text with available ratings, dates and developer replies.
- Shopify App Store Scraper — Collect public Shopify app listing descriptions, pricing summaries, ratings and available developer details.
- Shopify App Reviews Scraper — Collect public Shopify app merchant-review text, star ratings and visible developer replies.
Support and feedback
For custom additions or integrations, email hello@fetchcat.dev.
Found an error or have a feature request? Open an issue with the run URL, a non-sensitive input example and what you expected.
Need help sharing it? See Apify’s guide to sharing a run when reporting an issue. Sharing a run can give the developer access to its input, logs and results, so use a run that contains no sensitive data. Please leave out API tokens, passwords, cookies, private documents and personal data. Use a public sample URL or a redacted example instead.
Tried this scraper? We'd love to hear how it worked for you. Leave a review to help others choose the right tool and help us improve it. Your feedback means a lot to us.
Made with care for curious people, AI agents and the possibilities in data. ♥