All scrapers

Apps

Apple App Store Scraper

apps.apple.com

100% Success rate
2.1s Avg response
Bot detection + rate limiting Protection
1,212 calls Measured over

The Apple App Store is served through a dedicated plugin endpoint with three modes rather than the generic page fetch. In app mode, give it an app - a numeric id like 310633997, id310633997, an apps.apple.com URL or a bundle id like com.spotify.client - and it returns the listing already parsed: title and subtitle, the developer with its id and website, the price, currency and free flag, the star rating with its rating count and the 1-5 star histogram, the content and age rating, genres, release date, last update, the current version with its release notes and the version history, the size in bytes, the minimum iOS version, languages, the description, icon, screenshots and preview videos, the in-app purchases with their prices, the privacy labels, the app's rank in its top chart and the apps the store lists as similar. In search mode, give it a term like 'vpn' and it returns up to 200 matching apps, each with id, title, developer, price, rating, rating count, genres and version. In reviews mode it returns the app's customer reviews, newest or most helpful first, each with title, text, star rating, author, date, the app version reviewed and helpful votes. Prices, ratings and reviews are per store country, picked with country, and no Apple developer account or API key is involved.

What you can extract

  • App id, bundle id, title, subtitle, store URL and icon
  • Developer name, id and website
  • Price, currency, free flag and the in-app purchases with their prices
  • Star rating, rating count and the 1-5 star histogram
  • Content and age rating, genres, release date, last update, current version, release notes and version history
  • Size in bytes, minimum iOS version, languages, description, screenshots and preview videos
  • Privacy labels, top-chart rank and similar apps
  • Search mode: up to 200 matching apps with id, title, developer, price, rating and version
  • Reviews mode: up to 500 reviews per country and sort order with title, text, rating, author, date, app version and helpful votes

Dedicated endpoints

/apps/app-store

App detail, app search or reviews on the App Store

One App Store app in full (mode=app, app_id as a numeric id, id310633997, an apps.apple.com URL or a bundle id): appId, bundleId, title, subtitle, developer, developerId, developerWebsite, price, currency, free, rating, ratingsCount, histogram, contentRating, ageRating, genres, releaseDate, updated, version, releaseNotes, versionHistory, size, minimumOsVersion, languages, description, icon, screenshots, videos, inAppPurchases, privacy, chartRank and similarApps. Or matching apps (mode=search, q; max_results 1-200). Or customer reviews (mode=reviews): id, title, text, rating, author, date, version and helpfulVotes, sort mostrecent or mosthelpful, 50 per page and up to 500 (max_results), with page and nextPage to continue. country picks the store (ISO-2, default us or the country of an App Store URL), lang the listing language such as fr or fr-CA.

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/apps/app-store?mode=app&app_id=310633997&country=us"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/apps/app-store",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"mode": "app", "app_id": "310633997", "country": "us"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const app = await su.appStoreApp('310633997');
const results = await su.appStoreSearch('vpn', { maxResults: 30 });
const reviews = await su.appStoreReviews('310633997', { maxResults: 100 });
console.log(app);
console.log(results);
console.log(reviews);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Example response

