> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapeunblocker.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Scrape Apple App Store app details, search and reviews

> Scrapes the Apple App Store. `mode=app` with `app_id` (numeric id, `id310633997`, an apps.apple.com URL or a bundle id) returns one app's full detail: title, `subtitle`, developer (id, store page, website), price / currency / `free`, `rating`, `ratingsCount` and the star `histogram`, `contentRating`, genres, `releaseDate`, `updated`, `version`, `releaseNotes` and `versionHistory`, `size` in bytes, `minimumOsVersion`, `languages`, description, screenshots, icon, `inAppPurchases`, `privacy` labels, `chartRank` and `similarApps`. `mode=search` with `q` returns matching apps (up to 200). `mode=reviews` returns customer reviews (title, text, rating, author, date, app version, helpful votes), newest or most helpful first; Apple serves 50 per page and 500 per country. `country` picks the storefront. mode=reviews is billed one request per review page fetched (`pagesFetched`).



## OpenAPI

````yaml /api-reference/openapi.json post /apps/app-store
openapi: 3.1.0
info:
  title: ScrapeUnblocker API
  description: >-
    Public API for the ScrapeUnblocker proxy/anti-bot service. Authenticate
    every request with the `x-scrapeunblocker-key` header. Documented here:
    page-source extraction, Google SERP scraping, image fetch, and the dedicated
    plugin endpoints (search engines, marketplaces, reviews, travel, social and
    more). All other paths exist for internal operations and are intentionally
    hidden from this spec.
  version: 3.0.0
servers:
  - url: https://api.scrapeunblocker.com
    description: Production
security: []
paths:
  /apps/app-store:
    post:
      tags:
        - Plugins
      summary: Scrape Apple App Store app details, search and reviews
      description: >-
        Scrapes the Apple App Store. `mode=app` with `app_id` (numeric id,
        `id310633997`, an apps.apple.com URL or a bundle id) returns one app's
        full detail: title, `subtitle`, developer (id, store page, website),
        price / currency / `free`, `rating`, `ratingsCount` and the star
        `histogram`, `contentRating`, genres, `releaseDate`, `updated`,
        `version`, `releaseNotes` and `versionHistory`, `size` in bytes,
        `minimumOsVersion`, `languages`, description, screenshots, icon,
        `inAppPurchases`, `privacy` labels, `chartRank` and `similarApps`.
        `mode=search` with `q` returns matching apps (up to 200). `mode=reviews`
        returns customer reviews (title, text, rating, author, date, app
        version, helpful votes), newest or most helpful first; Apple serves 50
        per page and 500 per country. `country` picks the storefront.
        mode=reviews is billed one request per review page fetched
        (`pagesFetched`).
      operationId: app_store_scrape_apps_app_store_post
      parameters:
        - name: mode
          in: query
          required: false
          schema:
            type: string
            description: 'What to scrape: app, search, reviews.'
            default: app
            title: Mode
          description: 'What to scrape: app, search, reviews.'
        - name: app_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              App for mode=app / mode=reviews: the numeric App Store id
              ('310633997'), 'id310633997', an apps.apple.com app URL, or a
              bundle id ('net.whatsapp.WhatsApp').
            title: App Id
          description: >-
            App for mode=app / mode=reviews: the numeric App Store id
            ('310633997'), 'id310633997', an apps.apple.com app URL, or a bundle
            id ('net.whatsapp.WhatsApp').
        - name: q
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Search term for mode=search, e.g. 'vpn'.
            title: Q
          description: Search term for mode=search, e.g. 'vpn'.
        - name: country
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              App Store country (ISO-2), e.g. 'us', 'gb', 'de'. Prices, ratings
              and reviews are per country. Default: the country in an app URL,
              else 'us'.
            title: Country
          description: >-
            App Store country (ISO-2), e.g. 'us', 'gb', 'de'. Prices, ratings
            and reviews are per country. Default: the country in an app URL,
            else 'us'.
        - name: lang
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Listing language for mode=app / mode=search, e.g. 'fr' or 'fr-CA'
              (for countries whose store has several languages). Default: the
              store's own.
            title: Lang
          description: >-
            Listing language for mode=app / mode=search, e.g. 'fr' or 'fr-CA'
            (for countries whose store has several languages). Default: the
            store's own.
        - name: max_results
          in: query
          required: false
          schema:
            type: integer
            description: >-
              mode=search: apps to return (1-200). mode=reviews: reviews to
              collect (1-500); Apple serves 50 per page and at most 10 pages per
              country, each page billed as one request.
            default: 50
            title: Max Results
          description: >-
            mode=search: apps to return (1-200). mode=reviews: reviews to
            collect (1-500); Apple serves 50 per page and at most 10 pages per
            country, each page billed as one request.
        - name: sort
          in: query
          required: false
          schema:
            type: string
            description: 'Review order for mode=reviews: mostrecent, mosthelpful.'
            default: mostrecent
            title: Sort
          description: 'Review order for mode=reviews: mostrecent, mosthelpful.'
        - name: page
          in: query
          required: false
          schema:
            type: integer
            description: >-
              mode=reviews: review page to start from (1-10). Use `nextPage` of
              a previous response to continue. When the last page was only
              partly used, `nextPage` points at it again, so skip reviews whose
              `id` you already have.
            default: 1
            title: Page
          description: >-
            mode=reviews: review page to start from (1-10). Use `nextPage` of a
            previous response to continue. When the last page was only partly
            used, `nextPage` points at it again, so skip reviews whose `id` you
            already have.
        - name: proxy_country
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Exit-IP country (ISO-2). Blank lets us pick the exit.
            title: Proxy Country
          description: Exit-IP country (ISO-2). Blank lets us pick the exit.
      responses:
        '200':
          description: >-
            JSON app object (mode=app), apps array (mode=search) or reviews
            array (mode=reviews).
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid parameters or an unknown store country.
        '404':
          description: No App Store app with that id / bundle id in that country.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: Blocked, or Apple returned no usable data.
        '504':
          description: Fetch timed out.
      security:
        - ScrapeUnblockerKey: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ScrapeUnblockerKey:
      type: apiKey
      in: header
      name: x-scrapeunblocker-key
      description: Your ScrapeUnblocker API key. Apply on every request.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.