Apple Podcasts · iTunes search
Apple Podcasts Scraper — Search, Charts & Episodes to CSV (No API Key)
Scrape Apple Podcasts charts, episodes, and search results through iTunes and RSS. Export CSV or JSON from the Dataset - no API key.
First paid run: set searchTerm, keep limit at 3, leave episodes off. That try run is about $0.0125. From $2.50 / 1,000 results.
Actor: taroyamada/apple-podcast-scraper. Official iTunes Search / Lookup plus RSS for recent episodes when you turn them on. No proxy. No API key. Not a chart-movement monitor and not a reviews collector.
Open Console → leave defaults → Start (limit 3 ≈ $0.0125)
Suggested Input for the first run:
{
"searchTerm": "technology",
"country": "us",
"limit": 3,
"includeEpisodes": false
}
After the dataset writes three rows, export CSV from the default Dataset. Then raise limit, add chartRequests, or set includeEpisodes true.
Demo
Watch a short walkthrough of a search run on Apify. Then follow How to start a run with the search + limit 3 input below.
Search versus charts and reviews
Use this page when the job is finding shows by keyword, snapshotting a chartRequests ranking, refreshing known collection IDs, or attaching recent episode titles. Use Apple Podcasts Chart Scraper for Top Podcasts ranks and optional movement reports. Use Apple Podcasts Reviews Scraper for public ratings and review text on IDs you already have.
| Apple Podcasts Scraper | Chart Scraper | Reviews Scraper | |
|---|---|---|---|
| Intent | Search, chart snapshot, watchlist lookup, optional episodes | Top Podcasts chart rows and optional rank movement | Public review rows, optional rating report, delta monitor |
| Primary input | searchTerm, lookupIds, chartRequests |
countries, optional genreId, limit |
podcastIds, countries, maxPagesPerPair |
| Default row | Search / lookup / chart snapshot rows | chart_rank |
podcast_review |
| Optional report | None; chart path is a snapshot only | One movement report when a monitorKey sees new, changed, or dropped ranks |
One podcast_review_report when generateReport is true |
None of these Actors is affiliated with or endorsed by Apple. Rank and search results are public catalog metadata, not download counts, audience estimates, or advertising guarantees.
Use cases
- Discover public podcast shows by search term, chart query, or collection-ID lookup.
- Build a shortlist for media buying or outreach from topic, country, and public show metadata.
- Snapshot country charts as source-linked rank rows for later comparison.
- Refresh a watchlist of known collection IDs without running a new keyword search.
- Attach recent episode titles when episode-level context is required.
- Validate public Apple Podcasts source URLs before a deeper review or export.
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. For a source-linked movement report, use Apple Podcasts Chart Scraper.
Search quickstart
Keyword search is the lowest-friction first paid run. Set searchTerm. At least one of searchTerm, chartRequests, or lookupIds is required. country is the ISO storefront for the search (default us). limit is the maximum number of podcasts returned (1–200; live default and Store prefill 3). Keep the first run at limit 3. Leave chartRequests empty and includeEpisodes false until search output is useful. Full cheapest-run math: iTunes podcast scraper: cheapest Apple Podcasts first paid run.
{
"searchTerm": "technology",
"country": "us",
"limit": 3,
"includeEpisodes": false
}
Sample rowType is podcast_search_result. Published fields include collectionId, showName, publisher, country, sourceUrl, and fetchedAt. rank is null on search rows. README discovery-row example (placeholder show data):
{
"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": 290783428,
"showName": "Example Podcast",
"publisher": "Example Network",
"country": "us",
"rank": null,
"sourceUrl": "https://podcasts.apple.com/us/podcast/planet-money/id290783428",
"fetchedAt": "2026-05-06T00:00:00.000Z"
}
],
"warnings": []
}
This Actor does not document genre filters, review text, contact emails, or pagination beyond limit. After a search run, pass collection IDs into a iTunes Lookup watchlist refresh. See Apple Podcasts search discovery (iTunes Search API).
If that first run writes 3 result rows and charges one Actor Start event, the estimate is $0.005 + (3 × $0.0025) = $0.0125. Then add chartRequests for Apple Podcasts / iTunes charts, or set includeEpisodes true for recent episode titles.
Run this search + limit 3 input on Apify
Chart snapshot
Use chartRequests for official Apple rankings. Each item can set country, feedType, and limit. Supported feedType values are podcasts and podcast-episodes. If an item omits limit, the top-level limit applies. Per-item country overrides the default storefront.
{
"chartRequests": [
{ "country": "us", "feedType": "podcasts", "limit": 25 }
],
"includeEpisodes": false
}
Each chart row can include rank, collectionId, show identifiers, sourceUrl, and fetchedAt. This is a snapshot: the Actor does not compute rank movement between runs. For new, changed, or dropped positions on a saved monitor, use Apple Podcasts Chart Scraper. See How to get Apple Podcasts chart metadata from Apple/iTunes endpoints.
Run a chart snapshot on Apify Input
Watchlist refresh
Pass known Apple Podcasts collection IDs as lookupIds. Lookup uses the official iTunes Lookup API. You can take an ID from an Apple Podcasts URL (id290783428 → 290783428).
{
"lookupIds": ["290783428"],
"country": "us",
"includeEpisodes": false
}
Empty or no-change watchlist polls are described as avoiding payable default-dataset writes when nothing is saved. See Refresh Apple Podcasts watchlists (iTunes Lookup API) and One-time export vs iTunes watchlist lookup.
Run a watchlist refresh on Apify Input
How is Apple Podcasts Scraper different from Chart Scraper and Reviews Scraper?
Apple Podcasts Scraper is the search, episode, and watchlist actor. It finds public shows through official Apple/iTunes endpoints: searchTerm, chartRequests snapshots, lookupIds, and optional recent episodes. It does not emit rank movement reports or review rows. Apple Podcasts Chart Scraper is storefront Top Podcasts ranks and optional movement reports. Apple Podcasts Reviews Scraper reads public Customer Reviews RSS for collection IDs you already have.
What input is required to start a run?
The published input schema has no required array. Runtime and schema description still require at least one of searchTerm, chartRequests, or lookupIds. additionalProperties is false. Live input schema fields:
| Field | Type | Default | Notes |
|---|---|---|---|
searchTerm |
string | — | iTunes Search API keyword. Schema prefill is technology. |
chartRequests |
array | [] |
Items can set country, feedType (podcasts or podcast-episodes), and limit. |
lookupIds |
array | [] |
Numeric Apple Podcasts collection IDs for iTunes Lookup. |
country |
string | us |
Default ISO storefront for search and lookup. Charts can override per item. |
limit |
integer | 3 | 1–200. Caps search and chart items that omit their own limit. Live default and Store prefill is 3. Empty falls back to 3. |
includeEpisodes |
boolean | false | Fetch recent episodes for each resolved podcast (slower). |
delivery |
string | dataset |
Enum: dataset or webhook. |
webhookUrl |
string | — | Used when delivery is webhook. |
dryRun |
boolean | false | Runs without saving results or sending webhooks. |
Do not send unpublished aliases such as an RSS feed URL field, genreId, maxEpisodesPerShow, or webhook as a delivery value. Keep the first run at limit 3, then raise limit after the output is useful.
What does a result row contain?
Output is source-linked dataset rows. The published README field list is rowType, collectionId, showName, publisher, country, rank, episodeTitle, sourceUrl, and fetchedAt. Sample search rowType is podcast_search_result. rank is null on search rows. Rows also include warnings when a source is partial, and stable IDs when the workflow supports recurring checks. There is no separate output schema on the Store page. See Apple Podcasts dataset fields.
How do I export episode metadata?
Set includeEpisodes to true to fetch recent episodes for each resolved podcast. That path is slower. For official episode rankings, use chartRequests with feedType podcast-episodes. After a dataset run, export the default dataset (JSON or CSV from the dataset view). The published input does not expose a per-show episode count, a date window, or a full-catalog dump; for a known show’s complete feed, read public RSS. See the episode metadata export workflow, RSS vs Apple Podcasts Scraper, and RSS & Atom Feed Extractor when you already have public feed URLs to parse into item lists.
Can I pull charts or search for more than one country?
Charts can. chartRequests is an array; each item can set its own country (ISO codes such as us, gb, jp). Search and lookup use a single default country per run. Rankings and search results differ by storefront, so compare rows by the country field instead of mixing ranks. This Actor’s chartRequests path is a rank snapshot and does not emit movement reports. See charts and search by country.
Run a country-specific request on Apify
How is Apple Podcasts Scraper priced?
Billing is pay-per-event. The live Store card is from $2.50 / 1,000 results. Published events are Actor Start at $0.005 (charged when the Actor starts; number of events charged depends on Actor memory, one event per GB, minimum one event) and result at $0.0025 (single result in the default dataset). You are not charged for Apify platform usage, only the fixed event price. The cheapest useful first paid run is search + limit 3 with includeEpisodes false: if 3 result rows and one Actor Start event charge, the estimate is $0.005 + (3 × $0.0025) = $0.0125. Empty no-change watchlist polls are described as avoiding payable default-dataset writes when nothing is saved. Dry runs do not save results or send webhooks. The default dataset is the billable surface.
Open Input → Start. Search + limit 3 ≈ $0.0125 (Start $0.005 + result $0.0025 × 3). From $2.50 / 1,000 results.
Open Apple Podcast Scraper Apify Input → Start
See Apple Podcasts Scraper pricing on Apify
How does Apple Podcasts Scraper deliver dataset, webhook, and dry-run output?
delivery defaults to dataset for reviewable output. Set delivery to webhook and provide webhookUrl after the payload shape is approved (Slack, Discord, Zapier, or any HTTP endpoint). The published enum is dataset or webhook. dryRun true runs without saving results or sending webhooks, which is useful before a live watch or webhook. See Deliver Apple Podcasts results with webhooks.
The Actor uses public Apple and RSS endpoints. It does not require account sessions, browser automation, or private podcast dashboards. No proxy is required. It is not affiliated with or endorsed by Apple.
Open Apple Podcasts Scraper on Apify
Do I need a proxy or an Apple ID to run Apple Podcasts Scraper?
No. The Actor uses public Apple and RSS endpoints. It does not require account sessions, browser automation, or private podcast dashboards. No proxy is required. It is not affiliated with or endorsed by Apple.
Does keyword search return chart rank or review text?
No. rank is null on search rows. This Actor does not document review text on the search path. For official rankings use chartRequests on this Actor, or Apple Podcasts Chart Scraper when you need a movement report. For public ratings on IDs you already have, use Apple Podcasts Reviews Scraper.
Can I pass a public RSS feed URL into Apple Podcasts Scraper?
No. Published inputs are searchTerm, chartRequests, and lookupIds. additionalProperties is false, so an unpublished RSS URL field is not accepted. RSS is used internally when includeEpisodes is true. If you already have a public feed URL and need that show’s published catalog, read the feed directly or use RSS & Atom Feed Extractor. See RSS vs Apple Podcasts Scraper and RSS feed vs iTunes Search.
Does includeEpisodes dump a show's full episode catalog?
No. includeEpisodes fetches recent episode context for each resolved podcast and is slower. The published input does not expose a per-show episode count, a date window, or a full-catalog dump. For official episode rankings, use chartRequests with feedType podcast-episodes. For a known show’s complete published history, read public RSS. See the episode metadata export workflow.
What happens on an empty or no-change watchlist poll?
Empty no-change watchlist polls are described as avoiding payable default-dataset writes when nothing is saved. Result events are charged per default-dataset item ($0.0025 each; $2.50 per 1,000). Actor Start is a separate $0.005 event charged when the Actor starts (one event per GB, minimum one event). Dry runs do not save results or send webhooks. See iTunes Lookup watchlist refresh.
Can I filter Apple Podcasts search results by genre?
No. This Actor does not document genre filters on searchTerm. Apple Podcasts Chart Scraper accepts an optional genreId for Top Podcasts charts. This Actor’s search and lookup paths use country plus searchTerm or lookupIds only. Pagination beyond limit is not documented.
What should I do with collection IDs after a search run?
Pass collection IDs into lookupIds for a watchlist refresh through the iTunes Lookup API. You can take an ID from an Apple Podcasts URL (id290783428 → 290783428). Use those IDs as podcastIds on Apple Podcasts Reviews Scraper if you need public ratings. This Actor does not emit review rows or rank-movement reports from a search run.
How to start a run
- Open taroyamada/apple-podcast-scraper Input on the Apify Store.
- Paste the search JSON above:
searchTermtechnology,countryus,limit3,includeEpisodesfalse. - Leave
chartRequestsempty on the first paid run. Leavedeliveryondataset. - Start the run. Review the default dataset (JSON or CSV). Then raise
limit, add charts, episodes, or a watchlist.
Open Apple Podcast Scraper Apify Input → Start
Related actors
- Apple Podcasts Chart Scraper — Top Podcasts ranks and movement reports
- Apple Podcasts Reviews Scraper — public ratings and review monitoring
- Article Content Extractor — news and blog HTML cleanup
- RSS & Atom Feed Extractor — known-publisher feeds, not iTunes Search
- YouTube Transcript Scraper Apify — video captions, not podcast catalogs
Related pages
- Export Apple Podcasts search results to CSV (no API key)
- iTunes podcast scraper: cheapest Apple Podcasts first paid run — search + limit 3 ≈ $0.0125
- Apple Podcasts Chart Scraper — Top Podcasts ranks and movement reports
- Apple Podcasts chart scraper
- Apple Podcasts Reviews Scraper — public ratings and review monitoring
- Apple Podcasts reviews scraper
- Apple Podcasts search discovery (iTunes Search API)
- How to get Apple Podcasts chart metadata from Apple/iTunes endpoints
- Refresh Apple Podcasts watchlists (iTunes Lookup API)
- Export Apple Podcasts episode metadata via Apple/iTunes endpoints
- Apple Podcasts charts and iTunes Search by country
- Deliver Apple Podcasts results with webhooks
- Apple Podcasts dataset fields
- Apple Podcasts Scraper FAQ
- Shortlist podcasts for outreach
- Track Apple Podcasts charts over time
- RSS feed vs iTunes Search API
- One-time export vs iTunes watchlist lookup
- RSS vs Apple Podcasts Scraper
- RSS & Atom Feed Extractor
- Website Content Extractor
- Article Content Extractor
- Apple Podcast Episode Watchlist — new episode alerts.
- Podcast Sponsor Public Signal Report — RSS sponsor snapshots.
- Podcast Media Buyer Shortlist Scraper — RSS show candidates.
- Podcast Sponsor Evidence Report Scraper — RSS evidence rows.
- Apple Podcasts Category Benchmark — RSS-fed category/network benchmark.
- Tools