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 or canonical App Store URLs, country, language, and result limit.
- Output: Search rank for keyword rows plus 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.
Who is it for?
- ASO and growth teams that need repeatable keyword-result positions and localized metadata exports.
- Product and market researchers comparing competitors by app ID or canonical App Store URL.
- 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.
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", "https://apps.apple.com/us/app/instagram/id389801252"],
"country": "us",
"language": "en",
"maxItems": 50,
"includeDeveloperApps": false
}
Output example
{
"searchTerm": "fitness tracker",
"searchRank": 1,
"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
appIdswith numeric IDs or canonical App Store URLs when you need stable monitoring of known apps. searchRankis the one-based position Apple returned for that term; it isnullfor direct lookup and developer portfolio rows.- 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; use Apple App Store Reviews Scraper with the URLs or IDs discovered here when you need review mining.
- Search rank is Apple response order for the selected storefront and term, not a universal or permanent chart ranking.
- 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
Set APIFY_TOKEN in your environment, then run the Actor with the official client or REST API.
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', maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python
import os
from apify_client import ApifyClient
client = ApifyClient(token=os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/apple-app-store-apps-scraper').call(run_input={
'appIds': ['https://apps.apple.com/us/app/instagram/id389801252'],
'country': 'us', 'language': 'en', 'maxItems': 10,
})
for item in client.dataset(run['defaultDatasetId']).list_items().items:
print(item['appName'], item['appStoreUrl'])
cURL
curl -X POST "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
Add the official Apify MCP server to Claude Code with a focused tool URL:
claude mcp add --transport http apify-app-store \
"https://mcp.apify.com?tools=fetch_cat/apple-app-store-apps-scraper"
Equivalent JSON configuration:
{
"mcpServers": {
"apify-app-store": {
"type": "http",
"url": "https://mcp.apify.com?tools=fetch_cat/apple-app-store-apps-scraper"
}
}
}
Example prompts: “Search the US App Store for fitness tracker apps and return the first 20 with searchRank.” Or: “Look up these App Store URLs and compare their version, ratings, and primary genre.”
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.
Privacy and data handling
This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses the inputs you provide and the public records needed to produce the documented dataset to produce the output dataset and sends requests to public Apple App Store Apps pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.