# App Store reviews API — $0.0005 per review

> App Store reviews API: Customer reviews of an App Store app — rating, title, text. $0.0005 per delivered review, nothing delivered means nothing charged.

[Home](https://quanticdata.io/)/[Collectors](https://quanticdata.io/collectors/)/*App Store reviews API*

# App Store reviews API

An App Store reviews API that reads Apple's public customer-reviews feed for one app and storefront: the star rating, the title, the full body, the author nickname, the app version reviewed, the timestamp and the helpful-vote counts, newest first. Pass a numeric app id or a store URL and the country you want to hear from.

[Get my free API key](https://app.quanticdata.io/register) [See the request](/collectors/app-store-reviews-api/#integration)

$0.0005 per delivered review · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/app_store_reviews/run

```
$ curl $QD/app_store_reviews/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"app_id": "389801252", "country": "us", "max_results": 50}'
{ "status": "done", "count": 50,
  "results": [
    {
      "app_id": "…",
      "country": "…",
      "review_id": "…",
      "rating": … } ],
  "cost": 0.025 }
# 50 reviews × $0.0005 · nothing delivered, nothing charged
```

**$0.0005 / review**4,000 reviews on the free $2 every month

**Semantic input**app_id, country, max_results — no URL lists

**Up to 500**reviews per run, pagination handled for you

**No browser**read over HTTP/TLS — cheaper and faster than rendering

On this page: [What it is](/collectors/app-store-reviews-api/#what) [Output fields](/collectors/app-store-reviews-api/#output) [Inputs](/collectors/app-store-reviews-api/#input) [Pricing](/collectors/app-store-reviews-api/#pricing) [Integration](/collectors/app-store-reviews-api/#integration) [Use cases](/collectors/app-store-reviews-api/#use-cases) [Versus the alternatives](/collectors/app-store-reviews-api/#compare) [FAQ](/collectors/app-store-reviews-api/#faq)

## What an App Store reviews API does

App Store Connect only shows the reviews for apps you own, and only after you authenticate. This reads the storefront's public RSS feed instead, so any app is fair game — a competitor's, a category leader's — with no account, no key and no relationship to the developer.

Reviews arrive fifty to a page, newest first, and Apple caps the feed at ten pages per storefront. That ceiling is why country is a first-class input: reading the same app across us, gb and de widens both the sample and the language mix, and the country you pass is also the proxy exit the feed is fetched from.

Input is meaning, not a URL *app_id* *country* *max_results*

## What one review looks like

Every delivered review carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

| Field | Type | What it holds |
| --- | --- | --- |
| `rank` | integer | 1-based position (newest first). |
| `app_id` | string | App id the review belongs to. |
| `country` | string | Storefront read. |
| `review_id` | string | Apple's review id. |
| `rating` | integer · nullable | Star rating 1–5. |
| `title` | string · nullable | Review title. |
| `text` | string · nullable | Review body. |
| `author` | string · nullable | Reviewer nickname. |
| `app_version` | string · nullable | App version reviewed. |
| `updated_at` | string · nullable | Review timestamp (ISO 8601). |
| `votes_helpful` | integer | Helpful votes. |
| `votes_total` | integer | Total votes. |

## Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

| Input | Type | Required | What it does |
| --- | --- | --- | --- |
| `app_id` | string | yes | Numeric App Store id or the app's store URL. |
| `country` | string | no | Storefront country (default us) — also the proxy exit. |
| `max_results` | integer | no | How many reviews to deliver at most (1–500). You pay only for delivered reviews. |

Pricing

## App Store reviews API pricing

$0.0005 per delivered review. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 4,000 reviews before you spend anything.

**$0.0005**per delivered review*$0.4 per 1,000 delivered reviews*

**4,000 reviews**on the free allowance*$2 every month, no card*

**Zero rows**zero charge*blocks, captchas and retries are on us*

**−30%**on volume tiers*the catalog returns your key's price*

### Pay as you go

$0/mo

- $2 free credit / month

- 60 requests / min

- List unit prices

### Starter

$19/mo

- $15 free credit / month

- 300 requests / min

- 10% off unit prices

Most popular

### Growth

$79/mo

- $50 free credit / month

- 600 requests / min

- 20% off unit prices

### Scale

$299/mo

- $250 free credit / month

- 1,200 requests / min

- 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other [Data API](https://quanticdata.io/web-data-api-for-ai/). Prices are launch pricing read live from the billing config — `GET /v1/scraper/collectors` returns the price your key actually pays.

Integration

## One POST, typed rows

Base URL `https://api.quanticdata.io/v1`, Bearer auth, the same key as every other Data API. Endpoint: `POST /v1/scraper/collectors/app_store_reviews/run`.

```
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/app_store_reviews/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"app_id":"389801252","country":"us","max_results":50}'
```

```
import requests

r = requests.post(
    "https://api.quanticdata.io/v1/scraper/collectors/app_store_reviews/run",
    headers={"Authorization": f"Bearer {QD_API_KEY}"},
    json={
        "app_id": "389801252",
        "country": "us",
        "max_results": 50
    },
    timeout=120,
)
for row in r.json()["payload"]["results"]:
    print(row)
```

```
const res = await fetch(
  "https://api.quanticdata.io/v1/scraper/collectors/app_store_reviews/run",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.QD_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({"app_id":"389801252","country":"us","max_results":50}),
  },
);
const { payload } = await res.json();
console.table(payload.results);
```

```
claude mcp add quantumproxies \
  -e QUANTUMPROXIES_API_KEY=qd_live_your_key_here \
  -- npx -y quantumproxies-mcp

# then, in the chat:
> run the app_store_reviews collector with app_id="389801252" and country="us"
```

## What people build with the App Store reviews API

Three shapes of work this endpoint was designed around.

### Competitor review mining

Read the recent reviews for an app you do not own and tag the themes behind its rating.

### Release reaction

Filter incoming reviews by the app_version field to see how a specific build landed with users.

### Localized sentiment

Run the same app across storefronts to compare complaints and praise by country and language.

## App Store reviews API versus rolling your own

The differences that actually cost time when you build this in-house.

|  | DIY scraper | This collector |
| --- | --- | --- |
| Access | App Store Connect, authenticated | Public RSS feed, no account |
| Which apps | Only apps you own | Any app, by id or store URL |
| Coverage | One market | Per-country runs past the 10-page cap |

## FAQ

Questions we get about the App Store reviews API.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### How is this different from the App Store Connect API?

Connect returns reviews only for apps on your own account and needs an authenticated key. This reads Apple's public reviews feed, so it works for any app by its id or store URL and never logs in — at the cost of the private depth Apple keeps for owners, which no public route exposes.

### How many reviews can I pull for one app?

The feed serves fifty per page, newest first, and Apple stops it at ten pages per storefront. To go further, read the same app in another `country`; each storefront is a separate feed with its own reviews.

### What do I pass to identify the app?

Either the numeric App Store id or the full apps.apple.com URL — the id is extracted from the URL. `country` then picks which storefront's reviews you read, defaulting to us.

### Is there a free App Store reviews API?

Every account gets $2 of credit every month with no card, which is about 4,000 delivered reviews on this endpoint at $0.0005 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

### How much does one run cost?

Multiply the rows you actually receive by $0.0005. A run capped at 500 reviews — the maximum for this collector — costs $0.25 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and `GET /v1/scraper/collectors` returns the price your key actually pays.

## Run the App Store reviews API now

$2 of free credit every month, no card. Your key returns its own prices from `GET /v1/scraper/collectors`.

[Get my free API key](https://app.quanticdata.io/register)

Related: [All 65 collectors](https://quanticdata.io/collectors/) [App Store scraper API](https://quanticdata.io/collectors/app-store-scraper-api/) [Google Play scraper API](https://quanticdata.io/collectors/google-play-scraper-api/) [Google Reviews Scraper API](https://quanticdata.io/collectors/google-reviews-scraper-api/) [Steam store API](https://quanticdata.io/collectors/steam-store-api/) [Crypto market data API](https://quanticdata.io/collectors/crypto-market-data-api/) [Documentation](https://quanticdata.io/docs/)

---

Source: https://quanticdata.io/collectors/app-store-reviews-api/ · Site index for AI: https://quanticdata.io/llms.txt
