# Apple App Store Product API | Get App Details, Reviews, Pricing (`johnvc/apple-app-store-product-api`) Actor

API to fetch full Apple App Store product details for any iOS, iPadOS, or macOS app by App Store ID. Returns title, developer, description, version history, price, ratings, screenshots, in-app purchases, supported languages, privacy cards, and sample reviews. Built as an MCP-ready API for AI agents.

- **URL**: https://apify.com/johnvc/apple-app-store-product-api.md
- **Developed by:** [John](https://apify.com/johnvc) (community)
- **Categories:** SEO tools, Developer tools, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.01 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Apple App Store Product API

> **The API for fetching full Apple App Store product details by App Store ID. Built for AI agents, MCP clients, ASO tools, and product research.**

Pass any Apple App Store ID (or App Store URL) and get back a complete, structured product record: title, developer, description, version history, price, ratings and rating distribution, screenshots, in-app purchases, supported languages, privacy cards, and sample reviews. Works across 50+ country stores. One API call, one App Store ID, one rich JSON record.

This API is fully **MCP (Model Context Protocol) ready** with one-click setup for Claude Code, Claude Cowork, and Claude.ai Chat. AI agents can discover it, call it, and chain it with the rest of the Apple App Store API family without glue code.

---

### AI Agent and MCP Integration

The fastest path to use this API is through the Apify MCP server. Once connected, Claude or any other MCP-compatible AI agent can discover this API and invoke it directly from a natural-language prompt. No SDK, no manual REST plumbing, no client glue.

The Apify MCP server hosts three discovery tools (`search-actors`, `fetch-actor-details`, `add-actor`) that let agents find this API on the fly and register it as a callable tool. Pick the setup that matches your Claude surface.

#### Option 1: Claude Code (terminal CLI)

The single-command setup. Open your terminal and run:

```bash
claude mcp add apify -- npx -y @apify/actors-mcp-server
````

Then add your Apify API token (one time):

```bash
claude mcp add apify -e APIFY_TOKEN=your_apify_token_here -- npx -y @apify/actors-mcp-server
```

Get your token at https://console.apify.com/account/integrations.

Prefer to edit config by hand? Open `~/.claude.json` and add:

```json
{
  "mcpServers": {
    "apify": {
      "command": "npx",
      "args": ["-y", "@apify/actors-mcp-server"],
      "env": { "APIFY_TOKEN": "your_apify_token_here" }
    }
  }
}
```

Restart Claude Code, then try a prompt like:

> *Use the Apple App Store Product API to get full details for Spotify (App Store ID 324684580) in the US store.*

Claude will discover this API via `search-actors`, register it as a tool, and call it.

#### Option 2: Claude Cowork (web)

Claude Cowork uses the hosted Apify MCP endpoint over HTTP. No local install required.

1. Open Cowork.
2. Go to **Settings** > **Connectors** > **Add custom connector**.
3. Fill in:
   - **Name:** `Apify`
   - **Remote MCP URL:** `https://mcp.apify.com`
   - **Authentication:** Bearer token (paste your Apify API token).
4. Save and enable the connector.

Once connected, the Apify tools appear in the tool drawer. Try a prompt:

> *Use the App Store product API to get full details for these App Store URLs: https://apps.apple.com/us/app/spotify/id324684580 and https://apps.apple.com/us/app/duolingo/id570060128. Compare their ratings and pricing.*

Cowork supports dynamic tool discovery, so once Claude finds this API in a session, it stays registered as a named tool for the rest of the conversation. Subsequent prompts reuse it without re-discovery.

#### Option 3: Claude.ai Chat (Connectors)

Same hosted MCP endpoint, configured through the standard Claude.ai UI.

1. Open https://claude.ai.
2. Click your profile, then **Settings** > **Connectors** > **Add custom connector**.
3. Fill in:
   - **Name:** `Apify`
   - **Remote MCP URL:** `https://mcp.apify.com`
   - **Authentication:** Bearer token (your Apify API token).
4. Save. Toggle the connector on at the start of any chat where you want App Store product data.

Then prompt as normal:

> *Use the Apple App Store product API on Apify to fetch the full product page for Spotify in the UK store. Show version history and supported languages.*

#### Option 4: Direct REST API (ChatGPT, n8n, Zapier, custom GPTs)

Skip MCP entirely with a single REST API call. Useful for custom GPT actions, Zapier flows, n8n pipelines, or any HTTP client.

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/YOUR_USERNAME~apple-app-store-product/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"product_ids": ["324684580"], "country": "us"}'
```

For ChatGPT custom GPT actions, import the [Apify OpenAPI spec](https://docs.apify.com/api/v2) as a custom action. Once added, ChatGPT can call this API from any custom GPT.

[Full Apify MCP documentation](https://docs.apify.com/platform/integrations/mcp)

#### MCP Discovery Phrases

These are the natural-language phrasings an AI agent is likely to use when it searches for a tool that solves "fetch full Apple App Store product details." If you are building or evaluating an agent, you can pre-warm tool selection by including any of these in your system prompt or tool catalog. They are also the phrasings we tune `actor.json` to rank on for the Apify MCP `search-actors` discovery tool.

- "Apple App Store product API"
- "iOS app details API by App Store ID"
- "App Store metadata API"
- "Apple App Store app information API"
- "API to fetch App Store app details, pricing, screenshots"
- "iOS app version history API"
- "Apple App Store sample reviews API"
- "App Store privacy and data disclosures API"
- "Apple App Store in-app purchases lookup API"

#### Chained-Workflow Example: search then fetch

This API is designed to compose with the [Apple App Store Search API](https://apify.com/your-username/apple-app-store-search). A typical agent workflow:

> *Use the App Store search API to find "meditation" apps in the US store, take the top 3 results, then use the App Store product API to fetch full details (version history, screenshots, IAPs, privacy cards) for each. Summarize the differences.*

Both APIs share the same `app_id` key, so the agent can hand the IDs straight from the search call into the product call. See **The Apple App Store API Family** below for the full integration map.

***

### What You Can Extract

Every dataset item is one App Store product, flat and ready for analysis.

| Field | Description |
| ----- | ----------- |
| `app_id` | Numeric App Store ID. |
| `title` | Official app title shown on the App Store. |
| `snippet` | Short tagline. |
| `developer_name`, `developer_link` | Developer name and App Store developer page URL. |
| `age_rating` | Content rating (e.g. `4+`, `12+`). |
| `rating_average`, `rating_count` | Average star rating and total rating count. |
| `rating_distribution` | Breakdown of ratings into 1-star through 5-star buckets. |
| `price_text` | Displayed price string (e.g. `Get`, `$2.99`). |
| `in_app_purchases_available` | Boolean indicator of whether IAPs are offered. |
| `logo` | Logo / icon URL. |
| `description_text` | Full long-form app description. |
| `iphone_screenshots`, `ipad_screenshots` | Arrays of screenshot links with sizes. |
| `version_history` | Array of `{release_version, release_notes, release_date}` entries. |
| `review_examples` | Sample user reviews shown on the product page: rating, username, date, title, text, and any developer reply. |
| `privacy_description`, `privacy_policy_link`, `privacy_cards` | Apple privacy disclosures and the developer's privacy policy URL. |
| `seller`, `copyright` | Legal entity behind the app and copyright text. |
| `size_text` | App size as displayed on the store (e.g. `759.4 MB`). |
| `category` | Primary App Store category. |
| `compatibility` | Per-device-class compatibility entries (iPhone, iPad, Mac, etc.) with OS requirements. |
| `supported_languages_text` | Comma-separated list of supported languages. |
| `in_app_purchases` | Array of `{name, price}` IAP entries. |
| `supports` | Features the app supports (Family Sharing, Siri, Wallet, etc.). |
| `featured_in` | Editorial placements. |
| `you_may_also_like`, `more_by_this_developer` | Recommendation lists (optional, off by default). |
| `link` | Direct apps.apple.com URL for the product. |
| `lookup_country`, `lookup_timestamp` | Echo of the country store queried and ISO timestamp. |

***

### The Apple App Store API Family

This API is the middle link in a three-API family, all keyed on the same `app_id`:

| API | Purpose | Input | Output |
| --- | ------- | ----- | ------ |
| [Apple App Store Search API](https://apify.com/your-username/apple-app-store-search) | Find apps by keyword. | Search term + country | Many apps (search results). |
| **Apple App Store Product API (this API)** | Get full details for one app. | One or more App Store IDs + country | One full product record per ID. |
| Apple App Store Reviews API (coming soon) | Get paginated reviews for one app. | App Store ID + country + sort | Many reviews per app. |

```
Search API ──► app_id ──► Product API ──► full product details
                     └──► Reviews API ──► paginated reviews
