Apple Podcasts Scraper avatar

Apple Podcasts Scraper

Pricing

from $0.35 / 1,000 results

Go to Apify Store
Apple Podcasts Scraper

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

Axiom Works

Maintained by Community

Actor 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?

FieldDescriptionExample
idApple Podcasts show id as a string, unique within a run"1588397602"
podcastIdApple Podcasts show id (collectionId)1588397602
titleShow nameMarketing Happy Hour
publisherPublisher or host name shown on Apple PodcastsMarketing Happy Hour
artistIdApple artist id of the publisher (empty for most independent shows)121664449
appleUrlApple Podcasts show page, without the tracking queryhttps://podcasts.apple.com/us/podcast/marketing-happy-hour/id1588397602
feedUrlThe show's public RSS feedhttps://anchor.fm/s/50d9d294/podcast/rss
artworkUrlCover art, 600x600https://is1-ssl.mzstatic.com/.../600x600bb.jpg
primaryGenreMain Apple Podcasts categoryMarketing
genresAll categories of the show["Marketing", "Podcasts", "Business"]
genreIdsApple genre ids matching genres["1492", "26", "1321"]
episodeCountNumber of episodes Apple lists286
latestReleaseDateRelease time of the newest episode (ISO 8601)2026-10-01T09:00:00Z
explicitTrue when Apple marks the show explicitfalse
contentAdvisoryRatingApple's content ratingClean
countryThree-letter storefront countryUSA
searchTermThe search term that found the show (search mode only)marketing
chartRankPosition in the category chart (chart mode only)3
inputTypeWhich input produced the record: search, chart or podcastsearch
ratingAverageAverage star rating on Apple Podcasts (0-5)4.8
ratingCountNumber of star ratings79
descriptionShow description from the Apple Podcasts pageKeeping up with marketing trends…
ownerNameOwner name from the RSS feedMarketing Happy Hour
ownerEmailPublic owner contact email from the RSS feedcassie@cammmedia.com
websiteUrlShow website from the RSS feedhttps://www.marketinghappyhr.com/
languageLanguage code from the RSS feeden
feedEpisodeCountNumber of episodes in the RSS feed286
latestEpisodesNewest episodes: title, publishedAt, durationSeconds, audioUrlsee the output example
scrapedAtWhen the record was produced (ISO 8601)2026-10-13T19:02:17.367Z
sourceUrlThe iTunes Search or Lookup API URL the record came fromhttps://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

  1. Open Apple Podcasts Scraper in the Apify Console and go to the Input tab.
  2. 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.
  3. Choose the Country storefront (two letters, e.g. us, gb, de). Search results, charts and ratings differ by country.
  4. Set Maximum shows. It is one total across all your inputs, so maxItems: 20 with three search terms returns at most 20 shows in total.
  5. 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.
  6. 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

FieldTypeRequiredDescription
searchTermsarray of stringsOne of the threeKeywords to search shows by, e.g. ["marketing"].
genreIdsarray of stringsOne of the threeApple podcast genre ids whose top chart to collect, e.g. ["1488"] for True Crime; 26 is the overall chart.
podcastUrlsarray of stringsOne of the threeApple Podcasts show URLs or bare numeric show ids.
countrystringNoTwo-letter storefront code, default us.
countriesarray of stringsNoExtra 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.
maxItemsintegerNoMaximum shows across all inputs, 1-10000, default 50.
includeRatingsbooleanNoRead the show page for ratingAverage, ratingCount and description. Default true.
includeFeedbooleanNoRead the RSS feed for owner, website, language and episodes. Default true.
latestEpisodesLimitintegerNoNewest episodes to keep per show, 0-20, default 3.
proxyConfigurationobjectNoProxy 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:

  1. "Find 30 marketing podcasts in the US Apple Podcasts store and give me a table of title, publisher, rating count and owner email."
  2. "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."
  3. "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, genreIds or podcastUrls, and set maxItems to 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 ApifyClient
client = 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.

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.