# iTunes & Apple Store Search Scraper (`parseforge/itunes-apple-search-scraper`) Actor

Search the iTunes and App Store catalog for apps, music, podcasts, movies, TV shows, audiobooks, and ebooks. Capture title, artist, price, genre, ratings, release date, artwork, preview URL, and store ID. Export to JSON, CSV, or Excel for market research, ASO, and content analytics.

- **URL**: https://apify.com/parseforge/itunes-apple-search-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** E-commerce, Videos, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $12.00 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🍎 iTunes & Apple Store Search Scraper

> 🚀 **Search Apple's entire catalog in seconds.** Query **movies, music tracks, artists, albums, ebooks, iPhone / iPad / Mac apps, and audiobooks** across **66 country storefronts**. Pull artwork, pricing, ratings, descriptions, release dates, and preview URLs. No API key, no rate-limit headaches.

> 🕒 **Last updated:** 2026-05-23 · **📊 30 fields** per record · **🍎 8 entity types** · **🌐 66 country storefronts** · **🗣️ 9 result languages**

The **iTunes & Apple Store Search Scraper** wraps Apple's public catalog-search service, the same backend that powers the iTunes Store, Apple Music search, App Store search, Apple Books, and Apple TV+. Each record contains the artwork URL, canonical title, artist or seller, collection / album, IDs, store URL, preview URL, price, currency, primary genre, release date, ratings, description text, and dozens of additional metadata fields depending on the entity type.

The catalog covers **every Apple-distributed creative work in 66 country storefronts** including the US, UK, Japan, Germany, France, Brazil, India, Australia, and 58 more, with results localizable to 9 languages. Use it to bootstrap a media-discovery feature, monitor App Store competitive intelligence, build a music-rights inventory, or enrich any product catalog with Apple's canonical metadata. Output exports as CSV, Excel, JSON, or XML.

> 🛑 **Podcasts use a separate scraper.** This Actor intentionally excludes the `podcast` entity. For podcast metadata use the dedicated iTunes Podcast Search scraper.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| App Store analytics teams, media-catalog builders, music-rights orgs, marketing intel, recommendation engineers, mobile-app marketers, ebook retailers | App Store competitive intel, music / movie / book catalog enrichment, price and rating monitoring, store-front availability checks, creative-rights inventory |

---

### 📋 What the iTunes & Apple Store Search Scraper does

Search across **8 entity types** in a single Actor:

- 🎬 **Movie** - feature films and shorts from iTunes Movies / Apple TV+
- 🎵 **Music Track** - individual songs across the iTunes / Apple Music catalog
- 🎤 **Music Artist** - artist-level metadata and IDs
- 💿 **Music Album** - full album records with track counts
- 📚 **Ebook** - Apple Books titles with descriptions and ratings
- 📱 **iPhone App (`software`)** - iOS apps with version, size, ratings, screenshots
- 📲 **iPad App (`iPadSoftware`)** - iPad-optimized apps
- 💻 **Mac App (`macSoftware`)** - macOS apps from the Mac App Store
- 🎧 **Audiobook** - Apple Books audiobook editions

Filter by **search query**, **entity type**, **country storefront** (66 options), and **result language** (9 options) for localized titles and descriptions.

Each record includes the artwork URL, title, artist or developer name, store URL, preview URL, price, currency, primary genre, release date, average user rating, user rating count, content advisory, and entity-specific extras like file size, version, language codes, seller name, and release notes.

> 💡 **Why it matters:** Apple's iTunes Search service is the only free, no-key, multi-storefront entry point into Apple's catalog. Commercial alternatives charge per query and rarely cover all 8 entity types. Building your own integration means handling per-entity field shapes, storefront pagination, and localization quirks by hand. This Actor skips all of that.

---

### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded Apple-catalog dataset._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td>maxItems</td><td>integer</td><td>10</td><td>Records to return. Free plan caps at 10, paid plan at 1,000,000.</td></tr>
<tr><td>searchQuery</td><td>string</td><td>"the beatles"</td><td>Free-text search term.</td></tr>
<tr><td>entity</td><td>string</td><td>"musicTrack"</td><td>One of 8 entity types: movie, musicTrack, musicArtist, musicAlbum, ebook, software (iPhone), iPadSoftware, macSoftware, audiobook.</td></tr>
<tr><td>country</td><td>string</td><td>"us"</td><td>ISO 3166-1 alpha-2 storefront code. 66 enum values.</td></tr>
<tr><td>language</td><td>string</td><td>"en_us"</td><td>Language for human-readable fields. 9 enum values.</td></tr>
</tbody>
</table>