```

Agents typically chain them: search for candidates, pick the IDs they care about, then fan out to the product API and the reviews API. Pricing is per-record across the family, so you only pay for what you actually fetch.

***

### Use Cases

- **AI agent context:** Feed real App Store product data into LLM prompts for grounded answers about iOS apps.
- **Competitive product research:** Compare two or more apps side-by-side on pricing, IAPs, screenshots, version cadence, and supported languages.
- **ASO deep dives:** Inspect the full long-form description, release notes cadence, and screenshot order for top-ranked apps in a category.
- **Pricing intelligence:** Snapshot price, IAP catalog, and price-localization across multiple country stores for the same app.
- **Version history audit:** Watch a rival app's release cadence and notes over time.
- **Privacy and data disclosure research:** Pull structured privacy cards to study what data developers declare collecting.
- **Editorial placement tracking:** See which apps are currently featured by Apple's editorial team and what placements they hold.
- **Recommendation graph mining:** Crawl `you_may_also_like` to map app affinities (when `include_related_apps` is on).

***

### Input Parameters

| Parameter | Type | Required | Default | Description |
| --------- | ---- | -------- | ------- | ----------- |
| `product_ids` | array of strings | yes | (none) | One or more App Store IDs or App Store URLs. Each entry yields one dataset row. Min 1, max 100 per run. |
| `country` | string | no | `us` | Two-letter country code (ISO 3166-1 alpha-2, lowercase). 50+ stores supported. |
| `include_reviews_sample` | boolean | no | `true` | Include the sample reviews Apple shows on the product page. Set false to slim the row. |
| `include_related_apps` | boolean | no | `false` | Include `you_may_also_like` and `more_by_this_developer` recommendation lists. |
| `output_file` | string | no | auto | Optional local JSON filename. Used for local development only. |

***

### Example Inputs

#### Single app by numeric ID

```json
{
  "product_ids": ["324684580"]
}
```

#### Single app via App Store URL

```json
{
  "product_ids": ["https://apps.apple.com/us/app/spotify/id324684580"]
}
```

The API parses the ID out of the URL automatically.

#### Batch lookup

```json
{
  "product_ids": [
    "324684580",
    "570060128",
    "https://apps.apple.com/us/app/notion/id1232780281"
  ],
  "country": "us"
}
```

#### Localized store (UK)

```json
{
  "product_ids": ["324684580"],
  "country": "gb"
}
```

#### Slim output (no sample reviews, no related apps)

```json
{
  "product_ids": ["324684580"],
  "include_reviews_sample": false,
  "include_related_apps": false
}
```

#### Full output (everything on)

```json
{
  "product_ids": ["324684580"],
  "include_reviews_sample": true,
  "include_related_apps": true
}
```

***

### Example API Output

Each dataset item is one App Store product:

```json
{
  "app_id": 324684580,
  "title": "Spotify: Music and Podcasts",
  "snippet": "Songs & Playlists For You",
  "developer_name": "Spotify",
  "developer_link": "https://apps.apple.com/us/developer/spotify/id324684583",
  "age_rating": "12+",
  "rating_average": 4.8,
  "price_text": "Get",
  "logo": "https://...logo.png",
  "description_text": "With Spotify, you can listen to music and play millions of songs and podcasts for free...",
  "iphone_screenshots": [
    {"link": "https://...iphone1.png", "size": "1284x2778"}
  ],
  "ipad_screenshots": [
    {"link": "https://...ipad1.png", "size": "2048x2732"}
  ],
  "version_history": [
    {"release_version": "9.0.40", "release_notes": "We're always making changes and improvements to Spotify...", "release_date": "2026-05-05"}
  ],
  "rating_distribution": {
    "5_star": 35028124,
    "4_star": 2780888,
    "3_star": 854840,
    "2_star": 312515,
    "1_star": 799640
  },
  "review_examples": [
    {
      "rating": "5",
      "username": "MusicLover88",
      "review_date": "04/15/2026",
      "review_title": "Best music app",
      "review_text": "I have been using Spotify for years and the discovery features keep getting better...",
      "response_text": null
    }
  ],
  "privacy_description": "The developer indicated that the app's privacy practices may include...",
  "privacy_policy_link": "https://www.spotify.com/legal/privacy-policy/",
  "privacy_cards": [
    {"title": "Data Used to Track You", "description": "...", "categories": ["Identifiers", "Usage Data"]}
  ],
  "seller": "Spotify",
  "size_text": "264.1 MB",
  "category": "Music",
  "compatibility": [
    {"device": "iPhone", "requirement": "Requires iOS 15.0 or later"}
  ],
  "supported_languages_text": "English, French, German, Japanese, Korean, Spanish",
  "copyright": "© 2026 Spotify AB",
  "supports": [
    {"title": "Family Sharing", "description": "Up to six family members can use this app..."}
  ],
  "featured_in": [],
  "link": "https://apps.apple.com/us/app/id324684580",
  "lookup_country": "us",
  "lookup_timestamp": "2026-05-12T04:32:20"
}
```

***

### Pricing

Transparent pay-per-event API call pricing. You only pay for products you actually fetch.

| Event | Cost | When charged |
| ----- | ---- | ------------ |
| `setup` | `$0.02` | Once at the start of each run. |
| `result` | `$0.02` | Per App Store product returned. |

#### Cost estimates

| Use case | Products returned | Approx. cost |
| -------- | ----------------- | ------------ |
| One app lookup | 1 | `$0.04` |
| Batch of 10 apps | 10 | `$0.22` |
| Batch of 50 apps | 50 | `$1.02` |
| Batch of 100 apps (per-run cap) | 100 | `$2.02` |

No monthly subscription. No hidden fees. Stop the run at any time and pay only for what was already returned.

***

### How to Get Started

1. **Create an Apify account** at https://apify.com if you do not have one.
2. **Open the actor page** on the Apify store and click **Try for free**.
3. **Set the input** (only `product_ids` is required) and click **Start**.
4. **Watch the run live** in the Apify console, then download results as JSON, CSV, Excel, or RSS once it finishes.
5. Optional: connect via MCP (see top of this README) to call the API directly from Claude or any AI agent.

***

### FAQ

**Q: What counts as a valid `product_id`?**
A: Any numeric Apple App Store ID (e.g. `324684580`) or any App Store URL that contains `/id<digits>` (e.g. `https://apps.apple.com/us/app/spotify/id324684580`). The API parses the ID out of URLs automatically.

