# iTunes & App Store Scraper — Apps, Music, Podcasts, Books (`hipersoft/itunes-search-scraper`) Actor

Search Apple's iTunes and App Store catalog in bulk: apps, songs, albums, podcasts, books, audiobooks and movies. One row per result with name, artist/seller, price, currency, genre, release date, store URL, artwork and ratings. Fast, reliable and account-free.

- **URL**: https://apify.com/hipersoft/itunes-search-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Categories:** Other, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.0005 / item scraped

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## iTunes & App Store Scraper — Apps, Music, Podcasts, Books & Movies

Search Apple's **iTunes and App Store catalog** in bulk and get clean, structured metadata for **apps, songs, albums, podcasts, books, audiobooks and movies**. Pass a list of search terms (or specific IDs), pick an entity type and a country storefront, and this actor returns one tidy row per result: name, artist or seller, price, currency, genre, release date, store URL, artwork and ratings. Fast reliable HTTP, account-free. Export to JSON, CSV, Excel or XML.

### What does iTunes Search Scraper do?

Apple exposes a huge public catalog spanning the App Store, Apple Music, Apple Podcasts, Apple Books and the iTunes Store. This scraper turns that catalog into a dataset. Give it the search terms you care about — app names, artists, show titles, book titles — choose what kind of item to look for (`software`, `musicTrack`, `album`, `podcast`, `ebook`, `audiobook` or `movie`) and a storefront country, and it collects the matching results, normalizes each into a flat record, and hands you data ready for research, catalog building, price monitoring or dashboards. You can also look up specific items directly by their iTunes ID.

### What data can you scrape?

| Data point | Description |
| --- | --- |
| `term` | The search term this result was found for. |
| `entity` | The entity type searched (software, musicTrack, podcast, …). |
| `country` | The storefront country code the result came from. |
| `kind` | Apple's item kind (e.g. `software`, `song`, `podcast`, `ebook`, `feature-movie`). |
| `trackId` / `collectionId` / `artistId` | Apple's numeric identifiers for the item, its collection and its artist. |
| `bundleId` | App bundle identifier (apps only). |
| `trackName` | Item name (app / song / episode / book / movie title). |
| `collectionName` | Album or collection name when applicable. |
| `artistName` | Artist, author or app seller name. |
| `sellerName` | App seller / publisher name (apps). |
| `price` | Numeric price in the storefront currency. |
| `formattedPrice` | Human-readable price (e.g. `Free`, `$9.99`). |
| `currency` | ISO currency code of the price. |
| `primaryGenreName` | Primary genre / category. |
| `genres` | Full list of genres when Apple provides one. |
| `releaseDate` | ISO 8601 release date. |
| `trackViewUrl` | Public Apple store URL for the item. |
| `artworkUrl` | Highest-resolution artwork URL available. |
| `averageUserRating` | Average user rating when available. |
| `userRatingCount` | Number of user ratings. |
| `description` | Item description (HTML stripped to clean text). |

### Use cases

- **App Store research** — pull app metadata, categories, prices and ratings for a keyword or competitor set.
- **Music & podcast catalogs** — build a dataset of tracks, albums or shows for an artist or topic.
- **Price & availability monitoring** — track prices and formatted prices across country storefronts.
- **Book & audiobook discovery** — collect titles, authors, genres and descriptions in bulk.
- **Enrichment** — resolve a list of iTunes IDs into full catalog records for your database.

### How to use it

1. Add **iTunes & App Store Scraper** to your Apify account and open its input.
2. Enter one or more **search terms** (e.g. `notion`, `taylor swift`, `the daily`), one per line.
3. Choose an **entity type** — apps, songs, albums, podcasts, books, audiobooks or movies.
4. Set a **country storefront** (e.g. `us`, `gb`, `de`, `sg`) and **results per term**.
5. Optionally add specific **IDs** to look up directly.
6. Click **Run**, then export the results as JSON, CSV, Excel or XML — or fetch them through the Apify API.

### Input

```json
{
  "terms": ["notion", "slack"],
  "entity": "software",
  "country": "us",
  "limit": 50,
  "ids": []
}
```

| Field | Description |
| --- | --- |
| `terms` | Search strings to look up, one per line. Each term is searched separately. |
| `entity` | Item type: `software`, `musicTrack`, `album`, `podcast`, `ebook`, `audiobook` or `movie`. |
| `country` | Two-letter storefront country code (e.g. `us`, `gb`, `de`, `sg`, `jp`). |
| `limit` | Maximum results per term (Apple caps this at 200). |
| `ids` | Optional list of iTunes / track / collection IDs to look up directly. |

### What you get

