Apple Podcasts Scraper · Search, Charts, Episodes, Reviews
Pricing
from $1.08 / 1,000 podcasts
Apple Podcasts Scraper · Search, Charts, Episodes, Reviews
Apple Podcasts for any country: search podcasts, daily top charts, full podcast details, episodes with audio links and durations (latest 200 from Apple or the whole archive from the feed), listener reviews with ratings, since-last-run checkpoint. $1.80 per 1,000 podcasts, $0.60 per 1,000 episodes.
Pricing
from $1.08 / 1,000 podcasts
Rating
0.0
(0)
Developer
AgentsGearbox
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Security
Limited permissionsShare
Apple Podcasts Scraper
Apple Podcasts as rows, for any country: search shows by keyword, read the daily top charts, get full podcast details (publisher, genres, artwork, feed URL, episode count, latest release), the episodes with description, release date, duration and audio file URL (the latest 200 from Apple in one request, or the whole archive from the show's own feed with season and episode numbers), and the listener reviews with ratings from any storefront. A since-last-run checkpoint turns a daily schedule into a feed of new episodes. $1.80 per 1,000 podcasts, $0.60 per 1,000 episodes, $0.20 per 1,000 reviews. Summaries and errors are free. The first 25 results each month are free for every account.
Why this one
| This actor | |
|---|---|
| Four sources, one run | Search, charts, details, episodes and reviews, through the feeds Apple publishes for them: the Search and Lookup API, the charts feed, each show's RSS feed and the reviews feed. No browser, no login, no key. |
| Episodes that pipelines can use | Every episode carries its audio URL, file type, duration in seconds, description, release date and Apple page. episodeSource: "rss" reads the show's own feed for the complete archive with season and episode numbers. |
| Any storefront | countries runs searches, charts and reviews once per storefront (us, gb, de, it, br…); reviews differ per country, which matters for international shows. |
| Monitoring | onlyNewSinceLastRun remembers the newest episode date per podcast and returns only newer episodes next time. |
| Honest numbers | Apple publishes no aggregate rating for podcasts, so the actor does not invent one; with reviews on, the free summary carries the average of the reviews it fetched, per podcast. |
| Price | $0.0018 per podcast, $0.0006 per episode, $0.0002 per review, Apify's default $0.00005 start fee. No platform usage charged on top. |
What people use it for
- Transcription and summarisation pipelines: the audio URLs of this morning's new episodes, straight into Whisper or an LLM.
- Podcast PR and guest booking: shows by topic and country, with publisher, size, latest release and feed.
- Chart tracking: the top 200 in several countries every day, with positions, into a sheet.
- Listener sentiment: reviews and ratings of competing shows across storefronts.
- AI agents: "find podcasts about X and their latest episodes" as structured data through the Apify MCP server.
Example tasks
Ready-made configurations you can open, copy and run as they are:
- New episodes of the podcasts you follow, daily, with audio: two shows checked daily for new episodes with the checkpoint on.
Input
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | array | – | Podcast searches, one per line. |
podcasts | array | [] | Apple IDs (1434243584) or Apple Podcasts URLs. |
charts | array | [] | top, top-subscriber. |
chartSize | integer | 50 | Entries per chart and country, up to 200. |
countries | array | ["us"] | Storefront codes. |
maxPodcastsPerQuery | integer | 20 | Up to 200. |
includeEpisodes | boolean | true | One episode row per episode. |
episodeSource | string | apple | apple (latest 200, one request) or rss (whole archive, one request per show). |
maxEpisodesPerPodcast | integer | 50 | Newest first. |
episodesAfter | string | – | 2026-01-01, 7d, 30d, 12w. |
includeReviews | boolean | false | One review row per review, newest first, per country. |
maxReviewsPerPodcast | integer | 50 | Up to 500 per country. |
onlyNewSinceLastRun | boolean | false | Monitoring mode for episodes. |
checkpointStoreName | string | apple-podcasts-state | Key-value store for the checkpoints. |
At least one of searchQueries, podcasts or charts is required.
{"searchQueries": ["artificial intelligence"],"podcasts": ["1434243584", "https://podcasts.apple.com/us/podcast/the-daily/id1200361736"],"charts": ["top"],"chartSize": 50,"countries": ["us", "gb"],"includeEpisodes": true,"maxEpisodesPerPodcast": 10,"includeReviews": true,"maxReviewsPerPodcast": 50}
Output
Five record types share one dataset, told apart by type: podcast, episode, review (charged), summary and error (free). Real rows, long fields shortened:
{"type": "podcast","id": "1406537385","name": "Practical AI","publisher": "Practical AI LLC","url": "https://podcasts.apple.com/us/podcast/practical-ai/id1406537385?uo=4","feedUrl": "https://changelog.com/practicalai/feed","artwork": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts211/v4/…/600x600bb.jpg","genres": ["Technology", "Podcasts"],"primaryGenre": "Technology","episodeCount": 337,"latestReleaseDate": "2026-10-29T09:00:00.000Z","explicit": false,"contentRating": "Clean","country": "us","query": "artificial intelligence","chart": null,"chartPosition": null,"scrapedAt": "2026-11-02T14:05:12.000Z"}
{"type": "episode","podcastId": "1434243584","podcastName": "Lex Fridman Podcast","id": "1000798266396","guid": "https://lexfridman.com/?p=7807","title": "#503 – AI Crisis in Math: Navier-Stokes, Riemann Hypothesis & Complexity Theory","description": "…","releaseDate": "2026-10-26T22:52:28.000Z","durationSeconds": 13360,"audioUrl": "https://media.blubrry.com/takeituneasy/ins.blubrry.com/takeituneasy/lex_ai_math_ai_crisis.mp3","fileType": "mp3","url": "https://podcasts.apple.com/us/podcast/…/id1434243584?i=1000798266396&uo=4","seasonNumber": null,"episodeNumber": null,"episodeType": null,"explicit": false,"artwork": "https://is1-ssl.mzstatic.com/image/thumb/…/600x600bb.jpg","source": "apple"}
{"type": "review","podcastId": "1406537385","country": "us","id": "14674368862","rating": 1,"title": "Drunk on the Kool-Aid","text": "This podcast was decent for a while, but it's really tailed off recently…","author": "PHISHSIHd","date": "2026-10-16T17:57:18.000Z","voteSum": 0,"voteCount": 0,"url": "https://itunes.apple.com/us/review?id=1406537385&type=Podcast"}
| Field | Notes |
|---|---|
podcast.episodeCount, latestReleaseDate | As Apple reports them for the show. |
podcast.chart, chartPosition | Set when the podcast came from a chart. |
episode.durationSeconds, audioUrl, fileType | From Apple or the feed's enclosure. |
episode.seasonNumber, episodeNumber, episodeType | Only with episodeSource: "rss", when the feed states them. |
episode.source | apple or rss. |
review.rating | 1 to 5. Reviews are per storefront; voteSum and voteCount are Apple's helpfulness votes. |
summary (free, one per search, chart or podcast input): status (COMPLETE, PARTIAL, EMPTY, ERROR), podcastsFound, and per podcast the episodes and reviews delivered, the newest episode date, the average rating of the reviews fetched and a note when the feed failed and Apple's episodes were used instead.
error (free): {"type": "error", "target": "99999999999", "error": "Apple Podcasts has no podcast with ID 99999999999 in the us storefront."}
Pricing and cost examples
Try it free. The first 25 results each calendar month are free for every Apify account, with nothing to enter: the actor keeps count in a small key-value store in your account (free-slice-apple-podcasts-scraper) and charges only from the 26th on. The free results are real results you keep; the counter resets on the first of each month.
| Job | Rows | Cost |
|---|---|---|
| Daily new episodes of 50 shows, about 1 a day each (checkpoint on) | 50 podcasts + 50 episodes a day | $0.12 a day |
| Top 200 in 5 countries, podcasts only | 1,000 | $1.80 |
| 100 shows with their latest 100 episodes | 100 + 10,000 | $6.18 |
| Reviews of 20 shows, 200 each, 3 storefronts | 20 + 12,000 reviews | $2.44 |
Platform compute is included. A run that finds nothing new costs only Apify's $0.00005 start fee.
Discounts for paid Apify plans, applied automatically to the buyer's plan: Bronze 10% off, Silver 25% off, Gold and enterprise tiers 40% off the prices above. Free-plan users pay the listed price.
Monitoring: new episodes every morning
- Create a task from this actor with your shows in
podcasts,includeEpisodes: true,episodesAfter: "30d"for the first run andonlyNewSinceLastRun: true. - Add an Apify schedule (daily is plenty).
- Add an integration on the task: Slack, e-mail, Google Sheets, Make, Zapier, n8n or a webhook. Each run delivers only new episodes with their audio URLs; the
summarytells you per show what was found.
The checkpoint is the newest episode date per podcast, kept in the key-value store named in checkpointStoreName. To start over, change the name or delete the store.
Run it from your code
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('agentsgearbox/apple-podcasts-scraper').call({searchQueries: ['artificial intelligence'], countries: ['us'], maxPodcastsPerQuery: 10, includeEpisodes: true, maxEpisodesPerPodcast: 5,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((i) => i.type === 'episode').map((i) => [i.podcastName, i.title, i.durationSeconds, i.audioUrl]));
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("agentsgearbox/apple-podcasts-scraper").call(run_input={"charts": ["top"], "chartSize": 100, "countries": ["us", "gb", "de"], "includeEpisodes": False})podcasts = [i for i in client.dataset(run["defaultDatasetId"]).iterate_items() if i["type"] == "podcast"]
cURL (synchronous, returns the dataset):
curl -X POST "https://api.apify.com/v2/acts/agentsgearbox~apple-podcasts-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"podcasts": ["1434243584"], "includeEpisodes": true, "maxEpisodesPerPodcast": 10}'
For AI agents
Give your agent hands. Apple Podcasts pages are rendered applications; this actor returns the same data as JSON, priced per row and known in advance. "Find podcasts about longevity and give me the audio of their latest episode" becomes one tool call.
- MCP, this actor only: add
https://mcp.apify.com?tools=agentsgearbox/apple-podcasts-scraperto Claude Desktop, Claude Code, Cursor or any MCP client (with your Apify token), then ask for "the ten most popular podcasts about personal finance in the UK with their latest episode".
- MCP, all agentsgearbox actors:
https://mcp.apify.com?tools=agentsgearbox/telegram-channel-scraper,agentsgearbox/google-play-reviews-scraper,agentsgearbox/substack-scraper,agentsgearbox/google-news-scraper,agentsgearbox/brand-name-generator,agentsgearbox/ai-readiness-audit,agentsgearbox/company-lookup,agentsgearbox/app-intelligence,agentsgearbox/app-store-reviews-scraper,agentsgearbox/company-jobs-scraper,agentsgearbox/apple-podcasts-scraper,agentsgearbox/remote-jobs-scraper
- No Apify account? This actor is eligible for Apify's agentic payments: an agent can buy a spend-capped token through agi.apify.com (x402, MPP or Skyfire) and call the API directly.
- Prices are per row and known in advance, so the agent can set a spending limit; an unknown ID comes back as a free
errorrecord, not as a failed run.
Limitations, stated plainly
- Apple's lookup returns at most 200 episodes per show; for older episodes use
episodeSource: "rss", which reads the show's own feed (a few feeds are huge or protected, in which case the actor falls back to Apple's 200 and says so in the summary). - Apple publishes no aggregate rating or review count for podcasts; the average in the summary is computed from the reviews fetched.
- Apple's reviews feed holds at most 500 reviews per show and storefront, newest first, and serves no reviews at all for some shows.
- Apple's Search API allows about 20 requests a minute per IP; the actor paces itself, so a run over hundreds of shows takes minutes rather than seconds.
- Transcripts are not published by Apple; the audio URL is what you feed to a transcription model.
Troubleshooting
| Symptom | Cause and fix |
|---|---|
error: no podcast with ID … | Wrong ID or URL. The ID is the number after id in the show's Apple Podcasts URL. |
| 0 episodes with the checkpoint on | Nothing new since the last run. |
| Episodes stop at 200 | Apple's limit; switch episodeSource to rss. |
summary.note says the feed failed | The show's feed timed out or is not public; Apple's latest 200 were used. |
status: "PARTIAL" | Your spending limit for the run was reached. Raise it or lower the limits. |
Track record
- Published 2 November 2026 and tested every day since by an automated run on the Apify platform. The Store's run statistics on this page reflect those runs with a delay of up to a day.
- No browser, so a run cannot fail on Chrome crashes or memory limits.
- Every actor from this account is monitored daily, so a change on Apple's side is normally fixed the same day.
More from agentsgearbox
- Telegram Channel Scraper: public Telegram channels as JSON, no API key.
- Google Play Reviews Scraper: Google Play reviews with replies and versions, any market.
- Substack Scraper: Substack posts with full text and comments, custom domains too.
- Google News Scraper: Google News with real publisher URLs and full text.
- Brand & Business Name Generator: brand names verified live on domains, handles and app stores.
- AI Readiness Audit: how well AI search engines and agents can read a site: crawler access, llms.txt, structured data, content without JavaScript, scored with fixes.
- Company Lookup: one row per domain with legal identity and VAT validation, contacts, socials, tech stack, open jobs, apps, news and Wikidata facts.
- App Intelligence: App Store and Google Play in one run: search, top charts, full app details and each app's twin on the other store.
- App Store Reviews Scraper · iOS + Google Play, Any Country: Reviews of any iOS or Android app from both stores in one run: stars, text, version, votes, developer replies, since-last-run checkpoint, rating trend per app..
- Company Jobs Scraper: every open job on a company's careers page: nine applicant tracking systems, one schema, salaries where stated, hiring signals free.
- Remote Jobs Scraper: remote jobs from six boards and the Hacker News hiring thread in one schema, deduplicated, only-new mode for alerts.
All of them are pay-per-event, run without a browser, and are compared with their alternatives on agentsgearbox.com.
Support
Open an issue on this actor's Issues tab, usually answered within a day, or email support@agentsgearbox.com. More actors and daily comparisons of scrapers for 200+ websites at agentsgearbox.com.
Legal and fair use
This actor is an independent tool, not affiliated with or endorsed by Apple; Apple Podcasts is a trademark of Apple Inc., used only to name the service the actor reads. It uses Apple's public Search and Lookup API and feeds, each show's own RSS feed, which exists to be read by any client, and Apple's public reviews feed, without keys or logins, and it stores nothing on your behalf beyond your own Apify datasets. Episode audio and artwork belong to their publishers: link to them, play them in your own tools, analyse them, but do not re-host them as your own. Reviews are written by listeners; quote them with attribution.