~ / endpoints / Search API

App Store Search Scraper API

Our App Store search scraper turns any keyword into the ranked iOS results Apple shows: position, app id, title, developer, rating, review count, price, and genre for each hit, returned as structured JSON from one request.

Get a free API keyEndpoint catalog
1,000
free requests / mo
2.6s
median response
200
max results / call
JSON
structured output

Quickstart

cURL
curl "https://api.appstorescraperapi.com/api/v1/appstore/search?term=spotify&limit=10&api_key=$API_KEY"
Python
import requests

BASE = "https://api.appstorescraperapi.com"
API_KEY = "YOUR_API_KEY"

# One keyword in, the ranked iOS app results out as JSON.
data = requests.get(
    f"{BASE}/api/v1/appstore/search",
    params={
        "term": "spotify",   # the search keyword or app name
        "country": "us",     # storefront, two-letter ISO code
        "limit": 10,          # up to 200 results
        "api_key": API_KEY,
    },
    timeout=30,
).json()

print(data["query"], "-", data["total_results"], "results")
for app in data["results"]:
    print(app["position"], app["title"], app["seller_name"], app["rating"])

Response

200 OK
{
  "query": "spotify",
  "page": 1,
  "total_results": 9,
  "results": [
    {
      "position": 1,
      "id": "324684580",
      "track_id": "324684580",
      "bundle_id": "com.spotify.client",
      "title": "Spotify: Music and Podcasts",
      "seller_name": "Spotify",
      "artist_id": "324684583",
      "primary_genre": "Music",
      "genres": ["Music", "Entertainment"],
      "price": 0,
      "formatted_price": "Free",
      "currency": "USD",
      "rating": 4.78001,
      "reviews_count": 40698000,
      "content_advisory_rating": "12+",
      "version": "9.1.60",
      "minimum_os_version": "16.1",
      "artwork_url": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/50/c5/33/50c533fe-3854-b5ce-92c5-b2a1cb4fafe2/AppIcon.png/512x512bb.jpg",
      "kind": "software",
      "url": "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580?uo=4"
    },
    {
      "position": 2,
      "id": "1108187390",
      "track_id": "1108187390",
      "bundle_id": "com.apple.Music",
      "title": "Apple Music",
      "seller_name": "Apple Inc.",
      "artist_id": "284417353",
      "primary_genre": "Music",
      "genres": ["Music"],
      "price": 0,
      "formatted_price": "Free",
      "currency": "USD",
      "rating": 4.85797,
      "reviews_count": 2883178,
      "content_advisory_rating": "12+",
      "version": "2.9",
      "minimum_os_version": "10.0",
      "artwork_url": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/31/6c/c3/316cc33a-5e7d-8902-58eb-f4e16c5d9440/music.png/512x512bb.jpg",
      "kind": "software",
      "url": "https://apps.apple.com/us/app/apple-music/id1108187390?uo=4"
    }
  ]
}
FieldTypeDescription
querystringThe search term echoed back from your request.
pageintegerThe result page number for this response, starting at 1.
total_resultsintegerApple's reported result count for the query.
resultsarrayRanked app results, each an object with the fields below.
positionintegerThe app's rank in the results, starting at 1.
idstringThe App Store track id for the result. track_id mirrors it.
titlestringThe app's display name.
seller_namestringThe developer or seller behind the app.

Use it for

>

Keyword rank tracking

Run a set of target keywords on a schedule and store each app's position to chart how your listing rises or falls in App Store search.
>

Competitor discovery

Search a category term to see which apps rank for it, then feed their ids to the product endpoint for full detail on each rival.
>

ASO keyword research

Compare which apps surface for candidate keywords, their ratings, and their categories to decide which terms are worth targeting.
>

Market mapping

Pull the top results for a niche to size the field: how many apps compete, what they charge, and how strong their ratings are.

Pricing

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky or one-off volume

Median response 2.6s. You only pay for successful requests.

FAQ

What is an App Store search scraper?

An App Store search scraper is a tool that returns the ranked iOS app results for a keyword as structured data. Our App Store search scraper API takes a search term and returns each result's position, app id, title, developer, rating, review count, price, and genre as JSON from a single request, so you do not parse an in-app results screen yourself.

How do I scrape App Store search results by keyword?

Send one GET request to our appstore/search endpoint with term set to your keyword and your API key. Optionally add country for a specific storefront and limit for how many results you want, up to 200. We handle proxies, anti-bot checks, and retries and return the ranked results as clean JSON.

How many results can I get per search?

Up to 200 per call. The limit parameter defaults to 10 and accepts any value up to the 200 hard cap that Apple's search endpoint supports. Each result includes the app id, so you can pass the ids you care about to the product endpoint for full detail.

Can I search a specific country's App Store?

Yes. Set the country parameter to a two-letter ISO storefront code, for example gb or de. The default is us. Rankings, prices, and availability reflect the storefront you request, which lets you track how a keyword ranks in different regions.

Do I need an Apple key to scrape App Store search?

No. You only need an appstorescraperapi key passed as the api_key query parameter. There is no Apple developer account and no OAuth. The endpoint reads Apple's public search results, and the free tier includes 1,000 requests per month.

How fast is the App Store search scraper API?

Median end-to-end response is about 2.6 seconds, including proxy routing, anti-bot handling, retries, and parsing. Apple's search endpoint throttles at roughly 20 requests per minute per IP and returns a 403 past that, which is the limit our proxy rotation and retries handle so your search jobs keep running.

Get search api as JSON
Free plan, 1,000 requests. No credit card required.
Get a free API key All endpoints