> For the complete documentation index, see [llms.txt](https://docs.pullbay.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pullbay.com/documentation/guides/how-to-guides-for-app-store.md).

# How-To Guides for App Store

The Pullbay App Store API gives you direct access to user reviews from any app on the App Store — by numeric ID or bundle ID, for any country, sorted by recency or helpfulness. These guides walk through the most common real-world tasks: exporting data, collecting full review history, catching negative feedback early, and scaling to multiple apps at once.

## What You Can Do

| Task                                       | When to use it                                                                                    |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------- |
| **Export reviews to CSV or a spreadsheet** | One-time or recurring data exports for reporting, sharing with stakeholders, or offline analysis  |
| **Collect complete review history**        | Building a full historical dataset from scratch, or catching up after a period without monitoring |
| **Monitor negative reviews in real time**  | Setting up alerts so your team can respond quickly to 1–2 star feedback                           |
| **Track reviews across multiple apps**     | Comparing your own app variants, localized versions, or monitoring competitors side by side       |

## Before You Start

All guides assume you have:

* A **Pullbay API key** — generate one from the [dashboard](https://dashboard.pullbay.com/)
* Your app's **numeric App Store ID** (8–12 digits, e.g. `389801252`) or **bundle ID** (e.g. `com.burbn.instagram`) — find it on the App Store product page or in App Store Connect
* Enough **credits** for the number of reviews you plan to fetch — each review returned costs 1 credit

## Guides in This Section

### Export App Store Reviews

Export reviews to a file, spreadsheet, or database in a few steps. Covers one-time exports (using `maxItems` for a bulk fetch) and recurring exports with deduplication so you don't re-process reviews you've already seen.

**Best for**: CSV exports, Google Sheets sync, seeding a data warehouse.

### Monitor Negative Reviews

Set up a recurring workflow that fetches recent reviews, filters to scores of 1 or 2, and sends alerts to Slack, email, or your support tool. Includes guidance on deduplication so each low-score review triggers exactly one alert.

**Best for**: Customer support triage, responding to critical feedback before it compounds.

### Track Reviews Across Multiple Apps

Fetch reviews for a list of apps in a single workflow — useful for comparing localized versions of your app, monitoring a portfolio of products, or running a weekly competitive analysis on rival apps.

**Best for**: Product teams managing more than one app, competitive intelligence, portfolio dashboards.

## Key API Concepts

### Two fetch modes — choose one per request

| Mode          | Parameter        | Returns                                            | Use when                                       |
| ------------- | ---------------- | -------------------------------------------------- | ---------------------------------------------- |
| **Bulk**      | `maxItems=1–500` | Up to 500 reviews in one response, no cursor       | You want all recent reviews at once            |
| **Paginated** | `page=1–10`      | \~50 reviews + `pagination.hasNextPage` + `cursor` | You need to process page by page or stop early |

`maxItems` and `page` cannot be used in the same request.

### App identifier — choose one per request

* `appId` — numeric App Store ID (e.g. `389801252`)
* `bundleId` — reverse-domain bundle ID (e.g. `com.burbn.instagram`)

`appId` and `bundleId` cannot be used together.

### Sort order

* `recent` — newest reviews first (default)
* `helpful` — most helpful votes first

### Response envelope

Every response wraps the data in the same structure:

```json
{
  "requestId": "3b8dcb68-...",
  "success": true,
  "data": [...],
  "pagination": { "hasNextPage": false, "cursor": null },
  "pricing": { "creditsCharged": 52 }
}
```

Always log `requestId` and `pricing.creditsCharged` — the first helps debug issues with support, the second lets you track credit consumption over time.

## Where to Go Next

* **New to the API?** Start with the Export guide — it covers the basics of authentication and reading the response before adding any automation.
* **Running a scheduled workflow?** The Monitor Negative Reviews guide includes a complete deduplication pattern you can adapt to any recurring use case.
* **Using n8n, Zapier, or Google Apps Script?** See the platform-specific integration guides for copy-paste workflow configurations.
* **Building a backend service?** See the Backend Integration Guide for language-specific client examples (Python, Node.js, PHP, Ruby) with retry logic, error handling, and credit tracking.
