# Apple Podcast Reviews Scraper (`shahidirfan/apple-podcast-reviews-scraper`) Actor

Extract Apple Podcasts reviews, ratings, reviewer names, dates, titles, and feedback from podcast listings at scale. Ideal for podcast review analysis, audience sentiment tracking, competitor research, reputation monitoring, and podcast market insights.

- **URL**: https://apify.com/shahidirfan/apple-podcast-reviews-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** Automation, Developer tools, Other
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

### What does Apple Podcast Reviews Scraper do?

Apple Podcast Reviews Scraper collects public written customer reviews from Apple Podcasts and returns them as a clean Apify dataset. Provide one Apple Podcasts URL or a numeric podcast ID, choose the Apple storefront country and review order, then download structured review data for research, sentiment analysis, audience feedback, and podcast monitoring.

### Why use Apple Podcast Reviews Scraper?

- **Review research** - Gather titles, written feedback, star ratings, authors, dates, and helpfulness votes in one dataset.

- **Podcast monitoring** - Schedule repeat runs to track new listener feedback over time.

- **Country comparison** - Compare reviews from different Apple storefronts such as the US, UK, Canada, and Australia.

- **Flexible input** - Use a full Apple Podcasts URL or only the podcast ID.

- **Automation-ready output** - Export JSON, CSV, Excel, XML, or connect the dataset to downstream workflows.

- **Result control** - Limit the number of reviews and pages so test runs stay quick and larger collections remain predictable.

- **Extended recent history** - `mostRecent` runs can continue through Apple’s extended review pages instead of stopping at the public RSS limit.

### What data can you extract from Apple Podcasts?

| Field | Description |
|---|---|
| `record_type` | Written review record. |
| `source` | Apple source used for the record. |
| `podcast_id` | Numeric Apple Podcasts ID. |
| `podcast_url` | Podcast URL used for the run or generated from the ID. |
| `country` | Two-letter Apple storefront code. |
| `review_id` | Unique Apple review identifier. |
| `author_name` | Review author name when available. |
| `author_url` | Apple review profile URL when available. |
| `title` | Review title. |
| `content` | Full customer review text. |
| `rating` | Star rating from 1 to 5. |
| `version` | Podcast version associated with the review when supplied. |
| `updated` | Review timestamp in ISO 8601 format. |
| `vote_sum` | Net helpful vote count. |
| `vote_count` | Number of helpfulness votes. |
| `review_url` | Apple Podcasts review page URL. |

Empty and null values are omitted from each dataset item, so the output stays compact and useful for analysis.

### How to use the Actor

1. Open the Actor in Apify Console.
2. Enter an Apple Podcasts URL or numeric podcast ID.
3. Select a country and review sorting option.
4. Set the result and page limits.
5. Run the Actor and download the dataset or connect it to an integration.

### Input Parameters

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `podcast` | String | Yes | The Daily example URL | Apple Podcasts URL or numeric podcast ID. |
| `country` | String | No | `us` | Two-letter Apple storefront code. |
| `sorting` | String | No | `mostRecent` | Use `mostRecent` or `mostHelpful`. |
| `results_wanted` | Integer | No | `20` | Number of reviews to request. |

| `max_pages` | Integer | No | All available | Optional maximum pages. Leave blank to continue until reviews end; `mostRecent` can continue beyond the RSS 500-review boundary. |
| `proxyConfiguration` | Object | No | Disabled | Optional Apify Proxy configuration. |

### Usage Examples

#### Collect recent reviews from a podcast URL

This is the simplest run and collects the first 20 recent reviews from the US storefront.

```json
{
  "podcast": "https://podcasts.apple.com/us/podcast/the-daily/id1200361736",
  "country": "us",
  "sorting": "mostRecent",
  "results_wanted": 20,
  "max_pages": 10
}
```

#### Use a numeric podcast ID

The podcast name and URL slug are optional when the numeric Apple Podcasts ID is known.

```json
{
  "podcast": "1200361736",
  "country": "gb",
  "sorting": "mostHelpful",
  "results_wanted": 50,
  "max_pages": 2
}
```

#### Compare a different storefront

Run the same podcast against another country to collect the reviews available in that storefront.

```json
{
  "podcast": "https://podcasts.apple.com/ca/podcast/the-daily/id1200361736",
  "country": "ca",
  "sorting": "mostRecent",
  "results_wanted": 100,
  "max_pages": 2
}
```

### Sample Output

Written review example:

```json
{
  "record_type": "review",
  "source": "apple_amp_api",
  "podcast_id": "1200361736",
  "podcast_url": "https://podcasts.apple.com/us/podcast/the-daily/id1200361736",
  "country": "us",
  "review_id": "14452700422",
  "author_name": "robdew",
  "title": "This is a great podcast, hosts need to stop saying hmm",
  "content": "Great journalism and great content, but the repeated verbal filler makes some episodes difficult to finish.",
  "rating": 1,
  "updated": "2026-08-20T23:47:26.000Z"
}
```

