Original research
ASO research methodology: how the App Store study was run
LocalASO's App Store research is built on 2,729 searches to Apple's public iTunes Search API, all collected on 2026-11-01 with entity=software and limit=25, using the top 10 results of each. This page documents how the data was gathered and scored, lists every CSV, and states the limits that apply to all research pages.
Source: LocalASO analysis of Apple's iTunes Search API, 2026-11-01. All CSVs are free to reuse under CC BY 4.0: credit LocalASO and link to the page you used.
Updated
Data source
Only Apple's public iTunes Search API was used, through requests of the form search?term=<term>&country=<cc>&entity=software&limit=25. Apple states the API is limited to approximately 20 calls per minute. The collector sent one request at a time, at least 3.5 seconds apart (about 17 per minute), and cached every raw response so that no term and storefront was requested twice. The run took about 158 minutes (10:32 to 13:10 UTC on 2026-11-01) after a 20-request pilot, and all 2,729 requests returned HTTP 200 with no retries and no error rows.
Two baskets
- S1, storefront basket (1,793 searches). 20 generic English phrases, such as "photo editor", "habit tracker" and "vpn", in all 52 storefronts, plus a candidate local-language version of each phrase in the 41 non-English storefronts. A local phrase identical to the English one was not requested twice. This yields 753 local-versus-English pairs.
- S2, category basket (936 searches). 26 App Store categories, six English phrases each, in six storefronts: US, GB, DE, JP, FR and BR.
Scores
Volume and difficulty are LocalASO's estimates, computed from the top 10 results by the same formulas the app uses. Volume is a rank-weighted mean of log10(1 + rating count) scaled to 0-100, plus a small term for the number of results. Difficulty combines the median and mean log rating counts with the share of apps having 50,000 or more ratings. They are relative signals inferred from public rating counts, not Apple search counts. See the glossary entry on keyword difficulty and the iTunes Search API entry for background.
Other measures: "name contains every word" is a lenient case- and diacritic-insensitive substring match; "non-Latin" means at least one letter whose Unicode script is not Latin; "separator" means " - ", ":" or "|"; overlap is the Jaccard index of top-10 app ID sets.
Method and limits
- Result count is capped. Every request used limit=25, so resultCount cannot exceed 25 and the count term of volume is understated by up to about 2 points, equally everywhere. Result-count comparisons between popular phrases are saturated.
- No subtitles and no keyword field. The API shows the app name only. Nothing here says anything about subtitles or keyword-field use.
- Candidate translations. Local phrases were written by the research author and not verified by native speakers. Weak phrases would bias the local-versus-English results.
- Approximate categories. The API cannot filter by category; in the US only 68.6% of top-10 apps for S2 phrases had the phrase's own category as primary genre.
- One day. All data is a snapshot from 2026-11-01, not a time series. Results vary by device, account and time.
- Small cells. 20 phrases per storefront in S1 and six per category and storefront in S2; per-cell differences are indicative.
- English in S2. S2 uses English phrases in DE, JP, FR and BR, so it describes English demand there.
- Not representative. The phrase baskets are chosen by the author and do not represent all App Store searches.
- Rating lag. Rating counts trail current popularity, and releaseDate is the first release date.
All downloads
Each file is a plain CSV. Array columns in the per-query files are joined with | in rank order 1 to 10.
| File | Contents |
|---|---|
| s1-by-storefront-english | 52 rows: median rating count, volume, difficulty and name statistics for the English phrases |
| s1-by-storefront-local | The same measures for the local-language phrases in 41 storefronts |
| s1-local-vs-english-by-storefront | Per-storefront comparison of local and English phrases |
| s1-local-vs-english-pairs | 753 phrase pairs with result counts, scores and overlap |
| s1-rows | One row per S1 search, with the top 10 apps |
| s2-by-category | 26 category rows |
| s2-by-category-country | Category by storefront cells |
| s2-by-country | Six storefront rows for the category basket |
| s2-rows | One row per S2 search |
| name-length-by-country | Name length, bytes, separators per storefront |
| non-latin-script-share | Non-Latin name share in 12 script storefronts |
| storefront-top10-jaccard | Overlap between storefront pairs, with a control |
Findings by topic
The results are split across pages: competition by country, competition by category, local versus English keywords, and the others in the research hub.
In LocalASO
The scoring in this study is the one LocalASO uses for its keyword board across 52 storefronts. The app costs a one-time $29 and needs a license key to run. See pricing, and the how we measure page for the product-side method.
Sources
- Apple: performance-partners.apple.com/search-api (checked November 1, 2026)
Do this for every country, in minutes