Apple Podcasts Top Charts Scraper — iTunes Rank Tracker
Pricing
from $3.00 / 1,000 apify-default-dataset-items
Apple Podcasts Top Charts Scraper — iTunes Rank Tracker
Track Apple Podcasts top charts by country and genre, with a rank-movement report (new, moved, dropped shows) for saved monitors. Up to 20 countries and 200 ranks. Export CSV/JSON. No API key.
Pricing
from $3.00 / 1,000 apify-default-dataset-items
Rating
0.0
(0)
Developer
naoki anzai
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
3
Monthly active users
a day ago
Last modified
Categories
Share
Apple Podcasts Chart Scraper: iTunes Rank Tracker
What you get: Apple Podcasts / iTunes chart ranks by country (optional genre) as source-linked rows. Export CSV/JSON. No API key.
Sample output (3 real rows from a countries: ["us"], limit: 3 run on 2026-10-13):
| rank | showName | artistName | category | country |
|---|---|---|---|---|
| 1 | The Daily | The New York Times | Daily News | us |
| 2 | Crime Junkie | Audiochuck | True Crime | us |
| 3 | In The Dark | The New Yorker | True Crime | us |
Use it for:
- Rank tracking: record daily Apple Podcasts chart positions by country.
- Competitor watch: see when rival shows enter or leave the top chart.
- Sponsor pitching: back up outreach with a show's current public chart rank.
CTA: Open Input (link below) → leave defaults (us, limit 1, movement OFF) → Start. First paid proof ≈ $0.003. Cap maxChargeUsd 0.05. From $3/1k.
Open Input (leave defaults → Start)
{"countries":["us"],"limit":1,"generateMovementReport":false,"maxChargeUsd":0.05,"delivery":"dataset"}
Scheduled runs: turn on generateMovementReport
If you run this Actor on a schedule, set generateMovementReport: true with a stable monitorKey to get one movement summary report when ranks change. Leave it false (default) when you only need raw chart rows.
Sibling next steps: Apple Podcasts Scraper (discovery) · Reviews (listener feedback).
Podcast growth teams, agencies, networks, and research teams provide public Apple Podcasts storefront codes and an optional genre/depth filter. The actor returns source-linked chart_rank rows, or one change report when a saved monitor detects new, changed, or dropped positions. Raw chart delivery remains the default for existing schedules.
Run the next report
Use chart movement as a proven public signal, then choose the buyer-facing follow-on:
- Generate sponsor evidence when a rank change needs source-linked context.
- Build a media buyer shortlist from a focused chart result.
- Return to Apple Podcasts discovery when a broader show set is needed.
Store Quickstart

