Apple Podcasts Scraper — Search, Charts & Episodes to CSV
Pricing
from $2.50 / 1,000 results
Apple Podcasts Scraper — Search, Charts & Episodes to CSV
Apple Podcasts scraper for search results, charts, and episodes via iTunes + RSS. Export search results to CSV from the Dataset (JSON too). No API key. Try a search with limit 3 for about $0.0125. From $2.50 / 1,000 results.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
naoki anzai
Maintained by CommunityActor stats
1
Bookmarked
30
Total users
6
Monthly active users
a day ago
Last modified
Categories
Share
README
Apple Podcasts Scraper
What you get in one click: Apple Podcasts search + chart/lookup rows (show name, publisher, collection ID, source URL) via public iTunes + RSS. No API key.
CTA: On the Store page click Try for free → Input → leave the prefilled defaults → Start. First paid proof ≈ $0.0125 (limit 3).
{"searchTerm": "technology","country": "us","limit": 3,"includeEpisodes": false}
Do not clear Limit. Empty Limit still bills results; runtime falls back to 3 (max 200).
Demo
Paid first run ≈ $0.0125 total (limit 3): Actor Start $0.005 + 3×$0.0025.
Store Quickstart
Low-cost discovery
Start with one search term and one country. This keeps the initial source check small; use the returned show IDs or source URLs in the Reviews, Chart, or Media Buyer workflow above.
Recommended first run:
{"searchTerm": "technology","country": "us","limit": 3,"includeEpisodes": false}
High-value follow-on reports
This actor remains the low-cost source step. The linked Reviews and Chart actors provide the next evidence/report step, while the Media Buyer actor provides the shortlist/export deliverable. Their Store pages are the pricing source of truth for those value events.
See docs/value-path-sample.json for the low-cost discovery input and the three follow-on routes.
Use with Apify MCP
Exact actor: taroyamada/apple-podcast-scraper
Sample input JSON:
{"searchTerm": "technology","country": "us","limit": 3,"includeEpisodes": false,"delivery": "dataset"}
Run the next report
Use this actor for focused discovery, then move into the proven Apple Podcasts workflow:
- Review public listener feedback when reputation and rating evidence is the next decision.
- Track chart movement when rank and change evidence is the next decision.
- Build a media buyer shortlist when the next output is a ranked set of shows by topic, country, cadence, and public fit signals.
These follow-on actors use public podcast and RSS surfaces. Start with a small discovery set, then pass the useful public source URLs or search terms into one report workflow.
Input examples
Search quickstart
{"searchTerm": "technology","country": "us","limit": 3,"includeEpisodes": false}
Chart rank check
{"chartRequests": [{"country": "us","feedType": "podcasts","limit": 25}],"includeEpisodes": false}
Watchlist refresh
{"lookupIds": ["1535144780"],"includeEpisodes": true,"maxEpisodesPerShow": 3}
Sample output
This is a discovery-row example. It is intentionally smaller than the report, evidence, and export outputs produced by the linked follow-on actors.
{"meta": {"actorName": "apple-podcast-scraper","actorTitle": "Apple Podcasts Scraper","bundle": "Podcast Research & Media Planning Pack","fetchedAt": "2026-05-06T00:00:00.000Z","totalRows": 1},"rows": [{"actorName": "apple-podcast-scraper","rowType": "podcast_search_result","collectionId": 1535144780,"showName": "Example Podcast","publisher": "Example Network","country": "us","rank": null,"sourceUrl": "https://podcasts.apple.com/us/podcast/example/id1535144780","fetchedAt": "2026-05-06T00:00:00.000Z"}],"warnings": []}
Output fields
rowTypecollectionIdshowNamepublishercountryrankepisodeTitlesourceUrlfetchedAt
Rows also include source URLs, fetch timestamps, warnings when a source is partial, and stable IDs when the workflow supports recurring change detection.
Pricing and no-change runs
$0.001 actor start and $0.003 per dataset row. Empty no-change watchlist runs should avoid dataset writes.
The default dataset is the billable surface. Dry runs, validation-only runs, missing-key warnings, and unchanged recurring polls should not write payable default-dataset rows.
Use this actor for low-cost discovery and source validation. The linked Reviews, Chart, and Media Buyer actors have separate report and export events; their Store pages are the pricing source of truth for those deliverables.
Compliance guardrails
- Uses public Apple and RSS endpoints; it is not affiliated with or endorsed by Apple.
- Does not require account sessions, browser automation, or private podcast dashboards.
- Use output for research, ranking analysis, and monitoring workflows.
- Do not use provider emblems or wording that implies approval by an upstream data provider.
See also
The three routes above cover review evidence, chart movement, and shortlist workflows for discovered shows. Reach the sponsor evidence report from the Reviews or Chart actor after a public signal is worth investigating.
Related Actors
taroyamada/apple-podcast-reviews-monitortaroyamada/apple-podcast-chart-trackertaroyamada/apple-podcast-episode-watchlisttaroyamada/podcast-sponsor-contact-intelligencetaroyamada/podcast-sponsor-evidence-report-scrapertaroyamada/podcast-media-buyer-shortlist-scrapertaroyamada/podcast-category-network-benchmark-report
Actor input Schema
searchTerm (type: string):
Optional keyword search powered by the iTunes Search API. This is the lowest-friction quickstart lane for the first useful buyer run.
chartRequests (type: array):
Optional array of Apple rankings requests. Leave this empty for the cheapest first success, then add one chart lane after the search quickstart is green. Each item can include {"country":"us","feedType":"podcasts","limit":10}. Supported feedType values: podcasts, podcast-episodes.
lookupIds (type: array):
Optional list of Apple Podcasts collection IDs to resolve through the iTunes Lookup API. Add these when you want recurring watchlist refreshes for known shows.
country (type: string):
Default ISO country code for search and lookup requests (us, gb, jp, etc). Chart requests can override this per item.
limit (type: integer):
Maximum number of podcasts returned for search, and the default limit for chart requests that omit their own limit. Keep the first run small, then scale up only after the quickstart output is already useful.
includeEpisodes (type: boolean):
Also fetch recent episodes for each resolved podcast (slower). Leave this off unless episode-level context materially improves the workflow.
delivery (type: string):
How to deliver results. Start with 'dataset' for reviewable output, then move to 'webhook' after the buyer approves the payload shape.
webhookUrl (type: string):
Webhook URL to send results to when delivery is 'webhook'. Works with Slack, Discord, Zapier, or any HTTP endpoint.
dryRun (type: boolean):
If true, runs without saving results or sending webhooks. Useful for testing a new watch setup or validating a webhook endpoint before going live.
Actor input object example
{"searchTerm": "technology","chartRequests": [],"lookupIds": [],"country": "us","limit": 3,"includeEpisodes": false,"delivery": "dataset","dryRun": false}
API
You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.
JavaScript example
import { ApifyClient } from 'apify-client';// Initialize the ApifyClient with your Apify API token// Replace the '<YOUR_API_TOKEN>' with your tokenconst client = new ApifyClient({token: '<YOUR_API_TOKEN>',});// Prepare Actor inputconst input = {"searchTerm": "technology","chartRequests": [],"lookupIds": [],"limit": 3};// Run the Actor and wait for it to finishconst run = await client.actor("taroyamada/apple-podcast-scraper").call(input);// Fetch and print Actor results from the run's dataset (if any)console.log('Results from dataset');console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {console.dir(item);});// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs
Python example
from apify_client import ApifyClient# Initialize the ApifyClient with your Apify API token# Replace '<YOUR_API_TOKEN>' with your token.client = ApifyClient("<YOUR_API_TOKEN>")# Prepare the Actor inputrun_input = {"searchTerm": "technology","chartRequests": [],"lookupIds": [],"limit": 3,}# Run the Actor and wait for it to finishrun = client.actor("taroyamada/apple-podcast-scraper").call(run_input=run_input)# Fetch and print Actor results from the run's dataset (if there are any)print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")for item in client.dataset(run.default_dataset_id).iterate_items():print(item)# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start
CLI example
echo '{"searchTerm": "technology","chartRequests": [],"lookupIds": [],"limit": 3}' |apify call taroyamada/apple-podcast-scraper --silent --output-dataset
MCP server setup
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com/?tools=fetch-actor-details,taroyamada/apple-podcast-scraper"}}}
The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an Authorization: Bearer <APIFY_API_TOKEN> header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).
OpenAPI specification
Download the OpenAPI definition: https://api.apify.com/v2/actors/82cKuLhJJl9vLKVec/builds/8K4VbesCg53YWCEoC/openapi.json