**Q: Can I get all the reviews for an app?**
A: This API returns the sample reviews Apple shows on the product page (typically three). For full paginated reviews, use the dedicated **Apple App Store Reviews API** (coming soon in this family). Both APIs share the same `app_id`, so you can chain them.

**Q: Can I look up Apple Music tracks, podcasts, or movies with this API?**
A: Not in v1. This API focuses on the `app` product type. Music, podcasts, and movies can be added in v2 if there is demand - file a feature request on the actor page.

**Q: Does the same App Store ID return different data in different countries?**
A: Yes. Price, availability, localized text, and the sample reviews are all country-dependent. Set `country` to query the right regional store. Run the same ID across multiple `country` values to compare.

**Q: What happens if I pass an invalid ID or a URL the API cannot parse?**
A: That entry is skipped with an error record pushed to the dataset, and the other entries in the batch continue. The setup fee is still charged once, but no result fee is charged for the failed entry.

**Q: How do I batch fetch many apps?**
A: Pass an array of up to 100 IDs in `product_ids`. Each entry is fetched sequentially with a short delay to be polite to the upstream. Each successful fetch is one `result` charge.

**Q: Does this work with AI agents and MCP?**
A: Yes. Setup instructions for Claude Code, Claude Cowork, and Claude.ai Chat are at the top of this README. The API surface, parameter names, and output shape are tuned for natural-language tool discovery.

