Apple Podcasts Reviews Scraper
Collect public Apple Podcasts review rows with rating, storefront, and source links, then optionally emit one source-linked rating summary report. This Actor fetches the official Apple/iTunes Customer Reviews RSS JSON for the collection IDs and storefronts you pass. It is not a keyword search, episode catalog, or Top Podcasts rank tool — those jobs belong on Apple Podcasts Scraper and Apple Podcasts Chart Scraper.
Open Apple Podcasts Reviews Scraper on Apify
Reviews versus search and charts
Use this page when the job is reputation: public ratings and review text for known shows, a bounded snapshot, a summary report, or a scheduled delta of new or changed reviews. Use Apple Podcasts Scraper to find collection IDs by keyword or refresh a watchlist. Use Apple Podcasts Chart Scraper for storefront Top Podcasts ranks and movement.
| Reviews Scraper | Chart Scraper | Apple Podcasts Scraper | |
|---|---|---|---|
| Intent | Public review rows, optional rating report, delta monitor | Top Podcasts chart rows and optional rank movement | Search, chart snapshot, watchlist lookup, optional episodes |
| Primary input | podcastIds, countries, maxPagesPerPair |
countries, optional genreId, limit |
searchTerm, lookupIds, chartRequests |
| Default row | podcast_review |
chart_rank |
Search / lookup / chart snapshot rows |
| Optional report | One podcast_review_report when generateReport is true |
One movement report when a monitorKey sees new, changed, or dropped ranks |
None |
None of these Actors is affiliated with or endorsed by Apple. Review text is public source material for reputation and market research. Do not use the output to target individual reviewers. The Actor does not infer private reviewer identity.
Use cases
- Reputation monitoring and collection of public podcast reviews for networks and brands.
- Generating sponsor-evidence exports that link public review samples to source URLs.
- Building media-buyer shortlists using topic, country, cadence, and public-fit signals.
- Low-cost raw review checks for quick sentiment or activity snapshots.
- High-value review summary reports for handoff to research or commercial workflows.
- Scheduled delta monitoring to emit only new or changed reviews after an initial baseline run.
Get collection IDs first with search discovery or a watchlist refresh. Storefronts differ: see charts and search by country.
Low-cost raw review check
The default path keeps raw review behavior and a small page cap. mode defaults to snapshot. generateReport stays false so canonical rows are the raw review array.
{
"podcastIds": ["1535809341"],
"countries": ["us"],
"maxPagesPerPair": 1,
"generateReport": false,
"maxChargeUsd": 0.5,
"delivery": "dataset",
"dryRun": false
}
Published raw fields: podcastId, country, page, reviewerName, rating, title, content, version, voteCount, updated, and reviewId, plus actorName, rowType, sourceUrl, fetchedAt, and billingEventName. README sample (placeholder review data):
{
"actorName": "apple-podcast-reviews-monitor",
"rowType": "podcast_review",
"billingEventName": "apify-default-dataset-item",
"podcastId": "1535809341",
"country": "us",
"page": 1,
"reviewerName": "public-reviewer",
"rating": 1,
"title": "A critical review",
"content": "Public review text.",
"version": "1.0",
"voteCount": 0,
"updated": "2026-07-31T00:00:00Z",
"reviewId": "review-1",
"sourceUrl": "https://itunes.apple.com/us/rss/customerreviews/id=1535809341/sortby=mostrecent/json",
"fetchedAt": "2026-08-01T00:00:00.000Z"
}
sourceUrl is the official iTunes Customer Reviews RSS URL used for the row. Up to 25 unique podcast IDs, 10 unique country codes, and 10 pages per pair are accepted. Over-limit input fails instead of being silently truncated. A failed pair is reported in meta.warnings; successful pairs remain available.
Run a raw review check on Apify
High-value review report
Set generateReport to true when you need one aggregate podcast_review_report row. Raw reviews remain in the runtime reviews array and are not sent to the dataset. reportMode is summary.
{
"podcastIds": ["1535809341", "1641234567"],
"countries": ["us", "gb"],
"maxPagesPerPair": 1,
"generateReport": true,
"reportMode": "summary",
"maxChargeUsd": 2,
"dryRun": false
}
The single report row includes showCountrySummaries (review count, average rating, five-point rating distribution, and latest review date for every show/country pair), totalReviewCount, lowRatingSourceLinkedSamples (up to ten rating-1 or rating-2 samples with source URLs), sourceUrls, generatedAt, fetchedAt, and billingEventName podcast-review-report. README sample:
{
"actorName": "apple-podcast-reviews-monitor",
"rowType": "podcast_review_report",
"billingEventName": "podcast-review-report",
"reportMode": "summary",
"showCountrySummaries": [
{
"podcastId": "1535809341",
"country": "us",
"reviewCount": 2,
"averageRating": 3,
"ratingDistribution": { "1": 1, "2": 0, "3": 0, "4": 0, "5": 1 },
"latestReviewDate": "2026-07-31T00:00:00Z"
}
],
"totalReviewCount": 2,
"lowRatingThreshold": 2,
"lowRatingSourceLinkedSamples": [
{
"podcastId": "1535809341",
"country": "us",
"reviewId": "review-1",
"rating": 1,
"title": "A critical review",
"content": "Public review text.",
"updated": "2026-07-31T00:00:00Z",
"sourceUrl": "https://itunes.apple.com/us/rss/customerreviews/id=1535809341/sortby=mostrecent/json"
}
],
"sourceUrls": ["https://itunes.apple.com/us/rss/customerreviews/id=1535809341/sortby=mostrecent/json"],
"generatedAt": "2026-08-01T00:00:00.000Z",
"fetchedAt": "2026-08-01T00:00:00.000Z"
}
The published README treats this report as the handoff to source-linked sponsor evidence or a media-buyer shortlist. Those follow-on Actors are listed on the Store page; this landing stays on review monitoring.
Generate a review summary report on Apify
Scheduled delta monitor
Use a stable monitorKey on every scheduled run. The first baseline_only run stores the current feed with zero dataset rows and zero charge. Later runs emit only new or changed reviews; an unchanged poll remains zero rows and zero charge when emitUnchanged is false.
{
"mode": "monitor",
"monitorKey": "network-show-1535809341-us",
"initialRunMode": "baseline_only",
"emitUnchanged": false,
"podcastIds": ["1535809341"],
"countries": ["us"],
"maxPagesPerPair": 1,
"generateReport": true,
"maxChargeUsd": 2,
"dryRun": false
}
In mode=monitor, the runtime reviews array still holds the current fetched snapshot for diagnostics, while canonical rows contain only the new or changed delivery. State advances only after canonical pay-per-event delivery succeeds; partial source failures do not advance it. emit_backfill delivers the first snapshot instead of storing it with zero rows.
Configure a review monitor on Apify
How is Apple Podcasts Reviews Scraper different from the search and chart actors?
Reviews Scraper reads the public Apple/iTunes Customer Reviews RSS JSON for collection IDs you already have. It delivers podcast_review rows or one podcast_review_report, and can emit only new or changed reviews on a scheduled monitor. It does not search by keyword, attach episode catalogs, or snapshot Top Podcasts ranks. Apple Podcasts Scraper is search, episodes, and watchlists. Apple Podcasts Chart Scraper is storefront ranks and movement reports.
What does a raw review row contain?
Each delivered raw row has rowType podcast_review. Published fields are podcastId, country, page, reviewerName, rating, title, content, version, voteCount, updated, and reviewId, plus actorName apple-podcast-reviews-monitor, sourceUrl (the official iTunes Customer Reviews RSS URL), fetchedAt, and billingEventName apify-default-dataset-item. Review text is public source material for reputation and market research. The Actor does not infer private reviewer identity or claim Apple endorsement.
When does a review summary report emit, and what does it include?
Set generateReport to true. Canonical delivery then contains exactly one podcast_review_report row; raw reviews stay in the runtime reviews array and are not sent to the dataset. The report includes showCountrySummaries (review count, average rating, five-point rating distribution, latest review date per show/country pair), totalReviewCount, up to ten rating-1 or rating-2 lowRatingSourceLinkedSamples with source URLs, sourceUrls, generatedAt, fetchedAt, and billingEventName podcast-review-report. reportMode is summary.
How does scheduled delta monitoring work?
Set mode to monitor and pass a stable monitorKey on every scheduled run. The default initialRunMode baseline_only stores the first snapshot with zero dataset rows and zero charge. Later runs emit only new or changed reviews. Leave emitUnchanged false so an unchanged poll stays zero rows and zero charge. State advances only after canonical pay-per-event delivery succeeds; partial source failures do not advance it. emit_backfill delivers the first snapshot.
How many shows, countries, and pages can I request?
The Actor accepts at most 25 unique iTunes collection IDs, 10 unique ISO-3166-1 alpha-2 country codes (lowercase), and 10 review pages per show/country pair (50 reviews each; iTunes cap). Over-limit input fails instead of being silently truncated. Each source request has a timeout and bounded retry for network and server errors. A failed pair is reported in meta.warnings; successful pairs remain available. Storefronts differ: see charts and search by country.
How is Apple Podcasts Reviews Scraper priced?
Billing is pay-per-event. The published Store price is $0.003 per delivered apify-default-dataset-item (raw review row) and $1.50 per delivered podcast-review-report event. That is $3.00 per 1,000 raw review rows. maxChargeUsd defaults to 2 and fails closed before dataset write when the estimate would exceed the cap. For report runs, the Actor checks fetched raw rows plus the report price contract before write; maxChargeUsd is then applied to the rows actually delivered (the single report row in report mode). A baseline_only first monitor run and later unchanged polls with emitUnchanged false emit zero rows and zero charge.
From $0.003 per raw review row; $1.50 per review report
See Apple Podcasts Reviews Scraper pricing on Apify
How do delivery, webhooks, and dry runs work?
delivery defaults to dataset and sends non-empty canonical rows through Actor.pushData. webhook sends the complete runtime envelope to webhookUrl and still sends only the canonical rows to the default dataset. Empty output does not issue a dataset POST. A non-2xx dataset response or dataset network failure fails the run; partial success is not reported as success. dryRun performs no external write. After the payload shape is useful, see webhooks for delivery patterns used on the related Apple Podcasts actors.
The Actor uses public Apple/iTunes Customer Reviews RSS JSON only. No login, cookie, API key, CAPTCHA bypass, or private endpoint is used.
Open Apple Podcasts Reviews Scraper on Apify
Related pages
- Apple Podcasts Scraper — search, episodes, and watchlists
- Apple Podcasts Chart Scraper — Top Podcasts ranks and movement reports
- Refresh Apple Podcasts watchlists — collection IDs for
podcastIds - Apple Podcasts search discovery
- Apple Podcasts charts and search by country
- Deliver Apple Podcasts results with webhooks
- Shortlist podcasts for outreach
- Apple Podcasts Scraper FAQ
- Tools