Apple Podcasts reviews by storefront

Skip empty iTunes customer-review RSS pages by storefront

Job: pull public Apple Podcasts / iTunes customer reviews for shows you already have, per storefront, without turning empty RSS pages into billed rows.

The Customer Reviews feed is itunes.apple.com/{country}/rss/customerreviews/id=…. A US-heavy show often has an empty GB or JP feed.

Open Input → Start. Prefill × 1 page, report OFF ≈ ≤$0.15; cap $0.50. From $3.00 / 1,000 rows. Empty output does not POST billed rows. No Apple API key.

Open Reviews Monitor Input → one Apple Podcasts URL/ID, countries ["us"], maxPagesPerPair 1, generateReport false → Start (prefill × 1 page ≈ ≤$0.15). Empty storefronts = no billed rows.

Open Input with known collection IDs - one page, report off

The paying proof is public review text for shows you already have IDs for, per storefront - not a keyword search and not a chart dump.

Before Start:

  1. Paste collectionId values you already hold (from search CSV or your own list). Do not invent a searchTerm path on this Actor.
  2. Keep the first run at 1 page on the storefronts you care about.
  3. Leave the summary report OFF until the review rows look right.

Empty GB/JP (or other) customer-review RSS pages must not become billed dataset rows. If a storefront is empty, you should see empty output - not fake reviews.

Prefill × 1 page, report OFF ≈ ≤$0.15; cap $0.50. From $3.00 / 1,000 rows. Empty output does not POST billed rows. No Apple API key.

Try for free → Input (known IDs, 1 page, report off) → Start

Start path: podcastIds, one storefront, skip empties

  1. Open taroyamada/apple-podcast-reviews-monitor Input. Sign in (an account is required to run).
  2. Set podcastIds to one Apple Podcasts URL or numeric collection ID. Keep countries ["us"], maxPagesPerPair 1, generateReport false. Leave delivery on dataset.
  3. Click Start. When the run succeeds, export CSV from the default dataset.
  4. Add another storefront only after page 1 for the first country has reviews. Do not jump to 10 pages to “fill” empty RSS.

You do not need an Apple API key. Empty canonical output does not issue a dataset POST, so empty pages are not billed as review rows.

Open Reviews Monitor Input → one Apple Podcasts URL/ID, countries ["us"], maxPagesPerPair 1, generateReport false → Start (prefill × 1 page ≈ ≤$0.15). Empty storefronts = no billed rows.

Empty storefront pages do not create billed dataset rows

A delivered podcast_review row is what gets billed. An empty Customer Reviews page for that show and storefront does not. A US-heavy show often still has an empty GB or JP feed; that pair is not a dataset item.

Outcome Dataset Billed
Delivered podcast_review rows Yes $0.003 per raw review
Empty RSS / empty storefront No dataset POST $0 for that pair
generateReport true (later) One report row $1.50 (raise $0.50 cap first)

Cheapest first run. Paste this JSON if the form is empty. Do not raise maxPagesPerPair or add countries until those rows are useful. Leave generateReport false until you want the later report row.

{
  "podcastIds": ["https://podcasts.apple.com/us/podcast/id1535809341"],
  "countries": ["us"],
  "maxPagesPerPair": 1,
  "generateReport": false,
  "maxChargeUsd": 0.5,
  "delivery": "dataset"
}

Prefill × 1 page, report OFF ≈ ≤$0.15; cap $0.50. From $3.00 / 1,000 rows. A full page is about 50 reviews (50 × $0.003 = $0.15), at or under the cap. Empty output does not POST billed rows.

First review check Value
podcastIds Required. URL …/idNNNN or numeric ID. Max 25 unique.
countries Prefill ["us"]. Max 10 unique. Each code is its own RSS feed.
maxPagesPerPair 1 (default). Max 10. Later empty pages write zero rows.
Empty RSS / empty storefront No dataset POST; no billed empty page
If 1 page with 50 reviews 50 × $0.003 = $0.15 (at or under the $0.50 cap)

