App Store Keyword Suggestions Scraper avatar

App Store Keyword Suggestions Scraper

Pricing

from $1.99 / 1,000 search results

Go to Apify Store
App Store Keyword Suggestions Scraper

App Store Keyword Suggestions Scraper

Extract source-backed public Apple App Store search suggestions from the official search-hints plist endpoint.

Pricing

from $1.99 / 1,000 search results

Rating

0.0

(0)

Developer

Search API

Search API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

What does App Store Search Suggestions do?

App Store Search Suggestions discovers public autocomplete phrases from Apple's official App Store search-hints service. It accepts one query or a bounded list of queries, validates Apple's XML/plist response before parsing, removes duplicates, and writes normalized records with search provenance. It does not access private accounts, user data, paid content, or restricted app information.

Why use App Store Search Suggestions?

Use the Actor for keyword research, App Store optimization, content planning, search-box testing, and localized suggestion discovery. Multiple queries are processed with a global query limit, optional include/exclude filters, deterministic sorting, global item limits, bounded concurrency, retries, timeouts, pacing, and dataset batching. The Actor supports direct requests, authorized Apify Proxy, and user-provided HTTP(S) proxies. Proxy credentials are never written to output or logs.

The Actor uses the structured plist response rather than scraping a rendered page. This is more stable for the public hints workflow and makes the extraction method explicit. Apple's hints service exposes suggestion terms and optional public search URLs; it does not provide a full app catalog record for every hint, so the dataset does not invent ratings, prices, developers, bundle IDs, or screenshots.

What data can it extract?

Field groupFieldsDescription
Identityid, suggestion, normalizedSuggestionStable country-aware identity and source phrase.
Suggestion metricssuggestionLength, suggestionWordCount, isExactQueryMatchUnicode length, word count, and exact-match flag.
Query provenancequery, normalizedQuery, queryLength, queryWordCount, queryIndex, sourceRankThe submitted query and position in the bounded plan/source response.
Storefrontcountry, storefront, searchUrl, suggestionUrlAvailableApple storefront, canonical public search URL, and URL availability.
TransporthintsRequestUrl, httpStatus, responseContentType, requestAttemptsValidated public request metadata.
ProvenanceextractionMethod, source, scrapedAtStructured plist extraction and timestamp.

How to scrape Apple App Store suggestions

  1. Open the Actor in Apify Console and open the Input tab.
  2. Enter query for one phrase, or queries for multiple independent phrases. If both are supplied, queries takes precedence.
  3. Select a supported country, choose limits or filters, and run the Actor.
  4. Inspect the dataset or use the API, scheduling, monitoring, and integrations available in Apify.

How much will it cost?

The Actor makes one small public hints request per planned query. Apify compute usage depends on request count, delays, retries, concurrency, and run duration. Larger query lists and higher suggestion limits produce more dataset records; retries and proxy routing can increase duration. This Actor does not launch a browser, so it avoids browser startup cost for this endpoint.

Input

See the input tab for the complete configuration. The following are runnable examples.

Minimal input

{ "query": "photo editor" }

Multiple queries, filters, and sorting

{
"queries": ["photo editor", "fitness tracker"],
"country": "us",
"maxSuggestionsPerQuery": 10,
"maxTotalQueries": 2,
"maxItems": 15,
"includeKeywords": ["photo"],
"excludeKeywords": ["free"],
"sortBy": "alphabetical"
}

Developer options and proxy

{
"query": "weather",
"requestDelayMs": 500,
"maxConcurrency": 2,
"maxRequestRetries": 2,
"requestTimeoutSecs": 30,
"datasetBatchSize": 25,
"proxyConfiguration": { "useApifyProxy": false }
}

Supported controls include country (us by default), maxSuggestionsPerQuery (1–30, default 30), maxTotalQueries (1–1000), maxItems (1–1000), sortBy (sourceOrder, alphabetical, lengthAsc, or lengthDesc), and string-array includeKeywords/excludeKeywords filters. Developer options are requestDelayMs (0–5000 ms, default 200), maxConcurrency (1–8, default 2), maxRequestRetries (0–5, default 2), requestTimeoutSecs (5–120, default 30), and datasetBatchSize (1–100, default 50). proxyConfiguration accepts useApifyProxy, proxyUrls, apifyProxyGroups, and apifyProxyCountry; custom URLs and Apify Proxy cannot be enabled together. Legacy aliases remain supported for compatibility.

The complete input schema is in .actor/input_schema.json. This table lists every accepted property, including deprecated aliases:

FieldTypeDefault
querystringphoto editor
queriesarray of strings—
countrystringus
maxSuggestionsPerQueryinteger30
maxTotalQueriesinteger1
maxItemsinteger30
includeKeywordsarray of strings—
excludeKeywordsarray of strings—
sortBystringsourceOrder
requestDelayMsinteger200
maxConcurrencyinteger2
maxRequestRetriesinteger2
requestTimeoutSecsinteger30
datasetBatchSizeinteger50
proxyConfigurationobject{"useApifyProxy": false}
limitinteger—
timeoutSecsinteger—
minDelayMsinteger—
maxRetriesinteger—
useApifyProxyboolean—
proxyUrlsarray of strings—
proxyGroupsarray of strings—
proxyCountryCodestring—

Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Rows follow .actor/dataset_schema.json. The schema lists the exact types and required fields:

FieldTypeRequired
idstringYes
positionintegerYes
suggestionstringYes
normalizedSuggestionstringYes
suggestionLengthintegerYes
suggestionWordCountintegerYes
isExactQueryMatchbooleanYes
querystringYes
normalizedQuerystringYes
queryLengthintegerYes
queryWordCountintegerYes
queryIndexintegerYes
sourceRankintegerYes
countrystringYes
storefrontstringYes
searchUrlstringYes
suggestionUrlAvailablebooleanYes
hintsRequestUrlstringYes
httpStatusintegerYes
responseContentTypestringYes
extractionMethodstringYes
requestAttemptsintegerYes
sourcestringYes
scrapedAtstringYes

See the samples/sample-record.json from an Actor run. Apple currently returns a legacy search.itunes.apple.com search URL for this hint; opening it in Chrome displays “Connecting to the iTunes Store.” The Actor preserves Apple’s supplied URL and does not fabricate app-catalog fields that the hints response does not contain.

The OUTPUT key-value record contains run status, query/request counts, filter and duplicate counts, effective limits and developer settings, connection mode, and safe failure categories. Empty results are reported as no-results; access boundaries, malformed responses, timeouts, and network failures are not converted into fake suggestions.

Tips and advanced options

Use sourceOrder when you want Apple's response order. Use alphabetical, lengthAsc, or lengthDesc after cross-query deduplication when you need a deterministic research list. Keep concurrency and retries conservative for respectful public traffic. maxItems is global across all queries, while maxSuggestionsPerQuery is per query. Query lists are deduplicated before the global query cap is applied.

FAQ, support, and responsible use

If a run is empty or partial, inspect the OUTPUT summary for the status and bounded failure category, then retry with fewer queries or a longer timeout. Report reproducible issues in the Actor's Issues tab with the run ID and summary; use the API tab for programmatic access.

This Actor is not affiliated with Apple. Use only public data, follow Apple's terms and applicable rate limits, respect privacy and applicable law, and do not use it to access private or restricted information. Results can contain personal or commercial terms; users are responsible for their processing and legal basis.