Research App Store Rivals
research_rivalsSearch the App Store for a keyword and get SensorTower analytics for top competing apps — all in one call.
Instructions
Search the App Store for a keyword and fetch SensorTower analytics for the top results — all in one call. Results are cached for 24 hours so repeat queries are instant.
Use this for a quick competitive overview when you want everything in one step.
Use search_app_store + get_app_details separately when you need more than 3 results, a custom limit, or selective fetching of specific apps.
Do not use this for Google Play or Android apps — it covers the iOS App Store only.
Requires a SensorTower account. On a cache miss the server opens a real Chromium window on the user's machine; the first run needs the user to log in there, and the session is reused from then on. If there is no session the call returns an error result carrying {"error": "not_logged_in"} and leaves the window open — tell the user to log in, then call again. A cache miss scrapes three apps and typically takes 30–60 seconds; a cache hit returns immediately and opens no browser.
Trigger phrases: "rival research", "research rivals", "competitor analysis", "find competing apps", "check competitors", "what apps compete with", "App Store competitors", "rivals for keyword".
Returns JSON:
{
"keyword": "meditation",
"country": "us",
"fetchedAt": "2026-04-21T10:00:00.000Z",
"cached": false,
"apps": [
{
"rank": 1,
"name": "App Name",
"appStoreUrl": "https://apps.apple.com/us/app/id123456",
"sensorTowerUrl": "https://app.sensortower.com/overview/123456",
"downloads": "<5K",
"revenue": "<$5K",
"rating": { "score": "4.7", "count": "1,234" },
"publisher": "Publisher Name",
"categories": "Health & Fitness",
"topMarkets": "United States, United Kingdom",
"releaseDate": "Jan 1, 2020",
"lastUpdated": "Mar 15, 2026",
"languages": "English, Spanish",
"inAppPurchases": "Monthly · $9.99",
"publisherCountry": "United States",
"advertisingNetworks": "N/A"
}
]
}Fields missing or gated behind a paywall will be "N/A". A single app failing to scrape is not fatal — that app comes back with "N/A" fields rather than failing the whole call. When cached is true, the data was served from the local cache and no scraping occurred.
Present results as a clean report for each app:
#1 — {name}
App Store: {appStoreUrl}
SensorTower: {sensorTowerUrl}
Downloads: {downloads}
Revenue: {revenue}
Rating: {rating.score} ({rating.count} ratings)
Publisher: {publisher}
Categories: {categories}
Top Markets: {topMarkets}
Worldwide Release Date: {releaseDate}
Last Updated: {lastUpdated}
Languages: {languages}
In-App Purchases: {inAppPurchases}
Publisher Country: {publisherCountry}
Advertised on Any Network: {advertisingNetworks}
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | Two-letter App Store country code (e.g. us, gb, tr) | |
| keyword | Yes | The keyword to search in the App Store (e.g. psikoloji, meditation) |