Each record is a flat JSON object, ready to export to CSV, Excel, JSON or XML:

```json
{
  "term": "notion",
  "entity": "software",
  "country": "us",
  "kind": "software",
  "trackId": 1232780281,
  "bundleId": "notion.id",
  "trackName": "Notion: Notes, Tasks, AI",
  "artistName": "Notion Labs, Incorporated",
  "sellerName": "Notion Labs, Incorporated",
  "price": 0,
  "formattedPrice": "Free",
  "currency": "USD",
  "primaryGenreName": "Productivity",
  "releaseDate": "2017-09-14T19:07:31Z",
  "trackViewUrl": "https://apps.apple.com/us/app/notion/id1232780281",
  "artworkUrl": "https://is1-ssl.mzstatic.com/image/thumb/.../512x512bb.jpg",
  "averageUserRating": 4.77,
  "userRatingCount": 89911,
  "description": "Notion is an AI-powered all-in-one workspace…"
}
```

### FAQ

**Do I need an account or key?**
No. Set your terms and click Run.

**Which item types are supported?**
Apps (`software`), songs (`musicTrack`), albums (`album`), podcasts (`podcast`), books (`ebook`), audiobooks (`audiobook`) and movies (`movie`).

**Why did a search return no results?**
Some entity/country combinations have no matches in that storefront (movies in particular vary a lot by country). Try a different country code or entity, or check the term.

**Can I look up an item by its Apple ID?**
Yes. Put the numeric iTunes / track / collection ID into the `ids` field and it is resolved to a full record. This runs alongside any search terms.

**Does the storefront country matter?**
Yes. Prices, availability and localized names all depend on the `country` you choose.

**What export formats are available?**
JSON, CSV, Excel and XML, plus programmatic access through the Apify API.

**Can I use this with n8n?**
Yes. Use the [Apify n8n integration](https://apify.com/integrations/n8n) (or the official Apify node) to run this actor from an n8n workflow and pipe the catalog dataset straight into your automation — a database, a spreadsheet, an alert, or an LLM node. Every run's dataset is available over the [Apify API](https://docs.apify.com/api/v2) as JSON, so it drops into any workflow tool.

**Can I connect this to my other tools?**
The iTunes & App Store Scraper connects with almost any cloud service or web app through [integrations on the Apify platform](https://apify.com/integrations): [Make](https://apify.com/integrations/make), [Zapier](https://apify.com/integrations/zapier), [n8n](https://apify.com/integrations/n8n), [Slack](https://docs.apify.com/platform/integrations/slack), [Google Drive](https://docs.apify.com/platform/integrations/drive) and [many more](https://apify.com/integrations), plus the [Apify API](https://docs.apify.com/api/v2), JavaScript/Python clients and MCP. Or use [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger an action whenever a run finishes.

**Is this official Apple data?**
The data reflects Apple's public iTunes catalog, but this actor is an independent tool and is not affiliated with or endorsed by Apple.

### Notes

Original clean-room implementation. Returns only public catalog metadata; you are responsible for compliant use. Not affiliated with Apple; all trademarks belong to their respective owners.

# Actor input Schema

## `terms` (type: `array`):

Search strings to look up in Apple's iTunes / App Store catalog, one per line (e.g. "notion", "taylor swift", "the daily"). Each term is searched separately. Leave empty if you only want to look up specific IDs.

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

What kind of catalog item to search for. software = iOS apps, musicTrack = songs, album = music albums, podcast = podcasts, ebook = books, audiobook = audiobooks, movie = films.

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

Two-letter ISO country code of the storefront to search (e.g. us, gb, de, sg, jp). Prices, availability and localized names depend on this.

## `limit` (type: `integer`):

Maximum number of results to return for each search term (Apple caps this at 200 per request).

## `ids` (type: `array`):

Look up specific items directly by their iTunes / track / collection ID (e.g. "1232780281"), one per line. Runs in addition to any search terms. Leave empty to search by term only.

## Actor input object example

```json
{
  "terms": [
    "notion",
    "slack"
  ],
  "entity": "software",
  "country": "us",
  "limit": 50,
  "ids": []
}
```

# Actor output Schema

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

The results as dataset items.

# 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 = {
    "terms": [
        "notion",
        "slack"
    ],
    "ids": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/itunes-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 = {
    "terms": [
        "notion",
        "slack",
    ],
    "ids": [],
}

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/itunes-search-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "terms": [
    "notion",
    "slack"
  ],
  "ids": []
}' |
apify call hipersoft/itunes-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/itunes-search-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/4wW6QbiGhp1Kq8jgD/builds/DFy5zgDgsuTc1093F/openapi.json
