REST API · JSON · through RapidAPI
App Store App Search (iTunes API): prices, ratings, versions by country API
Search Apple's App Store by keyword in any storefront country and get each app's developer, price, rating, version, release date, genre, size, minimum OS and store URL.
Read from the official source when you call (itunes.apple.com); no personal data. GET /v1/app-store-search answers {"product", "count", "items", "fetched_at"}.
Get a key on RapidAPI plans and pricing are on the listing; one key covers every endpoint.
Parameters
| Parameter | Type | What it does | Example |
|---|---|---|---|
term | string | Keyword to search for in the App Store (for example budget, photo editor, meditation). | "budget" |
country | string | Two-letter App Store country code, which sets the prices, currency and ratings returned. One of: us, gb, ca, au, nz, ie, fr, de, es, it, pt, nl, be, at, ch, se, no, dk, fi, pl, cz, tr, gr, jp, kr, cn, hk, tw, sg, in, id, th, vn, ph, my, br, mx, ar, cl, co, za, ae, sa, il, eg, ng, ua, ro, hu. | "us" |
limit | integer | How many apps to return (Apple allows up to 200 per search). | 50 |
What each result holds
| Field | Type |
|---|---|
app_id | id |
name | text |
developer | text |
developer_id | id |
bundle_id | text |
price | price |
formatted_price | text |
currency | currency |
average_rating | number |
rating_count | integer |
average_rating_current_version | number |
rating_count_current_version | integer |
version | text |
version_release_date | datetime |
release_date | datetime |
primary_genre | text |
size_bytes | integer |
minimum_os | text |
content_rating | text |
seller_name | text |
store_url | url |
Call it
With curl:
curl -G "https://app-store-search-api-itunes-prices-ratings-49-countries.p.rapidapi.com/v1/app-store-search" \ --data-urlencode term=budget \ --data-urlencode country=us \ --data-urlencode limit=50 \ -H "X-RapidAPI-Key: $RAPIDAPI_KEY" \ -H "X-RapidAPI-Host: app-store-search-api-itunes-prices-ratings-49-countries.p.rapidapi.com"
With Python (pip install requests):
import os, requests
r = requests.get(
"https://app-store-search-api-itunes-prices-ratings-49-countries.p.rapidapi.com/v1/app-store-search",
params={'term': 'budget', 'country': 'us', 'limit': 50},
headers={"X-RapidAPI-Key": os.environ["RAPIDAPI_KEY"], "X-RapidAPI-Host": "app-store-search-api-itunes-prices-ratings-49-countries.p.rapidapi.com"},
timeout=120,
)
for item in r.json()["items"]:
print(item)
For code and AI agents that pick tools at run time, GET /v1/products lists every endpoint with its parameters and fields.
Questions
How fresh is it? Each call reads the official source then; an identical query within 15 minutes is answered from a cache.
What if the source is down? The answer says so: a 502, or "partial": true when only some of its requests failed.