The default path is a low-cost raw chart snapshot. Use one country and a small limit first. For recurring rank movement, set a stable monitorKey and generateMovementReport to true; the first baseline_only run stores state without dataset rows or charges.
1. Raw chart snapshot (first run)
Cheapest first run: limit 1, movement report OFF — raw chart rows at $0.003 each (≈ $0.003 total; not the $2.50 movement report). Store Quickstart matches this; use the Deeper chart template (limit 10) after proof.
{"countries": ["us"],"limit": 1,"generateMovementReport": false,"delivery": "dataset","dryRun": false}```### 2. Free baseline for a recurring monitor```json{"countries": ["us", "gb"],"genreId": "1321","limit": 3,"monitorKey": "weekly-news-us-gb","generateMovementReport": true,"initialRunMode": "baseline_only","maxChargeUsd": 0.05,"dryRun": false}```### 3. High-value movement report```json{"countries": ["us"],"limit": 10,"monitorKey": "weekly-news-us-gb","generateMovementReport": true,"initialRunMode": "emit_backfill","delivery": "dataset","maxChargeUsd": 0.05,"dryRun": false}```Use `delivery: "webhook"` only when downstream routing is needed after the movement report has been validated. The movement report is the value path; the raw chart snapshot remains the low-cost starter path.See [`docs/value-path-sample.json`](docs/value-path-sample.json) for the raw snapshot and movement-report input pair.`countries` accepts at most 20 unique two-letter codes. Each country is fetched with a timeout and bounded retry. `limit` is capped at 200.## Use with Apify MCPExact actor: `taroyamada/apple-podcast-chart-tracker`Sample input JSON:```json{"countries": ["us"],"genreId": "","limit": 1,"generateMovementReport": false,"delivery": "dataset"}```## OutputThe actor output contains `chartEntries`, `movementReports`, and `deliveryRows`. Raw rows keep legacy aliases (`name`, `artist`, and `collectionId`) and add the stable fields used by integrations.### Raw chart output```json{"actorName": "apple-podcast-chart-tracker","rowType": "chart_rank","billingEventName": "apify-default-dataset-item","country": "us","rank": 12,"showId": "123456","showName": "Example Podcast","artistName": "Example Network","sourceUrl": "https://podcasts.apple.com/us/podcast/id123456","fetchedAt": "2026-08-01T00:00:00.000Z","collectionId": "123456","name": "Example Podcast","artist": "Example Network"}```### Movement report output```json{"actorName": "apple-podcast-chart-tracker","rowType": "podcast_chart_movement_report","billingEventName": "podcast-chart-movement-report","monitorKey": "weekly-news-us-gb","initialRun": false,"fetchedAt": "2026-08-01T00:00:00.000Z","changedCount": 1,"newCount": 1,"droppedCount": 0,"changes": [{"changeType": "changed","country": "us","showId": "123456","showName": "Example Podcast","previousRank": 18,"currentRank": 12,"rankDelta": 6,"sourceUrl": "https://podcasts.apple.com/us/podcast/id123456"}]}```A baseline run emits zero `deliveryRows`. A later unchanged poll emits zero rows and zero charges. A later poll emits at most one movement report row for all observed changes. A failed source is not treated as a mass drop.## Output fields- Raw: `actorName`, `rowType`, `billingEventName`, `country`, `rank`, `showId`, `showName`, `artistName`, `sourceUrl`, `fetchedAt`, plus legacy aliases.- Movement report: `monitorKey`, `changedCount`, `newCount`, `droppedCount`, `changes`, and source limitations.- Envelope: `chartEntries`, `movementReports`, `deliveryRows`, `meta`, and delivery/state status in the final output file.## Pricing and deliveryThe existing raw path is unchanged: the default dataset event is used for each raw chart row. The movement event is named `podcast-chart-movement-report` and is sent through `Actor.pushData(row, eventName)` when the Apify SDK is available. The local test path never charges.`maxChargeUsd` defaults to `$3`. The local safety estimate is `$0.003` per raw row and `$2.50` per movement report row; delivery stops before any row is sent when the estimate exceeds the cap.`delivery=dataset` writes billable rows to the Apify default dataset. `delivery=webhook` writes the billable rows to the default dataset first, then sends only the rows that were paid for in this run to the supplied HTTP(S) webhook (if Max cost per run stops delivery part-way, the webhook carries the paid rows plus a `meta.chargeLimit` note; if no row was paid, nothing is sent). A non-2xx webhook response fails the run; the paid rows stay in the dataset and the monitor state is saved so they are not charged again. A dataset/PPE failure fails the run and prevents state commit. Webhook delivery does not replace dataset delivery.## State and no-change behaviorState is isolated by `monitorKey`. State is saved only after dataset/PPE delivery succeeds (with `delivery=webhook`, before the webhook is sent, so paid rows are never charged twice). A state load or save failure fails closed; it never silently treats a missing state as a new baseline after a remote storage error.- `baseline_only`: save the first successful snapshot with 0 rows and 0 charges.- `emit_backfill`: emit one initial movement report for the current positions.- Subsequent runs: emit only new, changed, or dropped positions; unchanged polls emit 0 rows and 0 charges.- Set `emitRawRows=true` only when a monitor also needs the legacy raw rows; the charge cap still applies.## Compliance guardrails- Uses public Apple Podcasts/iTunes chart JSON only.- No Apple logo, endorsement, private dashboard, or authenticated data is claimed.- Rank movement is descriptive evidence, not a forecast, audience estimate, advertising guarantee, or provider approval.- Unsupported storefronts produce a warning and are never interpreted as a mass drop from the saved baseline.## See also- [Apple Podcasts Scraper](https://apify.com/taroyamada/apple-podcast-scraper) for broad public show discovery.- [Podcast Media Buyer Shortlist Scraper](https://apify.com/taroyamada/podcast-media-buyer-shortlist-scraper) for the next report-oriented workflow.## Related Actors- Hub: [`taroyamada/apple-podcast-scraper`](https://apify.com/taroyamada/apple-podcast-scraper)- [`taroyamada/apple-podcast-scraper`](https://apify.com/taroyamada/apple-podcast-scraper)- [`taroyamada/apple-podcast-reviews-monitor`](https://apify.com/taroyamada/apple-podcast-reviews-monitor)- [`taroyamada/apple-podcast-episode-watchlist`](https://apify.com/taroyamada/apple-podcast-episode-watchlist)- [`taroyamada/podcast-sponsor-contact-intelligence`](https://apify.com/taroyamada/podcast-sponsor-contact-intelligence)- [`taroyamada/podcast-sponsor-evidence-report-scraper`](https://apify.com/taroyamada/podcast-sponsor-evidence-report-scraper)- [`taroyamada/podcast-media-buyer-shortlist-scraper`](https://apify.com/taroyamada/podcast-media-buyer-shortlist-scraper)- [`taroyamada/podcast-category-network-benchmark-report`](https://apify.com/taroyamada/podcast-category-network-benchmark-report)## Works well with- [Apple Podcasts Scraper](https://apify.com/taroyamada/apple-podcast-scraper) — search shows, look up IDs, pull recent episodes and listener reviews- [Article Content Extractor](https://apify.com/taroyamada/article-content-extractor) — clean article text and metadata for RAG/LLM pipelines- [Trade Show Exhibitor Intelligence](https://apify.com/taroyamada/trade-show-exhibitor-intelligence) — turn exhibitor pages into booth and lead lists