Apple Podcasts Chart Scraper: iTunes Rank Tracker
Pricing
from $3.00 / 1,000 apify-default-dataset-items
Apple Podcasts Chart Scraper: iTunes Rank Tracker
Track Apple Podcasts iTunes chart ranks by country/genre. Export CSV/JSON. Try Input: us + limit 1 ≈ $0.003 · From $3/1k.
Pricing
from $3.00 / 1,000 apify-default-dataset-items
Rating
0.0
(0)
Developer
naoki anzai
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
What you get: Apple Podcasts / iTunes chart ranks by country (optional genre) as source-linked rows. Export CSV/JSON. No API key.
CTA: Store → Try for free → Input → leave defaults (us, limit 1, movement OFF) → Start. First paid proof ≈ $0.003. Cap maxChargeUsd 0.05. From $3/1k.
{"countries":["us"],"limit":1,"generateMovementReport":false,"maxChargeUsd":0.05,"delivery":"dataset"}
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
{"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
{"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 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 MCP
Exact actor: taroyamada/apple-podcast-chart-tracker
Sample input JSON:
{"countries": ["us"],"genreId": "","limit": 1,"generateMovementReport": false,"delivery": "dataset"}
Output
The 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
{"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
{"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 delivery
The 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 sends the same output payload to the supplied HTTP(S) webhook first, then writes the billable rows to the default dataset. A non-2xx webhook response or dataset/PPE failure fails the run and prevents state commit. Webhook delivery does not replace dataset delivery.
State and no-change behavior
State is isolated by monitorKey. State is saved only after webhook and dataset/PPE delivery succeeds. 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=trueonly 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 for broad public show discovery.
- Podcast Media Buyer Shortlist Scraper for the next report-oriented workflow.
Related Actors
- Hub:
taroyamada/apple-podcast-scraper taroyamada/apple-podcast-scrapertaroyamada/apple-podcast-reviews-monitortaroyamada/apple-podcast-episode-watchlisttaroyamada/podcast-sponsor-contact-intelligencetaroyamada/podcast-sponsor-evidence-report-scrapertaroyamada/podcast-media-buyer-shortlist-scrapertaroyamada/podcast-category-network-benchmark-report