### Tips for Best Results

- Use the numeric ID when a podcast URL has been copied from a redirect or shortened link.
- Start with `results_wanted: 20` to confirm the country and sorting choice before collecting more pages.
- Use `mostRecent` for ongoing monitoring and for collecting beyond the public 500-review RSS boundary.
- Use `mostHelpful` when that ordering is more important; Apple currently exposes that ordering through a feed with a 500-review-per-country limit.
- Set the country to match the storefront you want to study. Review availability can differ by country.
- Some reviews do not include a version or author profile. Those empty values are left out of the corresponding item.
- Schedule the Actor for recurring monitoring and compare datasets by `review_id` to identify new reviews.

### Integrations

- **Apify API** - Retrieve datasets programmatically after a run.
- **Google Sheets** - Send reviews to a spreadsheet for tagging and analysis.
- **Webhooks** - Trigger processing when a run finishes.
- **Make or Zapier** - Route review data into CRM, reporting, or notification workflows.
- **JSON, CSV, and Excel exports** - Use the format that matches your analysis tool.

### Frequently Asked Questions

#### Can I use an Apple Podcasts URL instead of an ID?

Yes. The `podcast` field accepts a working Apple Podcasts URL or a numeric podcast ID.

#### Can I select a country?

Yes. Set `country` to the two-letter Apple storefront code you want to query. The default is `us`.

#### How many reviews can one run collect?

Set `results_wanted` to the number of written reviews you want. Recent-review pages return up to 20 records per page through Apple’s extended feed. Set `max_pages` for a page limit, or leave it blank to continue until Apple returns no more written reviews.

#### Why does mostHelpful stop at 500?

Apple’s public most-helpful feed currently exposes up to 500 written reviews per country. Choose `mostRecent` to use the extended review endpoint and continue past that boundary. Aggregate star-rating totals are not collected by this actor.

#### Why are some fields missing?

Apple does not publish every optional field for every review. Missing or empty values are omitted instead of being written as nulls.

#### Can I run this Actor on a schedule?

Yes. Apify schedules can run it hourly, daily, weekly, or on a custom interval for review monitoring.

#### Is it legal to collect Apple Podcasts reviews?

You are responsible for complying with Apple terms, applicable laws, and privacy requirements. Use public review data responsibly and only for legitimate purposes.

### Related Actors

- [Apple Podcasts Scraper](https://apify.com/shahidirfan/apple-podcasts-scraper) - Collect broader podcast information, episodes, and show details.
- [App Store Reviews Scraper](https://apify.com/shahidirfan/app-store-reviews-scraper) - Collect reviews from Apple App Store listings.
- [Target Reviews Scraper](https://apify.com/shahidirfan/target-reviews-scraper) - Collect product reviews for retail research.
- [AliExpress Reviews Scraper](https://apify.com/shahidirfan/aliexpress-reviews-scraper) - Collect ecommerce customer feedback and ratings.

### Support

For issues or feature requests, use the Issues tab on the Actor page or contact the developer through Apify.

### Legal Notice

This Actor is intended for legitimate collection of publicly available review data. Users are responsible for complying with Apple terms of service, applicable laws, privacy rules, and any restrictions on storing or redistributing collected content.

# Actor input Schema

## `podcast` (type: `string`):

An Apple Podcasts URL or numeric podcast ID. Example: https://podcasts.apple.com/us/podcast/the-daily/id1200361736

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

Two-letter Apple storefront code used to retrieve reviews, such as us, gb, ca, or au.

## `sorting` (type: `string`):

Order reviews by newest first or by helpfulness.

## `results_wanted` (type: `integer`):

Maximum number of written reviews to save. Set this to the number you need.

## `max_pages` (type: `integer`):

Optional review-page limit. Leave blank to continue until Apple returns no more written reviews.

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

Optional Apify Proxy configuration for requests made on the Apify platform.

## Actor input object example

```json
{
  "podcast": "https://podcasts.apple.com/us/podcast/the-daily/id1200361736",
  "country": "us",
  "sorting": "mostRecent",
  "results_wanted": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "podcast": "https://podcasts.apple.com/us/podcast/the-daily/id1200361736",
    "country": "us",
    "sorting": "mostRecent",
    "results_wanted": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/apple-podcast-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 = {
    "podcast": "https://podcasts.apple.com/us/podcast/the-daily/id1200361736",
    "country": "us",
    "sorting": "mostRecent",
    "results_wanted": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("shahidirfan/apple-podcast-reviews-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 '{
  "podcast": "https://podcasts.apple.com/us/podcast/the-daily/id1200361736",
  "country": "us",
  "sorting": "mostRecent",
  "results_wanted": 20
}' |
apify call shahidirfan/apple-podcast-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,shahidirfan/apple-podcast-reviews-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/zFnUNqKAjqqunxqyv/builds/GIBzSCys4846Sj4qK/openapi.json
