App, game and podcast data

Apple App Store Search & Keyword Rank Scraper

Search the App Store for up to 200 keywords per run and get the ranked results with full listing data: position, title, developer, rating, price, genre, version and more, per storefront. Track your own apps' rank per keyword. Pay only for delivered rows.

$0.70per 1,000 ยท App ranked

One ranked app row delivered with full listing data, including a tracked app reported as not ranked. Keywords that fail are never charged.

run it
ACTOR=steadydata~app-store-search
URL="https://api.apify.com/v2/acts/$ACTOR/run-sync-get-dataset-items"

curl -X POST "$URL?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords": ["fitness tracker", "habit tracker"], "country": "us", "device": "iphone"}'

# rows come straight back as JSON, one object per delivered row

Input

FieldNameWhat it does
keywords
required
KeywordsSearch terms, one per row, up to 200. Each keyword is one App Store search; a keyword without results comes back as a free error record.
countryStorefront countryTwo-letter storefront (us, gb, nl, de ...). Rankings, prices and availability differ per storefront.
languageLanguageListing language as Apple codes it, e.g. en_us, nl_nl, de_de. Leave empty for the storefront default.
deviceDeviceWhich App Store to search: iPhone, iPad or Mac apps.
maxResultsPerKeywordMax results per keywordCost ceiling per keyword, in Apple's ranking order. Apple returns at most 190 apps per search. One delivered row is one charged event.
trackAppsTrack only these appsOptional. App ids or bundle ids of your own apps: only their rows are delivered, with the rank position per keyword. An app that does not rank in the fetched range is delivered with an empty position, which is the answer a rank tracker needs, and counts as one row.

What you get back

FieldType
keywordstring, null
positioninteger, null
appIdinteger, null
bundleIdstring, null
urlstring, null
titlestring, null
developerstring, null
developerIdinteger, null
developerUrlstring, null
descriptionstring, null
releaseNotesstring, null
scorenumber, null
ratingsinteger, null
scoreCurrentVersionnumber, null
ratingsCurrentVersioninteger, null
pricenumber, null
priceTextstring, null
currencystring, null
isFreeboolean, null
genrestring, null
genreIdinteger, null
genresarray, null
contentRatingstring, null
advisoriesarray, null
versionstring, null
minimumOsVersionstring, null
fileSizeBytesinteger, null
releasedstring, null
updatedstring, null
languagesarray, null
supportedDevicesCountinteger, null
isGameCenterEnabledboolean, null
iconUrlstring, null
screenshotUrlsarray, null
ipadScreenshotUrlsarray, null
countrystring, null
devicestring, null
statusstring, null
inputstring, null
errorCodestring, null
errorstring, null