Apple App Store
App Store Search API
Search the Apple App Store and get up to 200 fully-shaped app rows as JSON — the same 43-field row the App Details endpoint returns, not a thin search result. That makes a search double as a bulk metadata fetch and as a publisher lookup: Apple matches the developer field too, so searching a studio name returns their catalogue. Costs 1 credit.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsontermstringrequiredWhat to search for, 1-500 characters. Apple matches an app name, a keyword, OR a publisher name — searching "Ginger Labs" returns Notability, an app with neither word in its title.
Example: notion
limitintegerdefault:25How many apps to return, 1 to 200. THIS IS THE ONLY LEVER ON VOLUME: the search API has no pagination and every offset spelling is silently ignored, so raise the limit rather than asking for a second page. There is no second page.
Example: 200
countrystringdefault:usTwo-letter ISO storefront code. Decides price, currency, localised title and whether the app is sold in that market at all. Must be exactly two letters — "usa" or "united states" is rejected with a free 400 rather than silently buying a US result set.
Example: gb
entityenum<string>default:softwareWhich catalogue to search. These are separate stores, not a filter on one store. Mac rows carry no iPad or Apple TV screenshots, no advisories, features, supported devices or Game Center flag — those come back empty rather than absent.
Example: mac_software
software— iPhone and iPad apps (the default).ipad_software— iPad apps.mac_software— Mac App Store apps.
langstringLanguage of the returned listing text as a five-letter code (en_us, ja_jp); any other shape is rejected with a free 400. Independent of country: the storefront decides the price, this decides the words.
Example: ja_jp
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# One credit, 200 fully-shaped rows - no pagination, raise the limit instead.
results = client.app_store.search("notion", limit=200, country="us")
for app in results["data"]["apps"]:
print(app["app_id"], app["title"], app["rating"], app["rating_count"])
# Same call doubles as a publisher lookup
catalogue = client.app_store.search("Ginger Labs", limit=50)Response