Add another storefront only after page 1 for the first country has reviews. Do not jump to 10 pages to “fill” empty RSS. Need collection IDs first? Use Apple Podcasts search (live default limit 3, not 50) — not this Actor’s searchTerm (rejected). Search CSV: export search results to CSV.

sourceUrl on each delivered row is the official RSS URL for that podcastId + country + page. A failed show/country pair can show up in meta.warnings; successful pairs still deliver. Empty storefronts omit rows.

Do not use review text to target individual reviewers.

Open Reviews Monitor Input → one Apple Podcasts URL/ID, countries ["us"], maxPagesPerPair 1, generateReport false → Start (prefill × 1 page ≈ ≤$0.15). Empty storefronts = no billed rows.

What this page is not

Why are iTunes customer-review RSS pages empty for some storefronts?

The public Customer Reviews RSS JSON is per storefront: itunes.apple.com/{country}/rss/customerreviews/id=…. A show that has US reviews often has an empty GB or JP feed. Page 2–10 of a storefront that only filled page 1 is also empty (about 50 reviews per page; iTunes cap). Empty feeds are not an API-key failure.

Does an empty storefront page create a billed dataset row?

No. Canonical delivery writes non-empty podcast_review rows (or one report row). Empty output does not issue a dataset POST. You are billed per delivered raw review ($0.003) or per report ($1.50), not per RSS request. Keep maxPagesPerPair at 1 until page 1 for that show/country actually has reviews.

What input do I pass for a cheap first review run?

podcastIds is required: an Apple Podcasts URL (…/idNNNN) or a numeric collection ID. First run: one ID, countries ["us"], maxPagesPerPair 1, generateReport false. Open Input → Start. Prefill × 1 page, report OFF ≈ ≤$0.15; cap $0.50. From $3.00 / 1,000 rows. Do not raise pages or add storefronts until those rows look right.

How do I skip empty pages when I add more storefronts?

Add one ISO country at a time (max 10 unique). If a pair has no reviews, you get zero rows for that pair and a possible meta.warnings entry if the request failed — successful pairs remain. Do not set maxPagesPerPair to 10 “just in case”: later empty pages are skipped for billing because they produce no rows, but they still cost fetch time. Leave generateReport false until you want one $1.50 report instead of raw rows.

Do I need an Apple API key or login?

No. The Actor reads public Customer Reviews RSS JSON only. No Apple ID, cookie, or private dashboard. You do need an account on the run platform to click Start. It is not affiliated with or endorsed by Apple. Review text is public source material; do not use it to target individual reviewers.

Does this export chart ranks or a keyword search?

No. additionalProperties is false: searchTerm, chartRequests, and lookupIds are rejected. Get collection IDs first from Apple Podcasts search Input (live default limit 3, not 50). Chart rank movement belongs on the chart-rank movement guide. This page is reviews RSS by storefront.

What columns are on a review row after CSV export?

rowType podcast_review. Fields include podcastId, country, page, reviewerName, rating, title, content, version, voteCount, updated, reviewId, sourceUrl (the RSS URL used for that row), and fetchedAt. country is the storefront you requested. Empty storefronts simply omit rows.

Open Input → Start. Prefill × 1 page, report OFF ≈ ≤$0.15; cap $0.50. From $3.00 / 1,000 rows. Empty output does not POST billed rows. No Apple API key.

Open Reviews Monitor Input → one Apple Podcasts URL/ID, countries ["us"], maxPagesPerPair 1, generateReport false → Start (prefill × 1 page ≈ ≤$0.15). Empty storefronts = no billed rows.

Related pages

Public Customer Reviews RSS only. No Apple API key. Account required to run. Empty pages are not billed as review rows. Do not use review text to target individual reviewers. Not affiliated with or endorsed by Apple.