Apple Podcasts Scraper
Pricing
from $0.35 / 1,000 results
Apple Podcasts Scraper
Find Apple Podcasts shows by keyword, category chart, or show URL and ID. Records include titles, publishers, genres, ratings, descriptions, owner contact details, websites, and latest episodes. Enriches directory data with ratings from show pages and episode details from public RSS feeds.
Pricing
from $0.35 / 1,000 results
Rating
0.0
(0)
Developer
Axiom Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Returns: one row per podcast show with title, publisher, primaryGenre, ratingAverage, ratingCount, ownerEmail, websiteUrl and latestEpisodes.
Input: {"searchTerms": ["marketing"], "country": "us", "maxItems": 10}
Best for: podcast guest outreach and sponsor lead lists, category chart tracking, podcast market research.
{"podcastId": 1588397602,"title": "Marketing Happy Hour","publisher": "Marketing Happy Hour","primaryGenre": "Marketing","ratingAverage": 4.8,"ratingCount": 79,"ownerEmail": "cassie@cammmedia.com","websiteUrl": "https://www.marketinghappyhr.com/"}
What does Apple Podcasts Scraper do?
Apple Podcasts Scraper collects podcast shows from the Apple Podcasts directory and returns one clean record per show. You can find shows three ways: by keyword search (the same search as the Apple Podcasts app), by category chart (the top shows in a genre such as True Crime or Business, in any country storefront), or by giving Apple Podcasts show URLs or numeric show ids directly.
Every record combines three public sources. The iTunes Search and Lookup API gives the show's identity: title, publisher, genres, episode count, artwork, explicit flag and the date of the newest episode. The show's Apple Podcasts page adds the star rating, the number of ratings and the full description. The show's own public RSS feed adds the owner name and contact email the podcaster publishes for directories, the website, the language, the number of episodes in the feed and the newest episodes with their audio links. No login or Apple account is needed.
Use it as an Apple Podcasts scraper or a simple Apple Podcasts API: shows about "marketing" in the US, the top True Crime shows in the UK, or details for a list of show URLs, exported to JSON, CSV or Excel.
What data can you get from Apple Podcasts?
| Field | Description | Example |
|---|---|---|
id | Apple Podcasts show id as a string, unique within a run | "1588397602" |
podcastId | Apple Podcasts show id (collectionId) | 1588397602 |
title | Show name | Marketing Happy Hour |
publisher | Publisher or host name shown on Apple Podcasts | Marketing Happy Hour |
artistId | Apple artist id of the publisher (empty for most independent shows) | 121664449 |
appleUrl | Apple Podcasts show page, without the tracking query | https://podcasts.apple.com/us/podcast/marketing-happy-hour/id1588397602 |
feedUrl | The show's public RSS feed | https://anchor.fm/s/50d9d294/podcast/rss |
artworkUrl | Cover art, 600x600 | https://is1-ssl.mzstatic.com/.../600x600bb.jpg |
primaryGenre | Main Apple Podcasts category | Marketing |
genres | All categories of the show | ["Marketing", "Podcasts", "Business"] |
genreIds | Apple genre ids matching genres | ["1492", "26", "1321"] |
episodeCount | Number of episodes Apple lists | 286 |
latestReleaseDate | Release time of the newest episode (ISO 8601) | 2026-10-01T09:00:00Z |
explicit | True when Apple marks the show explicit | false |
contentAdvisoryRating | Apple's content rating | Clean |
country | Three-letter storefront country | USA |
searchTerm | The search term that found the show (search mode only) | marketing |
chartRank | Position in the category chart (chart mode only) | 3 |
inputType | Which input produced the record: search, chart or podcast | search |
ratingAverage | Average star rating on Apple Podcasts (0-5) | 4.8 |
ratingCount | Number of star ratings | 79 |
description | Show description from the Apple Podcasts page | Keeping up with marketing trends… |
ownerName | Owner name from the RSS feed | Marketing Happy Hour |
ownerEmail | Public owner contact email from the RSS feed | cassie@cammmedia.com |
websiteUrl | Show website from the RSS feed | https://www.marketinghappyhr.com/ |
language | Language code from the RSS feed | en |
feedEpisodeCount | Number of episodes in the RSS feed | 286 |
latestEpisodes | Newest episodes: title, publishedAt, durationSeconds, audioUrl | see the output example |
scrapedAt | When the record was produced (ISO 8601) | 2026-10-13T19:02:17.367Z |
sourceUrl | The iTunes Search or Lookup API URL the record came from | https://itunes.apple.com/search?term=marketing&… |
episodeCount is Apple's own count, and feedEpisodeCount counts the episodes in the RSS feed. They often match, but they can differ: some feeds keep only recent episodes, and some shows have episodes Apple no longer lists.
How to use Apple Podcasts Scraper
- Open Apple Podcasts Scraper in the Apify Console and go to the Input tab.
- Fill in at least one of the three inputs: Search terms (keywords), Category charts (pick genres such as True Crime or Business from the list) or Podcast URLs or ids (paste show URLs or numeric ids). You can combine them in one run.
- Choose the Country storefront (two letters, e.g.
us,gb,de). Search results, charts and ratings differ by country. - Set Maximum shows. It is one total across all your inputs, so
maxItems: 20with three search terms returns at most 20 shows in total. - Leave Include ratings and description and Include RSS feed data on for complete records, or turn them off for a faster run with only the iTunes API fields.
- Click Start. When the run finishes, open the Output tab and export the table as JSON, CSV, Excel, XML or HTML.
Tips: Apple's search returns at most about 100 shows per term and country. To collect more shows on a topic, add related terms ("marketing", "digital marketing", "content marketing") or more countries. Duplicates across terms are returned once. Category charts list up to 200 shows. Use genre 26 for the overall top podcasts chart. A show URL's country (/gb/podcast/...) is used for that show, whatever the country field says. Apple's APIs normally work without a proxy. If a run reports HTTP 403 or 429 (rate limiting), turn on Apify Proxy in the Proxy section and run again.
Input
| Field | Type | Required | Description |
|---|---|---|---|
searchTerms | array of strings | One of the three | Keywords to search shows by, e.g. ["marketing"]. |
genreIds | array of strings | One of the three | Apple podcast genre ids whose top chart to collect, e.g. ["1488"] for True Crime; 26 is the overall chart. |
podcastUrls | array of strings | One of the three | Apple Podcasts show URLs or bare numeric show ids. |
country | string | No | Two-letter storefront code, default us. |
countries | array of strings | No | Extra storefront codes, e.g. ["gb","de"]. Every search term and genre chart also runs in each of them plus country; each record's country field shows the storefront. Use it to go past Apple's ~100 shows per term and country. |
maxItems | integer | No | Maximum shows across all inputs, 1-10000, default 50. |
includeRatings | boolean | No | Read the show page for ratingAverage, ratingCount and description. Default true. |
includeFeed | boolean | No | Read the RSS feed for owner, website, language and episodes. Default true. |
latestEpisodesLimit | integer | No | Newest episodes to keep per show, 0-20, default 3. |
proxyConfiguration | object | No | Proxy for Apple requests, default none. RSS feeds are always fetched directly. |
Common genre ids: 1488 True Crime, 1321 Business, 1489 News, 1318 Technology, 1303 Comedy, 1545 Sports, 1301 Arts, 1304 Education, 1512 Health & Fitness, 1310 Music, 1324 Society & Culture, 1533 Science, 1487 History. The input form lists every Apple podcast genre and subgenre.
Example input that combines all three modes:
{"searchTerms": ["marketing"],"genreIds": ["1488"],"podcastUrls": ["https://podcasts.apple.com/us/podcast/the-daily/id1200361736","1322200189"],"country": "us","maxItems": 50,"includeRatings": true,"includeFeed": true,"latestEpisodesLimit": 3}
If an input can never work (no search term, genre or URL at all, or a country that isn't two letters), the run fails at once with a message saying what to fix. A search term with no matches, a chart that doesn't exist or a show id Apple doesn't know returns no shows for that entry and a warning in the log; the other entries still run.
Output
Each show is one item in the run's dataset. Here are two real records from a run with {"searchTerms": ["marketing"], "maxItems": 10} (descriptions shortened and one episode shown for space):
[{"id": "1588397602","podcastId": 1588397602,"title": "Marketing Happy Hour","publisher": "Marketing Happy Hour","artistId": null,"appleUrl": "https://podcasts.apple.com/us/podcast/marketing-happy-hour/id1588397602","feedUrl": "https://anchor.fm/s/50d9d294/podcast/rss","artworkUrl": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts211/v4/ea/a7/5c/eaa75c82-06cf-fe11-3161-68e39f7e487f/mza_7610324141478559814.jpg/600x600bb.jpg","primaryGenre": "Marketing","genres": ["Marketing","Podcasts","Business"],"genreIds": ["1492","26","1321"],"episodeCount": 286,"latestReleaseDate": "2026-10-01T09:00:00Z","explicit": false,"contentAdvisoryRating": "Clean","country": "USA","searchTerm": "marketing","chartRank": null,"inputType": "search","ratingAverage": 4.8,"ratingCount": 79,"description": "Keeping up with marketing trends and leveling up your career doesn’t have to be overwhelming. Don’t go at it alone. Marketing Happy Hour was created to help you navigate the corporate marketing world,…","ownerName": "Marketing Happy Hour","ownerEmail": "cassie@cammmedia.com","websiteUrl": "https://www.marketinghappyhr.com/","language": "en","feedEpisodeCount": 286,"latestEpisodes": [{"title": "How to Turn Social Media Virality into Community | Angela Trotti, Consultant + Founder of Jelly Seashells","publishedAt": "2026-10-08T09:03:00.000Z","durationSeconds": 1266,"audioUrl": "https://anchor.fm/s/50d9d294/podcast/play/127056305/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2026-9-7%2F433626566-44100-2-bf3d62666b6d7.mp3"}],"scrapedAt": "2026-10-13T19:02:17.367Z","sourceUrl": "https://itunes.apple.com/search?term=marketing&media=podcast&entity=podcast&country=us&limit=30"},{"id": "1569923210","podcastId": 1569923210,"title": "Marketing Made Simple","publisher": "StoryBrand.com","artistId": null,"appleUrl": "https://podcasts.apple.com/us/podcast/marketing-made-simple/id1569923210","feedUrl": "https://rss.libsyn.com/shows/350081/destinations/2860682.xml","artworkUrl": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts221/v4/51/f9/47/51f947e8-c136-a10d-8ba1-b224a46cabf0/mza_8709210704953623321.png/600x600bb.jpg","primaryGenre": "Marketing","genres": ["Marketing","Podcasts","Business","Entrepreneurship"],"genreIds": ["1492","26","1321","1493"],"episodeCount": 237,"latestReleaseDate": "2025-09-24T09:00:00Z","explicit": false,"contentAdvisoryRating": "Clean","country": "USA","searchTerm": "marketing","chartRank": null,"inputType": "search","ratingAverage": 4.6,"ratingCount": 290,"description": "Hello Hero Makers! For new marketing content from StoryBrand, check out the StoryBrand Podcast at https://podcasts.apple.com/us/podcast/the-storybrand-podcast/id1092751338\n\n\nEach week on the StoryBran…","ownerName": "Marketing Made Simple","ownerEmail": "hello@storybrand.com","websiteUrl": "http://storybrand.com","language": "en","feedEpisodeCount": 237,"latestEpisodes": [{"title": "StoryBrand Podcast #38: BIG NEWS—Introducing The StoryBrand Podcast","publishedAt": "2025-09-24T09:00:00.000Z","durationSeconds": 4322,"audioUrl": "https://traffic.libsyn.com/secure/marketingmadesimple/SBPOD_038_-_SB7_-_v1_Edit.mp3?dest-id=2860682"}],"scrapedAt": "2026-10-13T19:02:17.381Z","sourceUrl": "https://itunes.apple.com/search?term=marketing&media=podcast&entity=podcast&country=us&limit=30"}]
Download the dataset as JSON, CSV, Excel, XML, RSS or HTML from the Output tab or the API.
Fields that depend on a source that didn't answer are left empty (null) rather than guessed. For example, if a show's RSS feed is offline, its ownerName, ownerEmail, websiteUrl, language, feedEpisodeCount and latestEpisodes are empty, and the show is still returned with its Apple data. Shows with too few ratings have no ratingAverage on Apple, so it stays empty too.
How much does it cost to scrape Apple Podcasts?
Apple Podcasts Scraper is charged per result: one result is one podcast show in the dataset. You pay only for the shows returned, and maxItems caps how many that can be, so you always know the most a run can cost. Turning ratings or feed data on or off doesn't change the charge per show. See the Pricing tab for the current price.
Use with AI agents (MCP)
Connect Apple Podcasts Scraper to Claude, Cursor or any MCP client through the Apify MCP server:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=axiomworks/apple-podcasts-scraper"}}}
Example prompts:
- "Find 30 marketing podcasts in the US Apple Podcasts store and give me a table of title, publisher, rating count and owner email."
- "What are the top 20 True Crime podcasts in the UK right now? Include each show's chart position and how many episodes it has."
- "Look up these Apple Podcasts shows and tell me their latest episode titles and release dates: https://podcasts.apple.com/us/podcast/the-daily/id1200361736 and 1322200189."
An agent should pass at least one of
searchTerms,genreIdsorpodcastUrls, and setmaxItemsto the number of shows it needs.
Integrations and API
Run Apple Podcasts Scraper from your own code with the Apify API. Set APIFY_TOKEN to your Apify API token (send it in the Authorization header, never in the URL).
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("axiomworks/apple-podcasts-scraper").call(run_input={"searchTerms": ["marketing"],"country": "us","maxItems": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["ratingCount"], item["ownerEmail"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('axiomworks/apple-podcasts-scraper').call({genreIds: ['1488'],country: 'gb',maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const show of items) {// chartRank, title, ratingAverage}
cURL
curl -X POST "https://api.apify.com/v2/acts/axiomworks~apple-podcasts-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"podcastUrls": ["https://podcasts.apple.com/us/podcast/the-daily/id1200361736", "1322200189"], "maxItems": 5}'
Make, Zapier, n8n, Google Sheets and webhooks are on the Integrations tab, and runs can be scheduled.
FAQ
How many shows can I get for one search term?
Apple's search returns at most about 100 shows per term and country, and the Actor returns them in Apple's order. For more, add related terms or more countries; maxItems still caps the total.
Why is ownerEmail empty for some shows?
The email comes from the show's own RSS feed, where the podcaster may publish a contact address for directories. Some feeds don't include one, and some hosts use relay addresses (for example an acast forwarding address). The Actor never guesses an email.
Why are ratingAverage and ratingCount empty for some shows?
Apple shows a rating only once a show has enough ratings in that storefront. New or small shows, and shows outside their home country, often have none. Ratings are per storefront, so the same show can have different ratings in us and gb.
What is the difference between episodeCount and feedEpisodeCount?
episodeCount is the count Apple's API reports; feedEpisodeCount counts the episodes in the show's RSS feed. Feeds that drop old episodes or that hold bonus content make the two differ.
Why did my run return 0 results?
The search term matched nothing in that country, the genre id has no chart in that storefront, or the show ids don't exist. The log and status message say which entry found nothing. Check the spelling, try the us storefront, or use a genre id from the input list.
Do I need a proxy? Usually not. Apple's APIs allow a modest request rate, and the Actor spaces its calls. If a run is rate-limited (HTTP 403 or 429), turn on Apify Proxy; retries then go out on a new IP. RSS feeds are always fetched directly from each podcast host.
Is it legal to scrape Apple Podcasts?
Apple Podcasts Scraper reads only public data: Apple's public iTunes Search and Lookup API, public show pages that load without an Apple account, and RSS feeds that podcasters publish so directories can list them. It doesn't log in, and it doesn't collect private information.
Some records contain personal data, such as an owner name or a contact email the podcaster chose to publish in their feed. If you store or use that data, you are responsible for following the laws that apply to you, such as the GDPR or CAN-SPAM, and for respecting each podcaster's terms. This is not legal advice; if you are unsure, ask a lawyer.
Apple Podcasts Scraper is an independent tool. It is not affiliated with, endorsed by or sponsored by Apple Inc. or Apple Podcasts.
Feedback
Found a bug or need a field that isn't here? Open an issue on the Issues tab and we'll look at it.