Apple Podcasts Scraper – Episodes, Reviews & Podcast Publishers
Pricing
$1.00 / 1,000 results
Apple Podcasts Scraper – Episodes, Reviews & Podcast Publishers
Scrape Apple Podcasts: every episode (title, date, duration, description, audio URL, RSS feed), reviews with star ratings, keyword search, top-shows and trending-episodes podcast charts per storefront, or every show a publisher runs. HTTP-only, no login, pay per result. iTunes podcast data API.
Pricing
$1.00 / 1,000 results
Rating
0.0
(0)
Developer
Fetch Smith
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 minutes ago
Last modified
Categories
Share
Apple Podcasts Scraper — Episodes, Reviews, Search, Charts & Podcast Publishers
Scrape Apple Podcasts without a browser or login: every episode of a show (title, release date, duration, description, direct audio URL, RSS feed), listener reviews with star ratings, search Apple's podcast catalogue by keyword, pull today's top-charts for any storefront, or list every show a publisher runs. Export to JSON, CSV or Excel. Pay only per row returned.
Episodes, reviews and search live in one Actor, so you can go from "podcasts about AI" to "every 1-star review those shows got" in a single run — and at $0.001 per row with no per-run start fee, it costs a fraction of comparable Apple Podcasts Actors (commonly $0.0025–$0.004 per row, several of them with a start fee on top).
Use cases
- Podcast guest / sponsor prospecting — search a topic, get every matching show with its host, genre, episode count and RSS feed.
- Audience research — pull listener reviews for you and your competitors and mine them for complaints, praise and topic requests.
- Content and SEO research — episode titles + descriptions for a whole niche, ready for keyword analysis.
- Media monitoring — schedule the Actor to catch new episodes or new reviews for the shows you track.
- AI/LLM pipelines — episode descriptions and reviews as clean JSON, plus
episodeUrl(the direct audio file) for transcription. - Trend tracking — pull the top-N chart for any storefront on a schedule to see which shows are rising or falling.
- Network mapping — give a publisher's Apple Podcasts artist ID and get every show they run (e.g. a media company's whole podcast slate) in one call.
Input
| Field | Type | Description |
|---|---|---|
dataType | string | episodes (default), reviews, podcasts (show records), charts (today's top shows or trending episodes, see chartType — no podcasts/searchTerms needed), or publisher (every show by a publisher/artist) |
podcasts | array | Apple Podcasts show URLs/IDs, e.g. https://podcasts.apple.com/us/podcast/lex-fridman-podcast/id1434243584. For dataType: "publisher", give the publisher's artist URL/ID instead, e.g. https://podcasts.apple.com/us/artist/the-new-york-times/121664449. You can also paste a direct RSS/podcast feed URL for any show — including ones not indexed by Apple at all — but only with dataType: "episodes", since the feed itself has no Apple ID for reviews/search/charts |
searchTerms | array | Find shows by keyword instead of, or as well as, giving URLs |
searchLimit | integer | Shows to take per search term (default 10, max 200) |
chartType | string | Charts only: shows (default — Apple's Top Shows chart) or episodes (Apple's separate Trending Episodes chart: one row per episode, with audio URL, duration and release date) |
chartCount | integer | Charts only: how many chart entries to fetch (default 50). Apple caps the overall charts (Top Shows, Trending Episodes) at 100 and a genre chart at 200; higher values are clamped with a warning |
chartGenre | string | Charts only: restrict the Top Shows chart to one of Apple's 19 top-level categories (comedy, trueCrime, news, business, ...) or one of 91 leaf subgenres (christianity, soccer, businessNews, ...) instead of the overall top chart — 110 values total. Leave empty for the overall chart. Ignored for chartType: "episodes" — Apple publishes no per-genre episode chart |
maxPodcastsPerPublisher | integer | Publisher only: how many shows to return per publisher (default 200, max 200) |
country | string | Storefront code — us (default), gb, de, jp, ... Reviews, availability and charts differ per storefront |
maxEpisodesPerPodcast | integer | Up to 200 most recent episodes per show (Apple's limit) — up to 20,000 with useRssForFullArchive (default 100). On Apple's API it counts episodes fetched (it is the API's own limit, so the other filters narrow within them); on RSS the whole feed arrives in one request, so it counts episodes kept after filtering and a date window can match anywhere in the archive |
useRssForFullArchive | boolean | Episodes only: fetch the show's own RSS feed instead of Apple's lookup API to get the complete episode archive, not just the most recent ~200 (default false; verified live: a real feed returned 502 episodes vs. Apple's 200-episode ceiling for the same show). Also unlocks episodeType, showNotesHtml, audioFileSize, transcriptUrl, chaptersUrl, episodeNumber, seasonNumber and keywords — fields Apple's own lookup API never exposes (verified live: a direct itunes.apple.com/lookup call for a real show's episodes carries none of those 8 keys at all). Falls back to Apple's lookup API for any show without a usable feed |
maxReviewsPerPodcast | integer | Up to 500 reviews per show per storefront (Apple's limit), though in practice Apple's feed usually serves fewer — see FAQ. Counts reviews scanned, before minRating/maxRating/keyword filtering |
sort | string | Reviews only: mostRecent (default) or mostHelpful |
includePodcastInfo | boolean | Attach show name, host, genre, RSS feed and episode count to every row (default true) |
maxResults | integer | Overall cap across all shows — also caps what you pay |
minRating / maxRating | integer | Reviews only: keep reviews rated within 1-5 |
keyword | string | Reviews only: keep reviews whose title or text contains this word/phrase |
minReleaseDate / maxReleaseDate | string | Episodes only: keep episodes released in this window (YYYY-MM-DD or full ISO). This narrows within the maxEpisodesPerPodcast most-recent episodes Apple returns, not further back into a show's archive — enable useRssForFullArchive to search the whole archive instead, where maxEpisodesPerPodcast caps matches kept rather than episodes walked, so a window years back still returns rows. If a whole-archive walk matches nothing, the run log names the feed's real first/last episode dates, and says whether it was the date window that missed the feed (widen it to fit) or your minDurationSeconds/explicitFilter that emptied an otherwise-matching window (relax those instead) |
minDurationSeconds | integer | Episodes only: drop episodes shorter than this (e.g. exclude trailers/ads). Apple omits duration for ~half of episodes on some shows regardless of actual length (measured on a real 20-episode sample) — episodes with unknown duration are always kept, never assumed short |
explicitFilter | string | Episodes only: all (default), clean (exclude Explicit-flagged), or explicitOnly. The flag is read from whichever source the run uses — Apple's Store rating by default, or the feed's own <itunes:explicit> tag (per episode, else show-level) when useRssForFullArchive is on. Real feeds disagree with Apple: the Lex Fridman feed carries no per-episode tag at all and declares the show false at channel level, while Apple rates those same episodes Explicit, so explicitOnly returns rows via Apple and none via RSS (measured 2026-09-18). The run log warns when this applies |
webhookUrl | string | Optional http(s) URL to POST a small JSON completion summary to (items pushed, dataType, dataset ID, and — if watchLabel is set — watchSeeding/watchSkippedCount/baselineTruncated/baselineTruncatedTotal/watchDeadDateBound; for dataType: "episodes" also episodesComplete/episodeSources, see the completeness-record FAQ entry below) — a convenience ping without setting up an Apify platform webhook. Best-effort: a failed or slow webhook is logged as a warning and never affects the run or your bill |
watchLabel | string | Episodes only: name a saved watch (e.g. "daily-check") and this run returns only episodes not delivered under that label before, instead of every episode every time. The first run for a label is a free baseline (0 rows, 0 charged) that records what already exists; run it again later — on a schedule — to get only what's new. Changing any other filter starts a fresh baseline instead of re-delivering previously-excluded episodes as "new". An episode older than the deepest point the baseline reached is also never billed as new: if a later run gets further back into a show's archive than the baseline did (Apple's lookup caps at 200 episodes, and an RSS full-archive fetch can fail), those older episodes are recognised as pre-existing — not delivered, not charged — and the run says how many. Episodes published after the baseline are always newer than that date, so real alerts are never suppressed |
Filtering happens before you're charged — you never pay for rows a filter removed.
Example: get notified only about new episodes (run on a schedule)
{"podcasts": ["https://podcasts.apple.com/us/podcast/lex-fridman-podcast/id1434243584"],"dataType": "episodes","watchLabel": "lex-daily","webhookUrl": "https://your-server.example.com/new-episode"}
The first run seeds the baseline (0 rows, 0 charged). Every run after that returns only episodes published since the previous run — pair with webhookUrl to get pinged the moment a new episode lands, without polling the full archive yourself.
Leave maxReleaseDate out of a watch run, as above. It is an upper bound on release date, and every new episode is published after your baseline ran, so a maxReleaseDate makes the watch permanently unable to report anything new — it just keeps saying nothing was new. minReleaseDate is safe in a watch run (a lower bound can only limit how far back the baseline reaches). A run configured this way now warns about it in the log, says so in the status message, and reports watchDeadDateBound: true in the webhookUrl payload.
Example: every 1- and 2-star review for the top 5 "meditation" podcasts
{"searchTerms": ["meditation"],"searchLimit": 5,"dataType": "reviews","maxRating": 2,"maxReviewsPerPodcast": 200}
Output
dataType: "episodes" — one item per episode:
{"type": "episode","collectionId": 1434243584,"podcastName": "Lex Fridman Podcast","episodeId": 1000786117598,"title": "#501 – DHH: Future of Programming, AI, Agentic Engineering...","episodeNumber": null,"seasonNumber": null,"releaseDate": "2026-08-26T21:47:04Z","durationMs": 19317000,"durationMinutes": 322,"description": "DHH is the creator of Ruby on Rails...","episodeUrl": "https://media.blubrry.com/.../lex_ai_dhh_2.mp3","episodeFileExtension": "mp3","episodeGuid": "https://lexfridman.com/?p=6506","explicit": true,"artworkUrl": "https://is1-ssl.mzstatic.com/image/thumb/...","episodePageUrl": "https://podcasts.apple.com/us/podcast/...","feedUrl": "https://lexfridman.com/feed/podcast/","episodeType": null,"showNotesHtml": null,"audioFileSize": null,"keywords": null,"transcriptUrl": null,"chaptersUrl": null,"source": "itunes","artistName": "Lex Fridman","primaryGenre": "Technology","episodeCount": 502}
episodeType, showNotesHtml, audioFileSize, transcriptUrl, chaptersUrl, episodeNumber, seasonNumber and keywords are only populated when useRssForFullArchive is on and the show's feed provides them (source reads "rss" instead of "itunes" for those rows) — Apple's own lookup API has no equivalent fields for any of the 8. chaptersUrl reads the Podcast 2.0 <podcast:chapters> tag, a pointer to the episode's JSON chapter-marker file (timestamps + titles for each segment), when the feed publishes one. episodeNumber/seasonNumber read the feed's <itunes:episode>/<itunes:season> tags and keywords its <itunes:keywords> tag — all three are plain strings as the feed writes them (no numeric coercion, no splitting on keywords' usual comma list), null when a feed omits the tag.
dataType: "reviews" — one item per review:
{"type": "review","collectionId": 1434243584,"reviewId": "14514424096","title": "Amazing breadth","content": "I've listened to Lex for many years...","rating": 5,"author": "FatBoyTig","updatedAt": "2026-09-05T10:26:18-07:00","voteSum": 0,"voteCount": 0,"country": "us","podcastName": "Lex Fridman Podcast","artistName": "Lex Fridman","primaryGenre": "Technology"}
dataType: "podcasts" — one item per show: collectionId, podcastName, artistName, podcastUrl, feedUrl, primaryGenre, genres, episodeCount, latestReleaseDate, explicit, contentAdvisoryRating, artworkUrl, and searchTerm when it came from a search. If a show matches more than one of your search terms (common with overlapping terms, e.g. "joe rogan" and "jre" both matching The Joe Rogan Experience), it's returned — and charged — once, under whichever term matched first.
dataType: "charts" — with the default chartType: "shows", the same shape as podcasts, plus chartRank (1 = #1 in the storefront). Set includePodcastInfo:false to skip the per-show detail lookup and get just the raw chart fields (name, artist, genre, artwork, URL) faster.
dataType: "charts" + chartType: "episodes" — the same shape as episodes (title, releaseDate, durationMinutes, description, direct episodeUrl audio file, episodeGuid, feedUrl, show metadata), plus chartRank. The episode filters apply here too (explicitFilter, minDurationSeconds, minReleaseDate/maxReleaseDate), and filtered-out entries are never charged, so ranks can legitimately have gaps.
dataType: "publisher" — same shape as podcasts, plus publisherId (the artist ID you gave). One item per show the publisher runs.
FAQ
What country codes does country take? Apple storefronts are two-letter ISO-3166-1 alpha-2 codes — the UK is gb, not uk, and there is no usa/uk/eng. A wrong code used to look like a show that doesn't exist (Apple answers uk with HTTP 400 carrying valid JSON and no results, and the review feed with an empty body); now a recognisable wrong code fails the run in about a second, before the first request and before any charge, and names the code you should have used.
How do I find a publisher's artist ID? It's the trailing number on their "See All" / artist page on podcasts.apple.com (e.g. .../artist/the-new-york-times/121664449), or run dataType: "podcasts" for any one of their shows first — the search/lookup result carries artistId even though this Actor doesn't surface it by default on podcasts rows (open a request if you need it added).
Does keyword handle accented words correctly? Yes, as of v0.1.16 — keyword and the text it's matched against are Unicode-normalized before comparing, so an accented word (e.g. "café") matches regardless of which of Unicode's two equivalent representations (composed vs. decomposed) you typed it in.
Do I need an Apple account or API key? No. Everything comes from Apple's public podcast endpoints. No login, no browser, no proxy required.
Why did I get zero results? The run's status message says exactly why. The usual causes: the show isn't available in the country storefront you asked for (try us), Apple has no reviews for that show in that storefront (reviews are per-storefront — a show can have hundreds in us and none in de), or the ID wasn't an Apple Podcasts ID.
Why did I get fewer reviews than maxReviewsPerPodcast, or exactly zero with minRating/maxRating/keyword set? maxReviewsPerPodcast is a scan-depth cap, not a results cap — it's how many of the show's most-recent reviews get read from Apple's feed before your rating/keyword filter is applied, not how many matching reviews exist. A rare keyword can sit past the reviews you scanned. Example: The Joe Rogan Experience + keyword:"propaganda" returns 0 kept reviews at maxReviewsPerPodcast:50 (only page 1 scanned) but 2 at maxReviewsPerPodcast:100 (page 2 scanned) — the run log and status message call this out by name when it happens, telling you to raise maxReviewsPerPodcast. That advice only applies when your cap ended the scan; when Apple's feed ended it (next FAQ), raising the cap changes nothing and the run says so instead.
Why did I get 50 reviews for a show with thousands? Because Apple stopped serving, not because the show ran out. Apple's public review RSS is served from a patchy index: measured 2026-09-22, the walk commonly ends on a full page long before the documented 500-review/10-page ceiling — Crime Junkie in the gb storefront returned exactly 50 (one full page, nothing on page 2) at maxReviewsPerPodcast: 500. No input value reaches the reviews behind that wall, so raising maxReviewsPerPodcast is not the fix; ask for other country storefronts (reviews are per-storefront), or run on a schedule and deduplicate by reviewId to build a deeper archive over time.
How do I know whether Apple cut the feed off or the show simply has no more reviews? The run tells you, as of v0.1.37. Whenever the last page Apple served came back full while the Actor was still willing to take more, the run's status message and log name those shows and say which page the feed quit at. A run that ends on a partial page genuinely exhausted what Apple serves for that show and storefront — so a missing note is itself the "you got everything available" signal. Either way you are only charged for rows actually delivered.
How many episodes can I get? Apple's endpoint exposes up to 200 of the most recent episodes per show. For the complete back catalogue, set useRssForFullArchive: true — the Actor fetches the show's own RSS feed directly instead (verified live on a real show: 502 episodes vs. Apple's 200-episode cap for the same ID).
I automate this — how do I tell whether a run got everything, in code, not by reading the log? For dataType: "episodes", every run writes a RUN_SUMMARY record to its own key-value store (GET https://api.apify.com/v2/actor-runs/<runId>/key-value-store/records/RUN_SUMMARY), and the same object is POSTed to webhookUrl as episodesComplete/episodeSources. sources holds one entry per show/feed you passed: declaredCount (Apple's own trackCount — what Apple says the show has), delivered (what this run actually returned before your own filters ran), complete (delivered >= declaredCount), and dateFrom/dateTo — the oldest and newest releaseDate actually scanned, so you know the real coverage window even when complete is false. complete is null, not false, when declaredCount itself is unknown (a direct RSS feed URL passed into podcasts carries no Apple trackCount to compare against — unanswerable, not "incomplete"). The run-level complete field mirrors the same tri-state: true only if every source came back complete, false if any genuinely fell short, null if every shortfall was of the unknowable kind. Example: a show with declaredCount: 2754 and maxEpisodesPerPodcast: 100 (Apple's lookup API, no RSS) reports delivered: 100, complete: false, and the real dateFrom/dateTo of the 100 rows you got — so your pipeline can flag the gap itself instead of trusting a row count alone.
Can I scrape a show that isn't on Apple Podcasts, or that I can't find by search? Yes — paste its RSS feed URL directly into podcasts instead of an Apple URL/ID, with dataType: "episodes". The Actor reads the feed itself, so no Apple lookup happens at all (verified live: a non-Apple-searched NPR feed returns full episode rows this way). Reviews, search and charts still need a real Apple ID, since that data only exists on Apple's side.
How fast is it? HTTP-only, no headless browser: a show's 200 episodes come from a single request, and reviews page 50 at a time. Runs cost a few seconds of compute plus the per-result fee.
Can I chart individual episodes, not just shows? Yes — dataType: "charts" with chartType: "episodes" returns Apple's Trending Episodes chart, which is a different chart from Top Shows, not a view of it (on the 2026-09-17 US chart, the #1 show was The Daily while the #1 episode was one specific Daily episode, and ranks 2-12 were episodes of eleven different shows). Each entry is enriched into a full episode row — audio URL, duration, release date, description — via one cached lookup per show. Two limits worth knowing: Apple's episode chart has no genre breakdown (chartGenre is ignored, with a warning), and Apple-exclusive/subscriber-only shows publish no episode list at all, so those entries arrive with source: "chart" and the chart's own title/artwork instead of full episode detail rather than being dropped (measured 19 of 20 entries fully enriched on a real US chart).
Can I get genre-specific charts? Yes — set chartGenre (e.g. comedy, trueCrime, business) to get that category's own top chart instead of the overall one, using Apple's own per-genre chart feed. 110 values are supported: Apple's 19 top-level categories plus 91 leaf subgenres (e.g. christianity, islam, judaism under Religion & Spirituality; soccer, football, basketball under Sports; businessNews, techNews, politics under News) — live-verified these return genuinely different rankings from their parent category, not a filtered view of it (the Judaism and Islam charts, for example, share zero titles with each other or with the overall Religion & Spirituality chart). An unrecognized value is ignored with a warning rather than silently returning the wrong chart.
What happens if Apple's endpoint has a transient blip mid-run? Every lookup, search, review-feed and RSS request is retried up to 3 times on a connection-level failure (measured at roughly 1 fresh connection in 4 for HTTP/2 faults across this fleet, 2026-09-21) before it is given up on and named in the log. A single blip no longer costs you a whole show's episodes, a page of reviews, or — with useRssForFullArchive: true — a silent downgrade back to Apple's 200-episode cap. A real HTTP error from Apple (e.g. a wrong storefront code) still fails immediately with the explanation instead of being retried.
Is this legal? It only reads public, unauthenticated Apple endpoints — the same data any visitor sees on podcasts.apple.com. No personal data beyond the public reviewer nicknames Apple itself publishes.
Why does my watch label never find any new episodes? First check whether you set maxReleaseDate. It keeps only episodes released on or before that date, and anything published since your baseline ran is necessarily newer than it, so the date window discards every new episode before watch mode ever looks at it — the run then reports "nothing new" indefinitely. Drop maxReleaseDate (watch mode already returns only what is new, so an upper bound adds nothing); use minReleaseDate if you want to limit how far back the first baseline reaches. Since build 0.1.83 a watch run in this state warns twice in the log, appends a NOTE to its status message, and sets watchDeadDateBound: true in the webhookUrl payload. Measured 2026-10-11 on the Lex Fridman feed: an identical baseline of 26 episodes returned 0 new episodes with maxReleaseDate: "2026-01-01" set and 14 real new episodes (2026-01-13 to 2026-09-17) with it removed. If it is not that, the show genuinely has not published since your last run — a quiet watch is the normal, expected result most of the time.
Baseline size cap. The recorded watchLabel baseline holds at most 60,000 episode ids per label; once a label's cumulative baseline grows past that, the oldest ids are dropped to bound the record's size. A dropped id is treated as "new" again on a later run and re-charged, even though you already paid for it. This only bites a label tracking a very high cumulative volume of episodes over many runs — narrowing the input (fewer podcasts/searchTerms, or a minReleaseDate) keeps a baseline well under the cap. A run that actually drops ids says so explicitly in its log and status message, and reports the exact counts as baselineTruncated/baselineTruncatedTotal in the webhookUrl payload.
Pricing
Pay per result: $0.001 per row (episode, review or podcast) returned to your dataset. No Actor-start fee — an empty or filtered-out run costs you nothing. Set maxResults to cap any run.
The closest Store competitor covering the same ground (search, show details, reviews, charts, episode archives, publisher lookup) is sourabhbgp (58 users, re-verified live 2026-10-16, sourabhbgp/apple-podcast-scraper) at $0.003/result — 3x our price. Checked against its live input schema rather than its listing copy: it does ship a webhook (webhookUrl POSTs every record as it is collected — a different design from our end-of-run summary ping, not a worse one) and it does read episodes straight from a show's RSS feed, so neither of those is a gap. What its schema has no input for is a duration filter, an explicit-content filter, or a new-episode-only watch mode — its trackDeltas persists snapshots for chart rank changes only, not episodes. Re-verified live 2026-10-07.
The fastest-growing rival in the niche is logiover (62 users, 16 of them in the last 30 days, re-verified live 2026-10-16, logiover/apple-podcasts-episode-scraper), and it is episodes-only — no reviews, no charts, no publisher lookup. On episodes it matches this Actor almost field for field (useRssForFullArchive, minDurationSeconds, an explicit filter, a release-date window), including Podcast 2.0 chapters — this Actor now parses <podcast:chapters> too (chaptersUrl, RSS path only). It charges an Actor-start fee plus $0.0025/result on the free plan — 2.5x our flat $0.001 with no start fee — and has no watch mode and no completion webhook. Re-verified live 2026-10-03.
A wider Store sweep (2026-10-02) found the niche's actual biggest listing is not coder_zoro as this README previously said: ryanclinton/podcast-directory-scraper (182 users, 26 in the last 30 days — the fastest-growing listing in the niche) is bigger than every rival named in this README combined. It's a different product, not a price threat: Apple Podcasts search is one input among Spotify search, host-email/contact extraction and social-profile lookup, and it charges $0.05 per podcast scraped plus a $0.00005 start fee — 50x our $0.001/row. The "never been named" superlative about coder_zoro is retracted; that claim's own number (66 users) was never wrong, just the "biggest" framing around it. Re-verified live 2026-10-03.
A fresh full-niche resweep (149 seen / 106 matched, up from 2026-10-02's count) found only one new listing crossing the 3-user floor since the last audit: delectable_incubator/apple-podcasts-show-scraper---low-cost (3 users). It is dearer than us at every tier ($0.00299 FREE down to $0.00289 GOLD+, plus a $0.00005 start fee, against our flat $0.001 with no start fee) — not an undercutter, not named individually. Re-verified live 2026-10-07.
A real, previously-undisclosed threat: automation-lab/podcast-scraper (117 users, 17 in the last 30 days — the niche's 2nd-biggest listing) covers the same ground as our episodes/podcasts modes: Apple Podcasts search, full podcast metadata, and an episode list with release dates and durations, across 175+ countries. Its Free-plan price is a $0.005 Actor-start fee + $0.00115/podcast + $0.000575/episode, tiered down sharply on paid Apify plans (to $0.00028/podcast and $0.00014/episode on Diamond). Against our flat $0.001/row with no start fee: on episodes it undercuts us past roughly 12 rows/run on the Free plan (sooner on higher tiers — about 6 rows on Diamond); on podcasts the start fee keeps it pricier than us on Free/Bronze/Silver, but it undercuts past roughly 7-9 rows/run on Platinum/Diamond. It has no reviews, no charts, no publisher lookup, no RSS full-archive mode, and no watch mode — all of which this Actor ships. Re-verified live 2026-10-03.
coder_zoro/apple-podcast-episodes-scraper (66 users) is episodes-only and charges a tiered $0.00499/result on the Free plan down to $0.00299/result Gold-and-up, plus a $0.00005 Actor-start fee — 3-5x our flat $0.001 with no start fee. The same owner also runs coder_zoro/apple-podcast-top-chart-scrapper (51 users, never named before), a charts-only sibling listing on the identical price schedule ($0.00499 Free → $0.00299 Gold+, $0.00005 start) — dearer than us at every volume, no new threat. taroyamada/apple-podcast-scraper (31 users, 7 of them in the last 30 days) covers search and episodes to CSV at a flat $0.0025/result plus a $0.005 start fee, also pricier than us at every volume. Verified live 2026-10-03.
A wider sweep (16 extra terms beyond the niche's base phrase, 2026-10-04) turned up five more never-named rivals, all dearer than us, named here for breadth: scrapestorm/apple-podcasts-show-scraper---cheap (21 users — its own listing title says "Cheap", but it charges $0.00005 start + $0.00299/result, 3x us) and its sibling scrapestorm/apple-episodes-scraper (10 users, identical schedule) are both name traps, not price threats; cloud9_ai/itunes-podcast-scraper (10 users) charges $0.00005 start + $0.002/result, 2x us; taroyamada/apple-podcast-chart-tracker (9 users) is that owner's charts-only sibling, $0.003/result flat plus an optional $2.50 "chart movement report" add-on, pricier than us at every volume; seemuapps/apple-podcast-reviews-scraper (14 users, reviews-only) charges $0.00005 start + $0.004/review, 4x us. nexgendata/podcast-episodes-scraper (17 users) is also dearer still ($0.02/episode, no competitive relevance) and scoped for media-monitoring/PR teams rather than bulk scraping. The same sweep surfaced several listings that are not competitors to disclose: hgservices/podcast-transcriber (23 users), memo23/video-audio-transcriber (479 users), sian.agency/transcribe-podcast-to-text, scrapersdelight/podcast-transcript-scraper, kaz_kakyo/media-url-transcriber, fguiraud/audio-video-transcriber and amanatools/podcast-transcription-api are speech-to-text/transcription products (podcast audio is one input among several, priced per transcription-minute), not podcast metadata/episode/review scrapers; seemuapps/spotify-podcast-scraper (50 users, re-verified live 2026-10-16) covers Spotify, a different platform this Actor does not touch; alizarin_refrigerator-owner/podcast-charts-scraper-creator-economy-intelligence (14 users) is a multi-platform marketing-intelligence product priced well above us at any real volume: a $0.10 Actor-start fee plus a near-free $0.00001 generic result price masks the actual cost driver, a $0.01-per-podcast "podcast scraped" event — 10x our flat $0.001/row before the start fee is even counted. Checked live 2026-10-04.
Two of the niche's top-10-by-users listings had never actually been named in this README despite an earlier note claiming "top 10 by users ... all already named" — caught 2026-10-04 by diffing the full niche-size match list rather than trusting that claim. benthepythondev/podcast-intelligence-aggregator (61 users, the niche's 4th-biggest listing) covers the same ground as our episodes/podcasts modes — iTunes/Apple Podcasts search and RSS feed parsing for episodes, metadata and analytics — at a flat $0.03/result on the Free plan down to $0.021 Diamond, plus a small per-GB Actor-start fee: 21-30x our $0.001/row, dearer than us at every volume. parseforge/podchaser-scraper (39 users) only matched the niche's keyword sweep because its optional includeChartPositions field returns an Apple Podcasts chart rank — the Actor itself scrapes Podchaser.com (ratings, host/guest names, social links), a different third-party site, not Apple's own catalog, so it is ruled out as a non-competitor rather than disclosed as a rival. Checked live 2026-10-04.
A full-list sweep of the >=3-user tail (verified live 2026-10-05) found three more undercutters, each on the exact unit we bill (per-row result), not just a primary-event headline. bovi/podcast-scraper (all 4 active in the last 30 days) charges its Podcast/Episode event a tiered $0.0009 (Free) down to $0.000855 (Diamond), with no Actor-start fee — the first rival found in this niche that undercuts our flat $0.001 at every single plan tier with no caveat. ninhothedev/apple-podcasts-scraper charges a flat $0.0005/result plus a one-time $0.00005 Actor-start fee — half our rate at any real run size — but only covers search and top-charts, not episodes, reviews or publisher lookup. cirkit/apple-podcasts-search-scraper charges a flat $0.0007/result with no start fee — also cheaper than us, also search-only.
A sharper case, and the reason to read every event on a rival's record rather than just the one the Store highlights: scrapesage/apple-podcasts-scraper (4 users, re-verified 2026-10-18) has show ($0.006 Free -> $0.00235 Diamond) marked as its primary event — dearer than us at every tier, which is what a tool comparing only headline prices would report. But it bills episodes and reviews as separate, cheaper events: episode ($0.0015 Free -> $0.00059 Diamond) undercuts our flat $0.001 from Gold up, and review ($0.001 Free -> $0.0004 Diamond) ties us at Free and undercuts from Bronze up. It also sells host_contacts enrichment ($0.0075 -> $0.00294/contact), a field we do not offer at any price. Verified live 2026-10-05.
The rest of this sweep's >=3-user matches are dearer than us at every tier and not worth individual crossover math: crawlerbros/applepodcasts-listennotes-scraper ($0.005->$0.003 tiered + $0.005 start), scrapestorm/apple-channels-scraper (flat $0.00299/channel + $0.00005 start), taroyamada/apple-podcast-reviews-monitor (flat $0.003/review plus a $1.50 per-podcast "review report" add-on), seemuapps/podcast-rss-scraper (flat $0.003/episode + start fee), xtracto/apple-podcast-charts ($0.015->$0.009 tiered + start fee), hipersoft/apple-podcasts-scraper ($0.005->$0.0025 tiered item event plus a separate $0.001 api-request event, both dearer), parseforge/itunes-podcast-search-scraper ($0.02->$0.015 tiered), straightforward_hydra/apple-podcasts-charts-tracker (flat $0.004 + start fee), parsebird/apple-podcasts-scraper ($0.0023->$0.0016 tiered + start fee), crawlerbros/itunes-podcast-scraper ($0.005->$0.003 tiered + a $0.005 start fee), northglasslabs/itunes-podcast-discovery ($0.0025->$0.00213 tiered + start fee).
Two more are named without a clean crossover number because their billing unit does not map to ours (no price we could call "per result" exists on their live record at all): agency-shift/apple-podcasts-scraper (search + RSS + publisher + optional owner-email enrichment) charges only a flat $0.05 Actor-start fee and nothing per row — cheaper than us only past ~50 rows in a single run, dearer below that. quaffable_mettle/apple-podcasts-charts (32-country chart tracker) likewise bills only a flat $0.08 per storefront processed with no per-row event — we could not verify how many chart rows one storefront call returns, so we are not claiming a per-row comparison either way. shahidirfan/Apple-Podcast-Reviews-Scraper (a different listing from the shahidirfan/Apple-Podcasts-Scraper named below) has no pricing configured at all, making it $0 on every run — the cheapest possible rival — but it has had 0 new users in the last 7 days and reads reviews only. Ruled out of scope as non-competitors: northglasslabs/podcast-transcript-scraper and scrapewise/media-transcriber are speech-to-text/transcription products billing per audio-minute, the same ruling already applied to the transcription products named above. All prices re-verified live 2026-10-05.
The 1-and-2-user tail, swept in full for the first time (verified live 2026-10-06). Every sweep above stopped at the >=3-user cut. On this niche that cut is now empty — not one unnamed listing has 3 or more users — so all 63 unnamed matches (of 101 niche matches; this README names 46 handles) were priced live, reading every charge event and every plan tier on each record rather than the one price the Store page highlights. Apify pins a new listing at 2 users, so "2 users" means "launched recently", not "no threat", and a rival who launches underneath our price is invisible to a top-N-by-users cut by construction. The tail held 16 genuine undercutters on the unit we bill, more than every previous sweep of this niche combined:
- Cheaper than us at every tier, no caveat:
chrisp1211/podcast-scraper-maxcharges a flat $0.0008 per show-or-episode record, no Actor-start fee, no minimum, failed rows free — the same no-caveat shape as our own pricing, 20% under it, and the single cleanest undercut in this niche.leorochasantos/itunes-podcast-scraper(1u) prices podcasts $0.0006 (Free) -> $0.00039 (Diamond) and episodes $0.0003 -> $0.000195, under us at every tier on both units, offset only by a $0.002 -> $0.0013 start fee (it beats us past ~3-5 rows/run).gio21/apple-podcasts-scraper(charts only — its listing title is literally "$0.1 / 1K") charges $0.0001 per chart entry with no start fee, 10x under us, the cheapest real per-row price found in this niche to date. - Cheaper on episodes (and sometimes reviews), dearer or level on shows — the split-event shape cycle 1254 first found on
scrapesage, now the tail's dominant pattern:everyotherfriday/podcast-directory(episode $0.0002 vs show $0.002, no start fee),gazidev/podcast-scraper(episode $0.0002, show $0.001 level with us, $0.00005 start),deriverge/apple-podcasts-scraper(episode $0.0005 -> $0.00025 and show $0.001 -> $0.0005, no start fee — level with us on shows at Free and under from Bronze up, half or less on episodes at every tier),jonoworks/podcast-directory-scraper(episode $0.0005 against a $0.02 show event, $0.00005 start),pistachio_implementation/apple-podcasts(episode $0.0005, show $0.001 level, no start fee),chorelet/podcast-episodes-scraper(episodes only, $0.0005 -> $0.00035 + $0.00005 start), andrandy-tools/apple-podcasts-scraper(episode $0.0004 / review $0.0005 / show $0.003 with a $0.005 start fee — it beats us past roughly 9 episodes or 10 reviews in a run). - Tiered rivals that tie us on Apify's Free plan and undercut from Bronze up (a tiered rival's Free-tier price is not its real price):
omao/podcast($0.001 Free -> $0.0009 / $0.0008 / $0.00072 / $0.00066 / $0.0006 Diamond, no start fee),steadydata/apple-podcasts-episodesandsteadydata/apple-podcasts-top-charts(2u each, identical $0.001 -> $0.00065 ladders, no start fee),webdatatools/podcast-lookup($0.001 -> $0.0006 + $0.00005 start).glitchbound/podcast-scraperis the edge case: $0.002 Free -> $0.0011 Gold is dearer than us, and only its Platinum ($0.00086) and Diamond ($0.0007) tiers undercut us, past ~7 and ~3 rows/run respectively against its $0.001 start fee. Every price in this list was read off the rival's own live pricing record and verified live 2026-10-06. - A dated price change confirmed live, re-checked 2026-10-16:
rowfeed/apple-podcasts-scraper(2u) bills episodes and reviews at $0.0005 and shows at $0.002, no change to those rates — but the pricing entry scheduled to take effect 2026-10-08 landed exactly as filed, adding a $0.007 Actor-start fee that was not there before. The episode/review rate still undercuts our flat $0.001/result at any run size, but the new start fee pushes that crossover out to ~14 rows/run (below that, our no-start-fee flat rate is cheaper). Every price check we own filters to entries already in effect, so a dated change is only visible to this fleet by reading the future-dated entries directly ahead of time, and re-confirming once the date passes.
Four listings in the tail tie our flat $0.001/row with no start fee and so are neither undercutters nor dearer: cliqtomedia/podcast-directory-rss-contacts-scraper, datalantern/podcast-directory, pepeschuster/itunes-podcast-scraper (2u each), swiftkit/podcasts (added cycle 1339 — see below). alleserojje/podcast-scraper (2u) also prices its row at $0.001 but adds a $0.00005 start fee, making it dearer than us in practice.
Two apparent undercutters in the tail are not real, both worth recording because a tool reading one number per rival would publish either as a price threat. darknezz/apple-podcasts-scraper (2u) shows a generic apify-default-dataset-item event at $0.00001 — 100x under us — next to its actual primary podcast-scraped event at $0.005 and a $0.01 Actor-start fee, the dearest start fee in this sweep: the cheap generic event is a decoy and the real charge is 5x ours. brightpath-data/apple-podcasts-search-reviews (2u) shows $0.0001, but that figure is its Actor-start fee (per run, not per row); its real result event is $0.002, 2x ours. Ruled out of scope on billing unit, not price: spokentext/spotify-podcast-transcript, fguiraud/podcast-transcript-scraper (1u) and seemuapps/podcast-transcript-scraper bill per transcribed audio-minute (the same ruling already applied to the transcription products above), and second_coming/podcast-metadata-scraper (1u) bills $0.02 per "scan" with no per-row event at all. The remaining 38 unnamed listings are dearer than us on their cheapest per-row event at every tier — most of them at $0.002-$0.005, and the niche's host-email/contact lead-gen listings (digital_influx/podcast-leads, data_minds/podcast-directory-scraper, precious_bathmat/podcast-guest-leads, automation_studio/podcast-email-scraper, hllerdgn80/podcast-contact-finder) at $0.015-$0.50 per contact, a different product sold to a different buyer — so no crossover math applies to them. All verified live 2026-10-06.
A fresh full-tail resweep (cycle 1339, verified live 2026-10-06) found 148 seen / 106 matched / 37 unnamed — the >=3-user cut is thin again (only aurenic/podcast-scraper at 3u), so the whole tail was live-priced rather than cut at a threshold. One more exact tie, folded into the list above: swiftkit/podcasts (2u) bills a flat $0.001 per result, no tiers, no start fee — identical shape to our own pricing. One partial tie, a new variant of the split-event pattern above: highbrow_fame/apple-podcasts-shows-episodes (2u) prices its episode event at $0.001, level with us, but its podcast (show) event is dearer at $0.0015 — ties on episodes only, not a clean match. A name trap worth flagging for buyers comparing on title alone: three sibling delectable_incubator listings branded "Low-cost" (apple-channels-scraper---low-cost, apple-episodes-scraper---low-cost, apple-podcasts-show-scraper---low-cost, 1-3u) each show only a $0.00005 Actor-start fee as their visibly cheap number, but their real per-row result event is $0.00289-$0.00999 — 2.9x to 10x our rate — the same branding-vs-live-price gap already documented on scrapestorm's "Cheap" sibling listings above. Six more are host-contact/lead-gen products, the same excluded category as the digital_influx/data_minds group above, all priced per-contact or per-row well above us regardless: enosgb/podcast-newsletter-prospector, fayoussef/podcast-guest-finder, feedwise/podcast-leads-finder, leadsbrary/podcast-guest-finder-contacts, and both neuro-scraper/itunes-podcast-host-phone-number-scraper and neuro-scraper/itunes-podcast-host-email-and-phone-number-scraper. Four more are out of scope by product, not price: crawlerbros/podchaser-scraper reads Podchaser.com, a different site (same ruling as parseforge/podchaser-scraper above); george.the.developer/podcast-transcript-scraper bills $0.02/transcript-minute, the same transcription exclusion already applied above; springstea/podcast-sponsor-tracker tracks ad-sponsor placements, not podcast metadata; taroyamada/podcast-category-network-benchmark-report sells a benchmark/analytics report, not row-level scrape output. The remaining 22 unnamed listings are dearer than us on every priced event at every tier, $0.0015-$0.005/row: accountable_eel/podcast-lookup, aurenic/podcast-scraper, axery/apple-podcast-charts, constant_quadruped/app-review-radar, crawlerbros/itunes-podcasts-scraper, foo121/podcast-itunes-scraper, get_anything/apple-podcasts-scraper, gubidonius/podcast-search, maximedupre/apple-podcast, mina_safwat/podcast-scraper, oblanceolate_mandola/podcast-search, parsebird/podcast-directory-scraper, pixflor/apple-podcasts-scraper, ponderable_hydrometer/apple-podcasts-scraper, renzomacar/apple-podcasts-scraper, scrapemint/podcast-charts-tracker, solidscrape/apple-podcasts-scraper, stevenkramp/apple-podcasts-scraper, straightforward_hydra/apple-podcasts-reviews-scraper (reviews only), taroyamada/apple-podcast-episode-watchlist, tidynest/podcast-reviews-multi-country, usta/podcast-rss-episodes. Own price re-verified live first: flat $0.001/result, no start fee, zero drift. All verified live 2026-10-06.
A hand-curated term sweep (cycle 1414 — promoted this niche into our own tooling's curated search-term list, 7 extra terms beyond the base phrase "apple podcasts": "itunes podcast", "podcast scraper", "podcast directory", "podcast charts", "podcast rss", "podcast episodes", plus the variant forms) widened the raw listings seen from 149 to 282 without changing the 108 matched-and-priced count — nearly everything the wider search turned up was already named or out of scope. Exactly one genuinely new handle surfaced: tidytools/app-store-top-charts (2 users, primarily an App Store ASO/keyword-rank tracker) whose chart-entry billing event explicitly covers "one app (or podcast) in a chart" — flat $0.0005 (Free) down to $0.0004 (Diamond), no Actor-start fee, half our flat $0.001/row on the charts data type specifically. It has no episodes, reviews, search or publisher coverage at all, so the undercut is scoped to chart rows only. recordsdata/apple-podcasts-scraper (2 users, charts + search) was also newly surfaced but is dearer at every tier on both its events: $0.004/chart-record, $0.0025/podcast-record, well above our flat rate. All verified live 2026-10-08.
A fresh full-niche resweep (cycle 1449, verified live 2026-10-09) widened the raw listings seen from 282 to 285 on the same 17 hand-curated search terms, with the matched-and-priced count unchanged at 108 and, for the first time on this niche, 0 unnamed — every matched listing is already named above. Own price re-verified live first: flat $0.001/result, no Actor-start fee, unchanged.
A much wider resweep (cycle 2121, verified live 2026-10-23) found the niche has grown sharply since 1449: 919 seen / 135 matched on the same 17 terms (up from 285/108), with 34 unnamed (33 live-priced individually, one the self-listing). Own price re-verified live first: flat $0.001/result, no Actor-start fee, unchanged since 2026-09-10. Two new full-category undercutters, cheaper than us at every tier including Free, no caveat: axiomworks/apple-podcasts-scraper (2u) prices every row at $0.0005 (Free) down to $0.00035 (Gold+), 50-65% under us, with only a reserved $0.00005 Actor-start fee; tidyharvest/podcast-scraper (2u) prices podcasts at $0.0009 → $0.00045 and episodes at $0.0004 → $0.0002, 10-80% under us on both units, no start fee. Six more undercut us on episode rows only (podcasts/shows tie or cost more), the same split-event shape documented above: openharvest/podcast-scraper (3u, episode $0.0003, podcast $0.001 — ties on podcasts, 70% off episodes), northbell/apple-podcasts-scraper (2u, episode $0.0005 → $0.0004, podcast $0.0015 → $0.0012 dearer), pinkish_armada/apple-podcasts-scraper (2u, episode $0.0002 — 80% off, podcast $0.001 ties), pankajbhatia/apple-podcasts-scraper (2u, episode $0.0003, podcast $0.002 dearer), funny_ground/podcast-rss-episodes-scraper (2u, episodes-only product, flat $0.0005), and owlabee/podcast-rss-scraper (2u, episode $0.0005, show $0.001 ties, also sells a transcript-fetched add-on we do not offer). Two sub-floor 1-user listings are cheaper too but not individually disclosed per the Apify-pins-new-listings-at-1-2-users rule: v0iddo/itunes-podcast-search (search-only, $0.0002/result) and jeffev/podcast-scraper (episode $0.0005 → $0.00035, podcast $0.003 dearer). One new listing checked and ruled not an undercutter despite sharing an owner handle already named elsewhere in this README: accountable_eel/apple-podcasts-chart-monitor (2u, a different listing from accountable_eel/podcast-lookup) prices chart entries at $0.003 → $0.0015, dearer than us at every tier. The rest of the 33 priced listings (pinkish_armada/audio-transcriber, tubetext/any-video-podcast-transcript, tubetext/podcast-transcript, catalyst-labs/podcast-transcript-api, northloop-labs/podcast-transcriber, owlabee/podcast-episode-summarizer, snappytools/podcast-leads-scraper, varnmill/podcast-leads-scraper, tiger19935/podcast-video-transcriber-rag, enisbodlli/podcast-audio-transcriber, datagleaner/podcast-email-finder, prime619/podcast-transcript-fetcher, tracefetch/podcast-transcript, himanshu-data/audio-podcast-transcriber, neverempty/speech-to-text-from-links, tagadanar/media-transcriber, prime619/podcast-transcriber, adaptive_nightmare/podcast-lead-finder) are transcription/lead-gen products, the same excluded categories already ruled out above; mediapro-tools/podcast-directory-finder (flat $0.004/show), codingfrontend/apple-podcast-episodes-scraper ($0.00399/episode), winterlock/apple-podcasts-scraper (ties on episode/review at $0.001, dearer on shows at $0.005) and one_dollar_store/podcast-episodes-scraper (ties exactly at $0.001) are in-scope but dearer or at parity, not undercutters.
What we do not claim. We are not the cheapest listing in this niche at every volume, and after the 2026-10-06 full-tail sweep that is a bigger list than it used to be. chrisp1211/podcast-scraper-max is simply cheaper than us at every volume with no caveat at all (flat $0.0008/record, no start fee); gio21/apple-podcasts-scraper is 10x cheaper on chart rows; leorochasantos/itunes-podcast-scraper is cheaper on both shows and episodes past a few rows per run. As of the cycle 2121 resweep, axiomworks/apple-podcasts-scraper ($0.0005 → $0.00035/row) and tidyharvest/podcast-scraper ($0.0009/$0.0004 podcast/episode) are also cheaper than us at every tier with no caveat, and openharvest/podcast-scraper, northbell/apple-podcasts-scraper, pinkish_armada/apple-podcasts-scraper, pankajbhatia/apple-podcasts-scraper, funny_ground/podcast-rss-episodes-scraper and owlabee/podcast-rss-scraper undercut us on episode rows specifically. shahidirfan/Apple-Podcasts-Scraper charges $0.00099/result plus a one-time $0.0005 Actor-start fee — below our $0.001/result past roughly 50 total rows in a run (its start fee is the only thing keeping it from beating us sooner). As detailed above, automation-lab/podcast-scraper, bovi/podcast-scraper, ninhothedev/apple-podcasts-scraper, cirkit/apple-podcasts-search-scraper, and — on episodes and/or reviews specifically — scrapesage/apple-podcasts-scraper, everyotherfriday/podcast-directory, gazidev/podcast-scraper, deriverge/apple-podcasts-scraper, jonoworks/podcast-directory-scraper, pistachio_implementation/apple-podcasts, chorelet/podcast-episodes-scraper, randy-tools/apple-podcasts-scraper and rowfeed/apple-podcasts-scraper, and — from Bronze up — omao/podcast, steadydata/apple-podcasts-episodes, steadydata/apple-podcasts-top-charts, webdatatools/podcast-lookup and (Platinum/Diamond only) glitchbound/podcast-scraper all undercut us at real run volumes or specific tiers too. What we do claim is the breadth none of them matches: episodes, reviews, keyword search, per-storefront top-show and trending-episode charts, publisher slates, RSS full-archive mode and a new-episode watch mode in one Actor, with no start fee. We have not run any of these Actors ourselves; every price above is read from each Actor's own live Store pricing record, not from its marketing copy. Verified live 2026-10-06.
Built by FetchSmith — fast, HTTP-only scrapers with honest pricing. Questions or a field you need? Email support@fetchsmith.com.
Related guides
Engineering write-ups behind this Actor:
- Apple Podcasts has a public JSON API — four endpoints, no key, and one that doesn't exist
- Apple's podcast API tells you a show has 2,752 episodes and then hands you 44 — the episode ceiling is 200 and clamps silently,
offsetis inert everywhere, and for high-frequency shows the index is decimated rather than truncated; useuseRssForFullArchive, and compareepisodeCountagainst the rows you got. - Four ways an invisible character makes a scraper return zero rows
- We nearly charged our own buyers twice for rows they'd already paid for — a capped watch-mode baseline can silently evict old-but-current ids on a high-volume run, re-delivering (and re-billing) rows already paid for.
- Eight ways an "only new since last run" watch mode silently stops working — the fleet-wide survey of watch-mode failure shapes across all nineteen incremental Actors, this one included.
- Substack, Apple Podcasts, Google News and Hacker News — four free APIs where the first response isn't the finished product — how this Actor's second-step trap compares to the other three content platforms we scrape.
More tools: fetchsmith.com/tools
Source code: https://github.com/Fetchsmith/fetchsmith/tree/main/actors/apple-podcasts-scraper