# Apple Podcasts Reviews Scraper (`straightforward_hydra/apple-podcasts-reviews-scraper`) Actor

Scrape ratings and reviews for any Apple Podcasts show, by podcast ID or name, across storefronts. Official Apple RSS, no key needed.

- **URL**: https://apify.com/straightforward\_hydra/apple-podcasts-reviews-scraper.md
- **Developed by:** [Dev D](https://apify.com/straightforward_hydra) (community)
- **Categories:** Social media, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 reviews

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 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

## Apple Podcasts Reviews Scraper 🎙️⭐

**Scrape ratings and reviews for any Apple Podcasts show — by podcast ID or name, across storefronts. Official Apple RSS, no key required.**

This Actor pulls listener reviews for one or more podcasts straight from Apple's public reviews feed, with filters for storefront (country), sort order and star rating, and returns clean structured records — star rating, title, full text, author and date. Perfect for podcasters, networks and market researchers tracking audience sentiment.

> Uses Apple's official public reviews RSS — no key, no login, no browser.

***

### What you can do with it

- 🎙️ **Track your show's reviews** — monitor sentiment, catch complaints, measure episodes.
- 🕵️ **Competitor analysis** — see what listeners love and hate about other podcasts.
- 🌍 **Multi-country** — pull reviews from several Apple storefronts at once.
- ⭐ **Filter by rating** — isolate 1-star complaints or 5-star praise.
- 🔔 **Review alerts** — run on a schedule and push new negative reviews to Slack.

### Features

- ✅ **No API key** — official Apple endpoint, works out of the box.
- ✅ **By podcast ID or name** — pass IDs, or let it resolve names.
- ✅ **Multi-storefront** — reviews per country (us, gb, ca, au, de, …).
- ✅ **Filters** — sort by recent / helpful, min/max star rating.
- ✅ **Resilient** — automatically works around Apple's flaky review feed.

***

### Finding a podcast's ID

The **podcast ID** is the number in the Apple Podcasts URL:
`podcasts.apple.com/us/podcast/the-daily/id`**`1200361736`** → ID is `1200361736`.
Or just pass the podcast **name** and the Actor resolves it.

### Input

| Field | Description |
|---|---|
| **Podcast IDs** | Apple collection IDs, e.g. `1200361736`. |
| **Podcast names** | Names to resolve automatically, e.g. `The Daily`. |
| **Storefronts** | Country codes, e.g. `us`, `gb`, `ca`. |
| **Sort by** | Most recent / most helpful. |
| **Min / Max rating** | Keep reviews in a star range (1–5). |
| **Max reviews per podcast** | Cap per podcast per storefront (Apple exposes ~500). |
| **Max results** | Overall cap. |

#### Example — recent 1–2 star reviews across two stores

```json
{
  "podcastNames": ["The Joe Rogan Experience"],
  "countries": ["us", "gb"],
  "sortBy": "mostRecent",
  "maxRating": 2
}
```

### Output

Each row is one review:

```json
{
  "podcast_id": "1200361736",
  "podcast_name": "The Daily",
  "country": "us",
  "review_id": "10863…",
  "rating": 5,
  "title": "Essential listening",
  "content": "Best daily news podcast out there…",
  "author": "listener_jane",
  "author_url": "https://itunes.apple.com/us/reviews/id…",
  "vote_sum": 3,
  "vote_count": 4,
  "updated": "2026-07-15T09:12:00-07:00"
}
```

### Run it on a schedule

Schedule the Actor to pull new reviews daily, and connect a **Slack / email / webhook / Google Sheets** integration to route negative reviews to your team.

### Notes & limitations

- Uses Apple's official public reviews RSS — no key needed.
- Apple exposes up to ~500 reviews per podcast **per storefront** — pull multiple countries for more coverage.
- Ratings are 1–5 stars. Reviews are public listener data.
- Apple's review feed is occasionally flaky; this Actor retries across equivalent endpoints to get complete results.

***

#### Keywords

Apple Podcasts reviews, podcast reviews, podcast review scraper, podcast ratings, Apple Podcasts scraper, podcast data, podcast analytics, podcast sentiment, listener reviews, podcast market research, podcast monitoring, review scraper, Apple Podcasts API, podcast feedback, podcast intelligence, iTunes podcast reviews, podcast star ratings, podcast audience, voice of listener, podcast reputation.

# Actor input Schema

## `podcastIds` (type: `array`):

Apple Podcasts collection IDs, e.g. 1200361736 (The Daily). Find it in the URL: podcasts.apple.com/us/podcast/.../id<ID>.

## `podcastNames` (type: `array`):

Podcast names to look up instead of IDs, e.g. "The Joe Rogan Experience". The top match is used. Merged with the IDs above.

## `countries` (type: `array`):

Two-letter storefront codes to pull reviews from, e.g. us, gb, ca, au, de. Reviews are per-storefront.

## `sortBy` (type: `string`):

Order reviews by most recent or most helpful.

## `minRating` (type: `integer`):

Only keep reviews with at least this star rating (1-5). Leave empty for all.

## `maxRating` (type: `integer`):

Only keep reviews with at most this star rating (1-5). Leave empty for all.

## `maxReviewsPerPodcast` (type: `integer`):

Cap reviews per podcast per storefront. Apple exposes up to ~500. Leave empty for all available.

## `maxResults` (type: `integer`):

Stop after this many reviews in total. Leave empty for no limit.

## `proxyConfiguration` (type: `object`):

Apple returns no review data from datacenter IPs, so a residential proxy is required. Defaults to Apify Residential proxy.

## Actor input object example

```json
{
  "podcastIds": [
    "1200361736"
  ],
  "countries": [
    "us"
  ],
  "sortBy": "mostRecent",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "podcastIds": [
        "1200361736"
    ],
    "countries": [
        "us"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("straightforward_hydra/apple-podcasts-reviews-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 = {
    "podcastIds": ["1200361736"],
    "countries": ["us"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("straightforward_hydra/apple-podcasts-reviews-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 '{
  "podcastIds": [
    "1200361736"
  ],
  "countries": [
    "us"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call straightforward_hydra/apple-podcasts-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/HUIlf3p0PThZL4LQp/builds/emIBMbJpMLH1S1cqP/openapi.json
