Apple Podcasts Chart Scraper
Snapshot public Apple Podcasts Top Podcasts charts by storefront, then optionally emit one source-linked movement report when a saved monitor sees new, changed, or dropped ranks. This Actor reads public Apple Podcasts/iTunes chart JSON. It is not a keyword search, episode catalog, or collection-ID watchlist tool — that work belongs on Apple Podcasts Scraper.
Open Apple Podcasts Chart Scraper on Apify
Charts versus show and episode scrape
Use this page when the job is storefront rank: who is on a Top Podcasts chart, at what position, and whether that position moved since the last poll. Use Apple Podcasts Scraper when the job is finding shows by keyword, refreshing known collection IDs, or attaching recent episode titles.
| Chart Scraper | Apple Podcasts Scraper | |
|---|---|---|
| Intent | Top Podcasts chart rows and optional rank movement | Search, chart snapshot, watchlist lookup, optional episodes |
| Chart input | countries, optional genreId, limit |
chartRequests with country, feedType, limit |
| Show / episode scrape | Not in this Actor | searchTerm, lookupIds, includeEpisodes |
| Movement | One report row when a monitorKey sees new, changed, or dropped positions |
Snapshot only; no movement report fields |
Neither Actor is affiliated with or endorsed by Apple. Rank movement is descriptive evidence, not a forecast, audience estimate, advertising guarantee, or provider approval.
Use cases
- Monitor Apple Podcasts chart movement for podcast growth, agency, network, or research work.
- Generate a sponsor-evidence report when a rank change needs source-linked context.
- Build a media-buyer shortlist from a focused chart result (country, optional genre, bounded depth).
- Produce a public show discovery feed from Top Podcasts rows for a downstream workflow.
- Run a recurring baseline, then poll for new, changed, or dropped positions only.
- Capture a low-cost raw chart snapshot for archival or later analysis.
For keyword discovery and collection-ID refresh, go to Shortlist podcasts for outreach. For joining scraper chart snapshots yourself, see Track Apple Podcasts charts over time.
Raw chart snapshot
The default path delivers source-linked chart_rank rows. Start with one country and a small limit.
{
"countries": ["us"],
"limit": 25,
"delivery": "dataset",
"dryRun": false
}
Published raw fields: actorName, rowType, billingEventName, country, rank, showId, showName, artistName, sourceUrl, fetchedAt, plus legacy aliases name, artist, and collectionId. README sample (placeholder show data):
{
"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"
}
countries accepts at most 20 unique two-letter codes. Each country is fetched with a timeout and bounded retry. limit is capped at 200. genreId is optional (empty = overall chart; 1321 is the published News example).
Movement monitor
For recurring rank movement, set a stable monitorKey and generateMovementReport to true. The first baseline_only run stores state without dataset rows or charges.
{
"countries": ["us", "gb"],
"genreId": "1321",
"limit": 50,
"monitorKey": "weekly-news-us-gb",
"generateMovementReport": true,
"initialRunMode": "baseline_only",
"maxChargeUsd": 3,
"dryRun": false
}
A later poll emits at most one podcast_chart_movement_report row for all observed changes. Unchanged polls emit zero rows and zero charges. A failed source is not treated as a mass drop. emit_backfill reports the initial current positions once. Leave emitRawRows false unless the monitor also needs the legacy chart rows.
{
"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"
}
]
}
State is isolated by monitorKey and is saved only after webhook and dataset delivery succeed. Use delivery: "webhook" only after the movement-report shape is validated. Webhook delivery does not replace dataset delivery.
Configure a movement monitor on Apify
How is Apple Podcasts Chart Scraper different from Apple Podcasts Scraper?
Chart Scraper is storefront Top Podcasts rankings only: raw chart_rank rows, or one movement report when a saved monitor sees new, changed, or dropped positions. It does not search by keyword, look up collection IDs, or attach episode catalogs. Apple Podcasts Scraper is the search, episode, and watchlist actor; its chartRequests path is a rank snapshot and does not emit movement reports.
What does a raw chart snapshot contain?
Each delivered raw row has rowType chart_rank. Published fields include country, rank, showId, showName, artistName, sourceUrl, fetchedAt, plus legacy aliases name, artist, and collectionId. Sample rows are source-linked to an Apple Podcasts URL. Rank movement is descriptive evidence, not a forecast, audience estimate, or advertising guarantee.
When does a movement report emit, and what does it include?
Set a stable monitorKey and generateMovementReport to true. A baseline_only first run stores state with zero rows and zero charges. Later unchanged polls emit zero rows and zero charges. A later poll that sees new, changed, or dropped positions emits at most one podcast_chart_movement_report row. That row includes monitorKey, changedCount, newCount, droppedCount, and a changes list with changeType, country, show identity, previousRank, currentRank, rankDelta, and sourceUrl. A failed source is not treated as a mass drop. emit_backfill emits one initial report of current positions.
How many countries and ranks can I request?
countries accepts at most 20 unique ISO-3166-1 alpha-2 codes per run (for example us, gb, jp, or de). Default is ["us"]. limit is chart depth per country, default 50, capped at 200. genreId is an optional Apple-internal genre ID (1321 is the published News example); leave it empty for the overall chart. Unsupported storefronts produce a warning and are never interpreted as a mass drop from the saved baseline. Storefronts differ: see charts and search by country for why a US chart is not a GB or JP chart.
How is Apple Podcasts Chart Scraper priced?
Billing is pay-per-event. The published Store price for raw rows starts at $3.00 per 1,000 apify-default-dataset-item events. Each movement report is a podcast-chart-movement-report event. The published safety estimate is $0.003 per raw row and $2.50 per movement report. maxChargeUsd defaults to 3 and fails closed before delivery when the estimate exceeds the cap. Unchanged monitor polls emit zero rows and zero charges when emitRawRows is false.
From $3.00 per 1,000 raw chart rows
See Apple Podcasts Chart Scraper pricing on Apify
How do delivery, webhooks, and dry runs work?
delivery defaults to dataset and writes billable rows to the Apify default dataset. webhook sends the same payload to an http or https webhookUrl first, then writes those billable rows to the default dataset. A non-2xx webhook response fails the run before dataset delivery and prevents state commit. Webhook delivery does not replace dataset delivery. dryRun fetches and formats the result without dataset, webhook, charge, or state delivery.
Open Apple Podcasts Chart Scraper on Apify
Related pages
- Apple Podcasts Scraper — search, episodes, and watchlists
- Apple Podcasts Reviews Scraper — ratings and review monitoring
- How to get Apple Podcasts chart metadata — scraper
chartRequestssnapshots - Track Apple Podcasts charts over time
- Apple Podcasts charts and search by country
- Shortlist podcasts for outreach
- Apple Podcasts Scraper FAQ
- Tools