DEV Community

Cover image for App Store Tracking: How to Scrape Apple Search Rankings for ASO in 2026
Truffle Pig Data
Truffle Pig Data

Posted on

App Store Tracking: How to Scrape Apple Search Rankings for ASO in 2026

Every mobile growth conversation eventually lands on the same question: where do we rank in the App Store for our keywords, and who ranks above us? Apple does not make that easy to answer with software. I got tired of checking rankings on a phone like it was 2012, which is what led me to the Apple App Store Search API on Apify: send a keyword and a country, get every ranked app back as structured JSON.

Disclosure: the Apify links in this post are affiliate links. If you run the Actor, I may earn a referral commission at no extra cost to you.

Does the App Store have a search API?

Not one built for this. Apple's developer APIs manage your own apps, and the old media search endpoint that floats around is not the App Store search ranking: results diverge from what users actually see, with no device targeting and no ASO-grade fields. So app store tracking in practice runs on a scraper consumed like an API: keyword in, the ranked result list out, with the metadata attached.

What the App Store scraper returns

The App Store search scraper returns one dataset item per app: ranking position, identifiers, developer info, ratings, price, version, and the search context that produced it.

Field Example Notes
position 1 Rank for the keyword, with search_position_global across pages
app_id, bundle_id 1429637763, "com.calm.app" Stable identifiers for joins
title "Calm" Store listing name
developer_name, developer_id "Calm.com, Inc.", 469307675 With a developer_link
version, release_date "8.21", "2015-08-27T07:00:00Z" Version info per app
search_country, search_lang, search_timestamp "us", "en-us", run time Every row is self-documenting

Ratings (average and count), price type with amount and currency, genres, age rating, screenshots, and compatibility info come back too, per the same row.

Who this is for

ASO and mobile growth teams tracking keyword rankings, app developers watching competitor portfolios, market researchers comparing country storefronts, and agent builders who want grounded answers about iOS apps.

The manual way, and where it breaks

The hand-rolled version is grim: App Store search rankings live inside the store UI, so people literally check keywords on a device and type positions into a sheet. Automating it means scraping a storefront that varies by country, language, and device class, with markup you do not control and rankings that shift under you. The web-visible pages do not match in-store search order, which quietly poisons any dataset built from them. That mismatch is the part that wastes the most time, because it looks like it works.

The faster way: run the App Store scraper

Apify Console

  1. Open the Apple App Store Search API and click Try for free.
  2. Enter a term, optionally set country, num, and max_pages.
  3. Run it and export the dataset as JSON, CSV, or Excel. The task App Store search data, no code is this exact flow, prefilled.

REST

curl -X POST "https://api.apify.com/v2/acts/johnvc~apple-app-store-search/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "term": "budget tracker", "country": "gb", "lang": "en-gb", "num": 50, "max_pages": 1 }'
Enter fullscreen mode Exit fullscreen mode

Run endpoint reference: the Apify API docs.

Search the App Store in Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("johnvc/apple-app-store-search").call(
    run_input={"term": "meditation", "country": "us", "num": 50, "max_pages": 1}
)

for app in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(app["position"], app["title"], app["developer_name"])
Enter fullscreen mode Exit fullscreen mode

The general-purpose version lives in the task App Store search scraper. Useful extras: property: "developer" searches developer names instead of app names, and category_id filters to one App Store category.

Check keyword rankings for a niche

Check App Store keyword rankings for meditation apps is the tracking primitive: one keyword, the full ranked list, positions per app. Rerun it on a schedule and you have the history every ASO dashboard is built on.

Run ASO keyword research on raw data

Run free ASO keyword research with raw search data flips the direction: instead of paying an ASO suite for opinions, pull the raw result sets for candidate keywords and judge difficulty yourself from who actually ranks.

Use it from Claude and other MCP clients

The Actor is MCP-ready, so Claude, Claude Code, and Cursor can search the store mid-conversation: "find the top 50 meditation apps in the US store with ratings and prices" runs as a tool call through the Apify MCP server (https://mcp.apify.com/?tools=actors,docs,johnvc/apple-app-store-search). The task Search the App Store from Claude via MCP has the config, and you can read more about Claude at claude.ai.

FAQ about scraping the App Store

How much does the App Store scraper cost?

Pay per event: a $0.02 setup fee per run plus $0.0015 per app returned. Worked examples: a quick 10-app keyword check is about $0.035, and a 200-app scan about $0.32. num and max_pages cap the spend, and new Apify accounts include free platform credit.

Can the scraper track keyword rankings over time?

Yes, that is the core app store tracking loop: save a task per keyword, keep country and device constant, schedule it, and diff position by app_id across runs. Start from the Apple App Store Search API.

Can Claude search the App Store through this scraper?

Yes. Connected over MCP it becomes a callable tool, and an agent can chain searches, compare two keywords, or pull a competitor's portfolio with property: "developer" in one conversation.

Does the scraper work outside the US store?

Yes: 50+ country storefronts and 40+ languages via the country and lang inputs, so the same keyword can be compared across the US, UK, Japan, Germany, and Brazil in a handful of runs.

What does the search scraper not return?

Full product details. Search returns the ranked list with rich metadata per app; descriptions with version history, in-app purchases, privacy cards, and sample reviews live in its sibling, the Apple App Store Product API. The intended pattern is search here, then fan out by app_id.

More from Truffle Pig Data

The rest of the family: the Apple App Store Product API for one app's full record, the Apple App Store Reviews API for review data, and the Apple Maps API for Apple's places layer.

Wrapping up

App store tracking should be a dataset, not a thumb workout. Point the Apple App Store Search API at your keywords and let the rankings come to you.

Top comments (0)