**Q: Which country stores are supported?**
A: 50+ stores including US, UK, CA, AU, DE, FR, JP, KR, BR, MX, IN, and more. See the `country` parameter dropdown for the full list.

***

Last Updated: 2026.05.17

# Actor input Schema

## `product_ids` (type: `array`):

List of Apple App Store product IDs to look up. Each entry can be a numeric App Store ID (e.g. 324684580) or a full App Store URL (e.g. https://apps.apple.com/us/app/spotify/id324684580) - the ID will be parsed automatically. Each parsed ID yields exactly one dataset row. Minimum 1, maximum 100 per run.

## `country` (type: `string`):

Two-letter country code (ISO 3166-1 alpha-2, lowercase) selecting which App Store region the API queries. The same App Store ID can return different metadata (price, availability, localized text, reviews) per country. Defaults to 'us'.

## `include_reviews_sample` (type: `boolean`):

When true (default), the API returns the small sample of user reviews Apple shows on each product page (typically 3 reviews with rating, title, text, author, date, and developer reply). Set false to slim the row when reviews are not needed.

## `include_related_apps` (type: `boolean`):

When true, the API includes 'You May Also Like' and 'More By This Developer' recommendation lists. Defaults to false because most agent and research use cases do not need them and dropping them keeps each row smaller.

## `output_file` (type: `string`):

Optional filename for a local JSON copy of the raw API results. Used during local development only - has no effect on the dataset.

## Actor input object example

```json
{
  "product_ids": [
    "324684580"
  ],
  "country": "us",
  "include_reviews_sample": true,
  "include_related_apps": false
}
```

# Actor output Schema

## `results` (type: `string`):

Complete list of App Store product records returned by the API. Each dataset item is one app, keyed by App Store ID, with full metadata flattened to top-level fields for easy querying.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "product_ids": [
        "324684580"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("johnvc/apple-app-store-product-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "product_ids": ["324684580"] }

# Run the Actor and wait for it to finish
run = client.actor("johnvc/apple-app-store-product-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "product_ids": [
    "324684580"
  ]
}' |
apify call johnvc/apple-app-store-product-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=johnvc/apple-app-store-product-api",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Apple App Store Product API | Get App Details, Reviews, Pricing",
        "description": "API to fetch full Apple App Store product details for any iOS, iPadOS, or macOS app by App Store ID. Returns title, developer, description, version history, price, ratings, screenshots, in-app purchases, supported languages, privacy cards, and sample reviews. Built as an MCP-ready API for AI agents.",
        "version": "0.1",
        "x-build-id": "r6w5trDh1uD461xBG"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/johnvc~apple-app-store-product-api/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-johnvc-apple-app-store-product-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/johnvc~apple-app-store-product-api/runs": {
            "post": {
                "operationId": "runs-sync-johnvc-apple-app-store-product-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/johnvc~apple-app-store-product-api/run-sync": {
            "post": {
                "operationId": "run-sync-johnvc-apple-app-store-product-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "product_ids"
                ],
                "properties": {
                    "product_ids": {
                        "title": "App Store IDs or URLs",
                        "minItems": 1,
                        "maxItems": 100,
                        "type": "array",
                        "description": "List of Apple App Store product IDs to look up. Each entry can be a numeric App Store ID (e.g. 324684580) or a full App Store URL (e.g. https://apps.apple.com/us/app/spotify/id324684580) - the ID will be parsed automatically. Each parsed ID yields exactly one dataset row. Minimum 1, maximum 100 per run.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "country": {
                        "title": "Country Store",
                        "enum": [
                            "us",
                            "gb",
                            "ca",
                            "au",
                            "nz",
                            "ie",
                            "in",
                            "sg",
                            "ph",
                            "my",
                            "de",
                            "fr",
                            "es",
                            "it",
                            "nl",
                            "be",
                            "at",
                            "ch",
                            "se",
                            "no",
                            "dk",
                            "fi",
                            "pt",
                            "pl",
                            "cz",
                            "gr",
                            "hu",
                            "ro",
                            "tr",
                            "ru",
                            "ua",
                            "il",
                            "ae",
                            "sa",
                            "eg",
                            "za",
                            "ng",
                            "ke",
                            "jp",
                            "kr",
                            "cn",
                            "tw",
                            "hk",
                            "th",
                            "id",
                            "vn",
                            "br",
                            "mx",
                            "ar",
                            "cl",
                            "co",
                            "pe"
                        ],
                        "type": "string",
                        "description": "Two-letter country code (ISO 3166-1 alpha-2, lowercase) selecting which App Store region the API queries. The same App Store ID can return different metadata (price, availability, localized text, reviews) per country. Defaults to 'us'.",
                        "default": "us"
                    },
                    "include_reviews_sample": {
                        "title": "Include Sample Reviews",
                        "type": "boolean",
                        "description": "When true (default), the API returns the small sample of user reviews Apple shows on each product page (typically 3 reviews with rating, title, text, author, date, and developer reply). Set false to slim the row when reviews are not needed.",
                        "default": true
                    },
                    "include_related_apps": {
                        "title": "Include Related App Lists",
                        "type": "boolean",
                        "description": "When true, the API includes 'You May Also Like' and 'More By This Developer' recommendation lists. Defaults to false because most agent and research use cases do not need them and dropping them keeps each row smaller.",
                        "default": false
                    },
                    "output_file": {
                        "title": "Local Output File",
                        "type": "string",
                        "description": "Optional filename for a local JSON copy of the raw API results. Used during local development only - has no effect on the dataset."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