**Example: 25 top Taylor Swift music tracks in the US storefront.**

```json
{
    "maxItems": 25,
    "searchQuery": "taylor swift",
    "entity": "musicTrack",
    "country": "us",
    "language": "en_us"
}
````

**Example: top iPhone apps for the search term "duolingo" in the Japanese storefront.**

```json
{
    "maxItems": 10,
    "searchQuery": "duolingo",
    "entity": "software",
    "country": "jp",
    "language": "ja_jp"
}
```

> ⚠️ **Good to Know:** Apple's iTunes Search service returns a maximum of 200 results per query. For deeper coverage, run multiple queries with narrower search terms. Each storefront has its own catalog and pricing in local currency.

***

### 📊 Output

Each record contains **30 fields**. Download the dataset as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🖼️ `artworkUrl` | string | null | `"https://is1-ssl.mzstatic.com/.../100x100bb.jpg"` |
| 📂 `kind` | string | null | `"song"` / `"software"` / `"feature-movie"` |
| 📂 `wrapperType` | string | null | `"track"` / `"software"` / `"audiobook"` |
| 🏷️ `title` | string | `"Hey Jude"` |
| 🎤 `artist` | string | null | `"The Beatles"` |
| 💿 `collectionName` | string | null | `"1 (Remastered)"` |
| 🆔 `trackId` | number | null | `1440831214` |
| 🆔 `collectionId` | number | null | `1440831190` |
| 🆔 `artistId` | number | null | `136975` |
| 🔗 `url` | string | null | `"https://music.apple.com/us/album/.../1440831214"` |
| ▶️ `previewUrl` | string | null | `"https://audio-ssl.itunes.apple.com/.../preview.m4a"` |
| 💰 `price` | number | null | `1.29` |
| 💱 `currency` | string | null | `"USD"` |
| 🌐 `country` | string | null | `"USA"` |
| 🎭 `primaryGenreName` | string | null | `"Rock"` |
| 📅 `releaseDate` | string | null | `"1968-08-26T07:00:00Z"` |
| 🔢 `trackCount` | number | null | `27` |
| ⏱️ `durationMillis` | number | null | `425133` |
| 🚫 `explicit` | string | null | `"notExplicit"` |
| 📝 `shortDescription` | string | null | (apps / books) |
| 📝 `longDescription` | string | null | (apps / books) |
| 🔞 `rating` | string | null | `"4+"` |
| 📰 `releaseNotes` | string | null | (apps) |
| 📦 `fileSizeBytes` | string | null | `"123456789"` |
| 🏷️ `version` | string | null | `"6.1.2"` |
| ⭐ `averageUserRating` | number | null | `4.7` |
| 🔢 `userRatingCount` | number | null | `1842355` |
| 🏪 `sellerName` | string | null | `"Duolingo, Inc."` |
| 🗣️ `languageCodes` | array | null | `["EN","ES","FR"]` |
| 🕒 `scrapedAt` | ISO 8601 | `"2026-05-23T16:00:00.000Z"` |

#### 📦 Sample records

<details>
<summary><strong>🎵 Music track: "Hey Jude" by The Beatles</strong></summary>

```json
{
    "artworkUrl": "https://is1-ssl.mzstatic.com/image/thumb/.../100x100bb.jpg",
    "kind": "song",
    "wrapperType": "track",
    "title": "Hey Jude",
    "artist": "The Beatles",
    "collectionName": "1 (Remastered)",
    "trackId": 1440831214,
    "collectionId": 1440831190,
    "artistId": 136975,
    "url": "https://music.apple.com/us/album/hey-jude/1440831190",
    "previewUrl": "https://audio-ssl.itunes.apple.com/.../preview.m4a",
    "price": 1.29,
    "currency": "USD",
    "country": "USA",
    "primaryGenreName": "Rock",
    "releaseDate": "1968-08-26T07:00:00Z",
    "trackCount": 27,
    "durationMillis": 425133,
    "explicit": "notExplicit",
    "scrapedAt": "2026-05-23T16:00:00.000Z"
}
```

</details>

<details>
<summary><strong>📱 iPhone app: Duolingo</strong></summary>

```json
{
    "artworkUrl": "https://is1-ssl.mzstatic.com/image/thumb/.../512x512bb.jpg",
    "kind": "software",
    "wrapperType": "software",
    "title": "Duolingo - Language Lessons",
    "artist": "Duolingo",
    "trackId": 570060128,
    "url": "https://apps.apple.com/us/app/duolingo-language-lessons/id570060128",
    "price": 0,
    "currency": "USD",
    "country": "USA",
    "primaryGenreName": "Education",
    "releaseDate": "2012-11-13T08:00:00Z",
    "shortDescription": null,
    "longDescription": "Learn a new language with Duolingo, the world's most popular way to learn ...",
    "rating": "4+",
    "version": "8.16.4",
    "fileSizeBytes": "276543200",
    "averageUserRating": 4.7,
    "userRatingCount": 1842355,
    "sellerName": "Duolingo, Inc.",
    "languageCodes": ["EN","ES","FR","DE","JA","KO","PT","ZH"],
    "scrapedAt": "2026-05-23T16:00:00.000Z"
}
```

</details>

<details>
<summary><strong>🎬 Movie: Inception</strong></summary>

```json
{
    "artworkUrl": "https://is1-ssl.mzstatic.com/image/thumb/.../100x100bb.jpg",
    "kind": "feature-movie",
    "wrapperType": "track",
    "title": "Inception",
    "artist": "Christopher Nolan",
    "trackId": 393461472,
    "url": "https://itunes.apple.com/us/movie/inception/id393461472",
    "previewUrl": "https://video-ss-east.itunes.apple.com/.../preview.mov",
    "price": 14.99,
    "currency": "USD",
    "country": "USA",
    "primaryGenreName": "Action & Adventure",
    "releaseDate": "2010-07-16T07:00:00Z",
    "durationMillis": 8880000,
    "rating": "PG-13",
    "longDescription": "Dom Cobb is a skilled thief, the absolute best in the dangerous art of extraction ...",
    "scrapedAt": "2026-05-23T16:00:00.000Z"
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🍎 | **8 entity types.** Movies, music tracks / artists / albums, ebooks, iPhone / iPad / Mac apps, audiobooks. |
| 🌐 | **66 storefronts.** US, UK, Japan, Germany, France, Brazil, India, and 59 more in a single dropdown. |
| 🗣️ | **9 result languages.** Localized titles and descriptions for international rollouts. |
| 🖼️ | **Artwork URLs.** Direct image links for thumbnails, badges, hero shots. |
| 💰 | **Pricing in local currency.** Storefront-native price plus currency code. |
| ⭐ | **Ratings + reviews counts.** Average rating and total user-rating count per record. |
| 🚫 | **No authentication.** No API key, no signup. |

> 📊 Apple's iTunes Search backend underpins App Annie, Sensor Tower, Apptopia, and many in-app analytics SDKs. This Actor lets you reach the same upstream data without their licensing fees.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ iTunes & Apple Store Search Scraper** *(this Actor)* | $5 free credit, then pay-per-use | **8 entities · 66 storefronts** | **Live per run** | entity / country / language | ⚡ 2 min |
| App Store analytics SaaS | $$$ / month | Apps only | Daily snapshot | Vendor-defined | ⏳ Hours |
| Direct iTunes Search probe | Free | 8 entities | Live | Hand-built filters | 🐢 Hours |
| Scraping the App Store web pages | Free | Apps only | Manual | Brittle | 🕒 Variable |

Pick this Actor when you want the full Apple catalog (not just apps) across every storefront, with localized titles and clean structured output.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the iTunes & Apple Store Search Scraper page on the Apify Store.
3. 🎯 **Set input.** Type a search query, pick an entity type, choose your storefront and result language.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your data.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to downloaded dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 📱 App Store Competitive Intel

- Top-result tracking by keyword and storefront
- Competitor rating-trend monitoring
- Localized title and description audits
- Pricing parity checks across countries

</td>
<td width="50%" valign="top">

#### 🎵 Music / Media Catalog Builders

- Bootstrap a music-discovery catalog
- Enrich playlists with canonical Apple Music IDs
- Movie metadata for streaming-aggregator UIs
- Audiobook discovery for reading apps

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 📚 Publishing & Book Retailers

- Apple Books listing audits
- Pricing-parity checks across iBooks storefronts
- Genre-level catalog comparison
- Ratings monitoring for promo planning

</td>
<td width="50%" valign="top">

#### 🎯 Marketing & Localization

- Pre-launch storefront availability scans
- Localized creative-asset URL discovery
- Genre / category competitive landscape
- Featured-vs-search rank correlation

</td>
</tr>
</table>

***

### 🔌 Automating iTunes & Apple Store Search Scraper

Control the scraper programmatically for scheduled runs and pipeline integrations:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval. Daily keyword rank tracking, weekly pricing audits, or hourly featured-app monitoring all work cleanly.

***

### 🌟 Beyond business use cases

Apple-catalog data powers more than commercial workflows. The same structured records support research, education, civic transparency, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- App-economy research on category dynamics
- Music-industry studies tracking release patterns
- Cross-storefront pricing analyses for economics papers
- Reproducible app-discoverability research

</td>
<td width="50%">

#### 🎨 Personal and creative

- Personal music or movie wishlist exports
- Indie app launch competitive scouting
- Side projects mapping audiobook availability
- Hobbyist storefront comparison tools

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Public-interest research on app accessibility ratings
- Educational app discovery for school districts
- Civic-tech projects auditing app permissions
- Investigative journalism on app-store rankings

</td>
<td width="50%">

#### 🧪 Experimentation

- Train recommendation models on real Apple catalog data
- Prototype keyword-rank-tracking dashboards
- Build "what's new in storefront X" notifiers
- Test ETL pipelines on creative-catalog feeds

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20iTunes%20%26%20Apple%20Store%20Search%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20iTunes%20%26%20Apple%20Store%20Search%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20iTunes%20%26%20Apple%20Store%20Search%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20iTunes%20%26%20Apple%20Store%20Search%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

Type a search term, pick an entity type (movie, music, app, book, audiobook), choose a country storefront, and click Start. The Actor hits Apple's public catalog-search backend and emits one structured record per result.

#### 📏 How accurate is the data?

This Actor mirrors Apple's iTunes Search response exactly. Titles, prices, ratings, release dates, and IDs come straight from the upstream catalog. Storefront availability and local-currency pricing are accurate at run time.

#### 🌍 Which storefronts are supported?

66 storefronts including US, UK, Germany, France, Spain, Italy, Japan, China, South Korea, Canada, Australia, Mexico, Brazil, India, plus many smaller markets. See the country dropdown for the full list.

#### 🗣️ Can I get localized titles?

Yes. The `language` parameter accepts 9 result languages (English US / UK, German, French, Spanish, Italian, Japanese, Simplified Chinese, Korean). Combine with a country storefront for fully localized results.

#### 🛑 Why no podcasts?

Podcasts have a separate iTunes catalog with extra fields (RSS feeds, episode IDs, network metadata). We ship a dedicated iTunes Podcast Search scraper for that to keep field coverage clean.

#### 📏 What is the result-count limit per query?

Apple's iTunes Search backend returns a maximum of 200 results per query. For deeper coverage, run multiple queries with narrower search terms.

#### 🔁 How often is the dataset refreshed?

Every run hits Apple's catalog live, so results always reflect the current store state at run time (prices, ratings, availability).

#### ⏰ Can I schedule regular runs?

Yes. Use Apify Schedules to track keyword rankings daily, audit pricing weekly, or monitor featured-app slots hourly.

#### ⚖️ Is this data legal to use?

iTunes Search results are publicly accessible. Review Apple's terms of service for your specific use case, but raw catalog metadata is widely used in app-analytics products.

#### 💼 Can I use this data commercially?

Yes, subject to Apple's terms of service. App-analytics SaaS products and music-rights orgs commonly rely on this same upstream data feed.

#### 💳 Do I need a paid Apify plan to use this Actor?

No. The free Apify plan is enough for testing and small runs (10 records per run). A paid plan lifts the limit.

#### 🆘 What if I need help?

Our support team is here to help. Contact us through the Apify platform or use the Tally form linked below.

***

### 🔌 Integrate with any app

iTunes & Apple Store Search Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications in your channels
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe Apple catalog data into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits and releases
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes. Push fresh App Store rank data into Slack, or fan music-catalog records out to your recommendation engine.

***

### 🔗 Recommended Actors

- [**🎙️ iTunes Podcast Search Scraper**](https://apify.com/parseforge/itunes-podcast-search-scraper) - Podcast metadata and episode lists
- [**🛍️ Google Play Store Scraper**](https://apify.com/parseforge/google-play-store-scraper) - Android app reviews and metadata
- [**🎵 Spotify Tracks Scraper**](https://apify.com/parseforge/spotify-tracks-scraper) - Spotify music catalog data
- [**🎬 IMDb Scraper**](https://apify.com/parseforge/imdb-scraper) - Movie and TV-show metadata
- [**📚 Goodreads Scraper**](https://apify.com/parseforge/goodreads-scraper) - Book reviews and ratings

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more catalog-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Apple Inc. All trademarks mentioned, including iTunes, Apple Music, App Store, Apple Books, and Apple TV+, are the property of Apple Inc. Only publicly available iTunes catalog data is collected.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `searchQuery` (type: `string`):

Free-text search term. Example: 'taylor swift', 'inception', 'duolingo'.

## `entity` (type: `string`):

Which Apple catalog to search. NOTE: podcast is intentionally NOT available here — use the iTunes Podcast Search scraper for podcasts.

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

ISO 3166-1 alpha-2 country code for the Apple storefront.

## `language` (type: `string`):

Language for human-readable fields (titles, descriptions). Apple supports a limited set.

## Actor input object example

```json
{
  "maxItems": 10,
  "searchQuery": "the beatles",
  "entity": "musicTrack",
  "country": "us",
  "language": "en_us"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "maxItems": 10,
    "searchQuery": "the beatles",
    "entity": "musicTrack",
    "country": "us",
    "language": "en_us"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/itunes-apple-search-scraper").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 = {
    "maxItems": 10,
    "searchQuery": "the beatles",
    "entity": "musicTrack",
    "country": "us",
    "language": "en_us",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/itunes-apple-search-scraper").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 '{
  "maxItems": 10,
  "searchQuery": "the beatles",
  "entity": "musicTrack",
  "country": "us",
  "language": "en_us"
}' |
apify call parseforge/itunes-apple-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/itunes-apple-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "iTunes & Apple Store Search Scraper",
        "description": "Search the iTunes and App Store catalog for apps, music, podcasts, movies, TV shows, audiobooks, and ebooks. Capture title, artist, price, genre, ratings, release date, artwork, preview URL, and store ID. Export to JSON, CSV, or Excel for market research, ASO, and content analytics.",
        "version": "1.0",
        "x-build-id": "46rzU4eSElWvofOsj"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~itunes-apple-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-itunes-apple-search-scraper",
                "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/parseforge~itunes-apple-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-itunes-apple-search-scraper",
                "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/parseforge~itunes-apple-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-itunes-apple-search-scraper",
                "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": [
                    "searchQuery"
                ],
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Free-text search term. Example: 'taylor swift', 'inception', 'duolingo'."
                    },
                    "entity": {
                        "title": "Entity Type",
                        "enum": [
                            "movie",
                            "musicTrack",
                            "musicArtist",
                            "musicAlbum",
                            "ebook",
                            "software",
                            "iPadSoftware",
                            "macSoftware",
                            "audiobook"
                        ],
                        "type": "string",
                        "description": "Which Apple catalog to search. NOTE: podcast is intentionally NOT available here — use the iTunes Podcast Search scraper for podcasts."
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "us",
                            "gb",
                            "de",
                            "fr",
                            "es",
                            "it",
                            "jp",
                            "cn",
                            "kr",
                            "ca",
                            "au",
                            "mx",
                            "br",
                            "in",
                            "ru",
                            "nl",
                            "se",
                            "no",
                            "dk",
                            "fi",
                            "pl",
                            "tr",
                            "ar",
                            "cl",
                            "co",
                            "pe",
                            "za",
                            "sg",
                            "hk",
                            "tw",
                            "th",
                            "id",
                            "my",
                            "ph",
                            "vn",
                            "pt",
                            "ie",
                            "be",
                            "at",
                            "ch",
                            "cz",
                            "gr",
                            "hu",
                            "ro",
                            "sk",
                            "si",
                            "hr",
                            "ee",
                            "lv",
                            "lt",
                            "bg",
                            "ua",
                            "il",
                            "ae",
                            "sa",
                            "eg",
                            "ng",
                            "ke",
                            "ma",
                            "tn",
                            "nz",
                            "is",
                            "lu",
                            "cy",
                            "mt"
                        ],
                        "type": "string",
                        "description": "ISO 3166-1 alpha-2 country code for the Apple storefront."
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "en_us",
                            "en_gb",
                            "de_de",
                            "fr_fr",
                            "es_es",
                            "it_it",
                            "ja_jp",
                            "zh_cn",
                            "ko_kr"
                        ],
                        "type": "string",
                        "description": "Language for human-readable fields (titles, descriptions). Apple supports a limited set."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