{
  "mode": "app",
  "country": "us",
  "app": {
    "appId": "310633997",
    "bundleId": "net.whatsapp.WhatsApp",
    "title": "WhatsApp Messenger",
    "subtitle": "Simple. Reliable. Private.",
    "url": "https://apps.apple.com/us/app/whatsapp-messenger/id310633997",
    "developer": "WhatsApp Inc.",
    "developerId": "310634000",
    "developerWebsite": "http://www.whatsapp.com/",
    "price": 0.0,
    "currency": "USD",
    "free": true,
    "rating": 4.6837,
    "ratingsCount": 18694198,
    "histogram": { "1": 641999, "2": 253658, "3": 566089, "4": 1452364, "5": 15781684 },
    "contentRating": "12+",
    "ageRating": "13+",
    "genres": ["Social Networking", "Utilities"],
    "releaseDate": "2009-05-04T02:43:49Z",
    "updated": "2026-09-28T15:54:35Z",
    "version": "26.38.74",
    "releaseNotes": "We update the app regularly to fix bugs, optimize performance and improve the experience. Thanks for using WhatsApp!",
    "versionHistory": [
      {
        "version": "26.38.74",
        "date": "2026-09-28T15:54:35Z",
        "releaseNotes": "We update the app regularly to fix bugs, optimize performance and improve the experience. Thanks for using WhatsApp!"
      },
      {
        "version": "26.37.76",
        "date": "2026-09-23T13:45:17Z",
        "releaseNotes": "We update the app regularly to fix bugs, optimize performance and improve the experience. Thanks for using WhatsApp!"
      }
    ],
    "size": 385214464,
    "minimumOsVersion": "15.1",
    "languages": ["AR", "BN", "CA", "HR", "CS", "DA"],
    "description": "WhatsApp from Meta is a free messaging and calling app used by over 2 billion people across 180+ countries. It's super simple, reliable and private,...",
    "icon": "https://is1-ssl.mzstatic.com/image/thumb/Purple211/v4/54/08/2d/54082dca-2973-b8b7-5481-a6299244b8c6/AppIcon-0-0-1x_U007epad-0-0-0-1-0-0-sRGB-0-85-220.png/512x512bb.jpg",
    "screenshots": [
      "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/d8/95/88/d89588dd-ce20-0f5b-95bc-f99814bf9a6c/6.9__Display_1-en_US.png/320x480bb.jpg"
    ],
    "inAppPurchases": [
      { "name": "No ads (1 account)", "price": "$4.00" },
      { "name": "No ads (4 accounts)", "price": "$21.99" },
      { "name": "No ads (5 accounts)", "price": "$26.99" }
    ],
    "privacy": [
      {
        "type": "DATA_LINKED_TO_YOU",
        "title": "Data Linked to You",
        "categories": ["PURCHASES", "FINANCIAL_INFO", "LOCATION", "CONTACT_INFO", "CONTACTS", "USER_CONTENT", "IDENTIFIERS", "USAGE_DATA", "DIAGNOSTICS"]
      },
      {
        "type": "DATA_NOT_LINKED_TO_YOU",
        "title": "Data Not Linked to You",
        "categories": ["SEARCH_HISTORY"]
      }
    ],
    "chartRank": { "position": 2, "chart": "Social Networking", "url": "https://apps.apple.com/us/iphone/charts/6005?chart=top-free" },
    "similarApps": [
      { "appId": "454638411", "bundleId": "com.facebook.Messenger", "title": "Messenger", "subtitle": "Text, audio and video calls" },
      { "appId": "686449807", "bundleId": "ph.telegra.Telegraph", "title": "Telegram Messenger", "subtitle": "Fast. Secure. Powerful." }
    ]
  }
}

Read the API docs

Frequently asked questions

Is it legal to scrape the Apple App Store?

Collecting publicly available App Store data such as app titles, prices, ratings and reviews is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. Reviewer names and review text can be personal data, so follow the privacy rules that apply to you. ScrapeUnblocker returns the public store data; what you collect and how you use it is your responsibility.

How do I scrape the App Store without getting blocked?

Apple limits how many calls one address may make to its store, and its review feed now and then serves a page empty. The /apps/app-store plugin fetches every Apple page through ScrapeUnblocker's rotating exits and fetches it again when it comes back blocked or empty. In ScrapeUnblocker's benchmark it returned real data on 100% of 1,212 calls with different apps, search terms and store countries, about 2.1s per call: app details 618 calls across 42 store countries at about 2.4s, search 300 calls at about 2.2s and reviews 294 calls at about 1.4s.

How many App Store reviews can I get?

Apple serves at most 500 reviews per app per store country and sort order, 50 to a page across 10 pages. Set max_results up to 500 to collect them in one call, sort them mostrecent or mosthelpful, and continue later with page set to the nextPage of the previous response; when the last page was only partly used, nextPage points at it again, so skip review ids you already have. Asking another store country or the other sort order reaches further reviews. Developer replies are not included.

Do I need an Apple developer account or App Store API?

No. The plugin returns app details, search results and reviews as JSON without an Apple developer account, App Store Connect access or API key on your side. Identify the app with its numeric id such as 310633997, id310633997, an apps.apple.com URL or a bundle id such as com.spotify.client, and your ScrapeUnblocker key is the one credential you need.

Can I scrape the App Store for a specific country or language?

Yes. Set country to the store as an ISO-2 code (default us, or the country in an App Store URL you pass), and prices, ratings, chart ranks and reviews come back for that store. Set lang, such as fr or fr-CA, for the listing language where a store offers several. An app that is not sold in that country answers 404. You can also set proxy_country to pick the exit country, or leave it blank and ScrapeUnblocker picks the exit.

How much does it cost to scrape the App Store?

In app and search mode each call is one request: one app in full, or up to 200 matching apps. In reviews mode each 50-review page served is one request, so 100 reviews is 2 requests and 500 is 10, and pagesFetched shows the exact number. 1 request = 1 credit, EUR 1.00 per 1,000 on pay as you go, down to about EUR 0.55 per 1,000 on the Ultimate plan. Blocks and timeouts are not billed, and the free trial includes 500 requests with no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.