Export public Apple App Store app search results and app metadata by keyword or app ID.
Use this actor when you need a repeatable CSV, JSON, Excel, or API export of iOS app details for ASO research, competitor tracking, app-market analysis, product research, or AI-agent workflows.
At a glance
- Input: App Store search terms, direct app IDs, country, language, and result limit.
- Output: App IDs, bundle IDs, app names, developers, genres, pricing, ratings, version data, artwork, screenshots, descriptions, URLs, and scrape time.
- Country-aware: Use Apple country and language codes for localized results.
- Best for: App Store metadata exports, ASO research, app competitor monitoring, and App Store API alternative workflows.
- No Apple account required: Uses public App Store data.
What can it do?
- Export Apple App Store app metadata: Save app names, IDs, developers, URLs, descriptions, genres, artwork, screenshots, and release notes.
- Collect ASO signals: Capture rating counts, average ratings, current-version ratings, version numbers, and update dates.
- Research competitors: Search by category keywords or compare known app IDs.
- Build app datasets: Feed clean app records into spreadsheets, dashboards, databases, or enrichment workflows.
- Use as an App Store API alternative: Run from the Apify UI, API, schedules, webhooks, or the official Apify MCP server.
Common workflows
- ASO research: Export titles, descriptions, genres, ratings, screenshots, and release notes.
- Competitor monitoring: Track public metadata for a list of competing app IDs.
- Market mapping: Search multiple keywords and compare developers, pricing, and categories.
- Product research: Build app lists for niches, features, or target countries.
- AI-agent analysis: Let an agent collect app metadata before summarizing positioning or feature patterns.
Input example
{
"searchTerms": ["fitness tracker", "habit tracker"],
"appIds": ["284882215"],
"country": "us",
"language": "en",
"maxItems": 50,
"includeDeveloperApps": false
}
Output example
{
"searchTerm": "fitness tracker",
"source": "search",
"country": "us",
"language": "en",
"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"
}
Tips for best results
- Use specific search terms when you need focused app lists.
- Use
appIdswhen you need stable monitoring of known apps. - Keep country and language consistent if you compare app metadata over time.
- Enable
includeDeveloperAppsonly when you want developer portfolio expansion. - Use the Apple numeric app ID from the App Store URL after
/id.
Limits and caveats
- This actor exports public app metadata. It does not scrape App Store reviews.
- 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, so scheduled monitoring should include a small sanity-check run.
API usage
curl "https://api.apify.com/v2/acts/fetch_cat~apple-app-store-apps-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchTerms": ["fitness tracker"],
"country": "us",
"language": "en",
"maxItems": 50
}'
MCP and AI agents
You can run this actor through the official Apify MCP server at https://mcp.apify.com.
For a focused single-actor tool, use:
https://mcp.apify.com?tools=fetch_cat/apple-app-store-apps-scraper
Agent-friendly inputs are searchTerms, appIds, country, language, maxItems, and includeDeveloperApps.
Support
If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.
Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.