๐ŸŽ™๏ธ Podcast Directory Scraper โ€” Host Contacts & Emails avatar

๐ŸŽ™๏ธ Podcast Directory Scraper โ€” Host Contacts & Emails

Pricing

from $17.50 / 1,000 results

Go to Apify Store
๐ŸŽ™๏ธ Podcast Directory Scraper โ€” Host Contacts & Emails

๐ŸŽ™๏ธ Podcast Directory Scraper โ€” Host Contacts & Emails

Turn Apple Podcasts searches, charts, or links into podcast host emails, websites, and social contacts. No API key needed. Get RSS-enriched leads with confidence-scored emails and an outreach lead score for podcast outreach and PR pitching.

Pricing

from $17.50 / 1,000 results

Rating

0.0

(0)

Developer

Data Minds

Data Minds

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Security

Limited permissions

Share

What is Podcast Directory Scraper?

Podcast Directory Scraper turns Apple Podcasts into a podcast host email list for podcast lead generation. Search by keyword, top chart or direct link, and get host emails, owner names, websites, social links, ratings, publishing frequency and a lead score for every show. Pay per podcast, from $0.0175 on the Gold plan.

Just enter a keyword and click Start. No coding needed, and the results stream into your dataset while the run is still going.

  • Podcast guest outreach: find active shows in your niche, keep only the ones with a host email, and pitch the best-scored shows first.
  • Podcast lead generation: build a podcast contact list for sales, PR or partnership teams and export it to your CRM.
  • Podcast sponsorship research: filter by rating count, rating and publishing frequency to shortlist shows with a real audience.
  • Podcast PR outreach: reach hosts and owners of shows that talked about your topic, even when the title never mentions it.
  • Podcast market research: compare categories, languages, ratings and release cadence across thousands of shows.
  • Podcast chart monitoring: pull the top shows per category for any of 175 country stores and track them over time.

Use it as a podcast email finder or podcast contact finder. Sales teams also use it as a podcast lead finder, and booking teams as a podcast guest finder.

Because it runs on Apify, you also get an API, scheduled runs, webhooks, integrations and exports in JSON, CSV, Excel, XML and HTML.

What can Podcast Directory Scraper do?

  • ๐Ÿ“ง Find podcast host emails with the best address per show, its type, a confidence score and up to three alternates
  • ๐Ÿ”Ž Discover shows four ways: keyword search, episode keyword search, top charts by category, or your own links and show IDs
  • ๐Ÿ† Score every lead from 0 to 100 and label its reachability, so you can work the best prospects first
  • ๐Ÿ“… Measure real publishing frequency from episode dates, then skip inactive or finished shows
  • โญ Add audience signals such as podcast ratings and rating count data, plus an optional 1 to 5 star breakdown
  • ๐Ÿ”— Collect podcast social media links and websites for each show
  • ๐Ÿงน Filter before you pay: shows removed by your filters are never saved and never charged
  • ๐Ÿ”Œ Export and automate with the Apify API, schedules and integrations

What data can Podcast Directory Scraper extract?

Each podcast becomes one dataset row with these fields.

DataFieldsWhat you get
๐Ÿ†” IdentitypodcastId, title, author, descriptionApple Podcasts show ID, show name, host or author, description
๐Ÿ—‚ Category and languagecategories, language, storefront, countryOfOriginCategories, language code, store country searched, country of origin
๐ŸŽง EpisodesepisodeCount, seasonCount, episodes, matchedEpisodesCounts, recent episode list (when switched on), episodes that matched an episode keyword
๐Ÿ“… ActivityfirstPublishedDate, lastEpisodeDate, daysSinceLastEpisode, episodeFrequency, medianGapDays, appleReleaseFrequency, isActive, isCompletedFirst and latest episode dates, measured cadence and gap, store-listed frequency, active and ended flags
๐Ÿ“บ Show typeshowType, mediaKinds, contentRating, accessType, hasPaidSubscriptionShow type, media kinds, explicit or clean rating, access type, paid option flag
โญ AudienceratingAverage, ratingCount, ratingHistogram, popularityTierRating, number of ratings, optional star breakdown, popularity level
๐Ÿ”— LinksapplePodcastsUrl, websiteUrl, artworkUrl, feedUrl, feedGuid, feedError, isLockedFeed, fundingUrlApple Podcasts page, website, artwork, RSS feed address and ID, feed note, locked flag, support link
๐Ÿ‘ค PeopleownerName, peopleOwner name and credited hosts with roles
๐Ÿ“ง ContactownerEmail, emailSource, emailType, emailScore, alternateEmails, contactabilityBest host email, where it was found, type, confidence 0 to 100, up to three alternates, reachability label
๐ŸŒ SocialsocialLinks, hasSocialShow-level profile links by platform
๐Ÿ† Lead qualityleadScore, dataQuality, hasEmail, hasWebsiteOutreach score, data quality grade, yes or no flags
๐Ÿงญ Discoverysource, discoveryMode, searchTerm, chartRank, scrapedAtHow the show was found, the matched keyword, chart position, collection time

Note: Host emails exist only for shows that publish one, so ownerEmail is empty for many rows. Fields a show does not publish come back empty. episodes stays empty unless episode listings are on, socialLinks is empty when social links are off, and ratingHistogram is empty unless the star breakdown is on.

What data can't Podcast Directory Scraper extract?

  • Audio downloads or transcript text. Episode rows carry links only, and listener or download counts are not part of the output.
  • Private contact details that a show does not publish.
  • Phone numbers. For business phone numbers, try the Google Maps scraper in the table near the end of this page.

How to scrape Apple Podcasts data

Podcast Directory Scraper is designed for an easy start, even if you have never extracted data from the web before.

  1. Create a free Apify account with your email.
  2. Open Podcast Directory Scraper.
  3. Add your topics to searchTerms, or paste Apple Podcasts links, show IDs or feed addresses into urls and switch mode to match.
  4. Set maxResultsPerTerm and the country store, then add filters such as requireEmail or activeOnly.
  5. Click Start and wait for the run to finish. Rows appear in the dataset while it runs.
  6. Open the Output tab, pick a view such as host contacts, and download your data in JSON, CSV, Excel, XML or HTML.

How much does it cost to scrape Apple Podcasts?

Podcast Directory Scraper uses pay-per-event pricing: you pay for each podcast saved to your dataset, and Apify platform usage is billed in addition. The price per podcast depends on your Apify plan.

PlanPrice per podcastPrice per 1,000 podcasts
๐Ÿ†“ Free$0.025$25.00
๐Ÿฅ‰ Bronze$0.0225$22.50
๐Ÿฅˆ Silver$0.02$20.00
๐Ÿฅ‡ Gold$0.0175$17.50

Each run also pays one start event of $0.00005 per GB of memory, with a minimum of one event. The default memory is 1 GB (1,024 MB), so the start event costs $0.00005 per run.

Example: 1,000 podcasts on the Gold plan cost 1,000 x $0.0175 = $17.50, plus the $0.00005 start event, with platform usage billed in addition.

Shows removed by your filters are not saved and not charged. You can also set a maximum spend per run on Apify, and the run stops cleanly when it is reached.

Is scraping Apple Podcasts free?

You can start without paying. The Apify Free plan includes a $5 monthly credit, which covers about 200 podcasts at the Free price of $0.025 ($5 / $0.025 = 200), before platform usage. For larger lists, a paid plan lowers the price per podcast. See the pricing tab for all events.


Input

All inputs are optional, but the chosen mode needs something to work on: keywords for search and episode modes, a chart for charts mode, or links and IDs for direct mode. Run settings such as concurrency and maxRetries have safe defaults. See the input tab for the full form.

This example finds up to 25 podcasts for one keyword in the US store:

{
"searchTerms": ["b2b saas marketing"],
"maxResultsPerTerm": 25,
"country": "us",
"mode": "search"
}
FieldTypeRequiredDefaultDescription
๐Ÿ”Ž searchTermsarrayNo[]Topics, niches or show names, one per line (up to 100)
๐Ÿ”— urlsarrayNo[]Apple Podcasts links, bare show IDs or feed addresses
๐Ÿ†” podcastIdsarrayNo[]Bare show IDs, processed together with urls
๐Ÿ“ฌ maxResultsPerTermintegerNo50Podcasts per keyword, 1 to 1000 (prefill 25)
๐ŸŒ countrystringNousTwo-letter store country code
๐ŸŽ› modestringNosearchsearch, episodes, charts or ids
๐ŸŽง episodeSearchTermsarrayNo[]Phrases to find in episodes; empty reuses searchTerms
๐Ÿ† chartstringNotop-seriestop-series, top or top-subscriber (charts mode)
๐Ÿ—‚ chartGenresarrayNo[]Category names for charts mode; empty means every top-level category
๐Ÿงฎ maxPodcastsintegerNo0Total cap on saved podcasts; 0 means no limit
๐Ÿ“ก fetchRssbooleanNotrueLook up each show's feed details for host email, owner, cadence and episodes
๐ŸŒ scrapeWebsitebooleanNotrueAlso look for a contact address on the show website
๐Ÿ“„ websiteMaxPagesintegerNo2Extra contact or about pages to check, 0 to 10
๐Ÿ”— includeSocialLinksbooleanNotrueCollect show social profiles
๐Ÿ“ป includeEpisodesbooleanNofalseAdd recent episodes to each row
๐Ÿ”ข maxEpisodesPerShowintegerNo10Episodes per show; 0 returns every episode
๐Ÿ“Š includeRatingHistogrambooleanNofalseAdd the 1 to 5 star vote counts
๐ŸŸข activeOnlybooleanNofalseKeep shows with an episode in the last 90 days
๐Ÿ—“ activeWithinDaysintegerNo0Own activity window in days; overrides activeOnly; 0 is off
๐Ÿšซ excludeCompletedbooleanNofalseSkip shows flagged as ended
๐Ÿ“ง requireEmailbooleanNofalseKeep only shows with a host email
๐ŸŒ requireWebsitebooleanNofalseKeep only shows with a website
๐Ÿ”ž excludeExplicitbooleanNofalseSkip explicit shows
๐Ÿ† minLeadScoreintegerNo0Minimum lead score, 0 to 100
๐ŸŽง minEpisodesintegerNo0Minimum number of episodes
๐Ÿ—ณ minRatingCountintegerNo0Minimum number of ratings
โญ minRatingnumberNo0Minimum star rating, 0 to 5
๐Ÿท emailTypesarrayNo[]Keep only role, personal, generic or platform emails
๐Ÿ“… frequenciesarrayNo[]Keep only daily, multiple-per-week, weekly, biweekly, monthly, irregular or infrequent
๐Ÿ—ฃ languagesarrayNo[]Two-letter language codes such as en
๐Ÿ—‚ categoryFilterarrayNo[]Category names; partial matches count
๐Ÿšฆ proxyConfigurationobjectNo{"useApifyProxy": false}Proxy configuration; leave the default unless you need a specific setup
โšก concurrencyintegerNo8Shows processed in parallel, 1 to 25
โธ requestDelaySecondsnumberNo0Seconds between requests, 0 to 10
โ™ป maxRetriesintegerNo3Attempts per request, 1 to 10
๐Ÿ”ฌ maxScannedintegerNo20000Stop after examining this many shows; 0 means no limit
โฑ maxRunSecondsintegerNo0Stop cleanly after this many seconds; 0 means no limit

Discovery mode

mode decides how shows are found. Use search to match show titles and authors, episodes to find shows that talked about a topic, charts for the store's top charts, and ids to use only your own links and IDs.

  • โœ… Good: "mode": "episodes" with "episodeSearchTerms": ["cold outreach"]
  • โŒ Bad: "mode": "episodes" with no keywords at all

Warning: If the selected mode has nothing to work on (for example, ids with empty urls and podcastIds), the run ends right away and saves nothing.

Filters that never charge you

Filters such as requireEmail, minLeadScore, activeOnly and languages are applied before a podcast is saved.

  • โœ… Good: "requireEmail": true with "minLeadScore": 60 for a short, contactable list
  • โŒ Bad: stacking many strict filters on a tiny keyword list, which can leave zero rows

Warning: If a strict filter combination rejects every show among the first 2,000 examined, the run stops early and names the filter that rejected the most.


Output

Results appear in the Output or Storage tab as a dataset, with one row per podcast. View them as a table, pick the fields you need, and download in JSON, CSV, Excel, XML or HTML. Ready-made views cover overview, host contacts, social profiles, ratings and popularity, publishing and activity, feed and links, episodes and people, lead quality, and discovery.

JSON example

Results for the input example above:

{
"podcastId": "1000000001",
"title": "Example SaaS Marketing Show",
"author": "Example Host",
"description": "Weekly conversations about B2B marketing.",
"categories": ["Business", "Marketing"],
"language": "en",
"storefront": "us",
"countryOfOrigin": "USA",
"episodeCount": 120,
"seasonCount": 3,
"firstPublishedDate": "2021-03-01",
"lastEpisodeDate": "2026-10-08",
"daysSinceLastEpisode": 9,
"episodeFrequency": "weekly",
"medianGapDays": 7.0,
"appleReleaseFrequency": "weekly",
"isActive": true,
"isCompleted": false,
"showType": "episodic",
"mediaKinds": ["audio"],
"contentRating": "clean",
"accessType": "free",
"hasPaidSubscription": false,
"ratingAverage": 4.8,
"ratingCount": 350,
"ratingHistogram": null,
"popularityTier": "medium",
"applePodcastsUrl": "https://podcasts.apple.com/us/podcast/example/id1000000001",
"feedUrl": "https://feeds.example.com/saas-marketing",
"feedGuid": "00000000-0000-0000-0000-000000000000",
"feedError": null,
"websiteUrl": "https://example.com",
"artworkUrl": "https://example.com/artwork.jpg",
"ownerName": "Example Owner",
"ownerEmail": "booking@example.com",
"emailSource": "rss_owner",
"emailType": "role",
"emailScore": 95,
"alternateEmails": ["hello@example.com"],
"people": [{"name": "Example Host", "role": "host", "url": null}],
"socialLinks": {"linkedin": "https://linkedin.com/company/example"},
"fundingUrl": null,
"isLockedFeed": false,
"leadScore": 88,
"dataQuality": "high",
"hasEmail": true,
"hasWebsite": true,
"hasSocial": true,
"contactability": "direct",
"source": "apple",
"discoveryMode": "search",
"searchTerm": "b2b saas marketing",
"chartRank": null,
"matchedEpisodes": null,
"episodes": [],
"scrapedAt": "2026-10-26T10:00:00+00:00"
}

Each run also saves a run-summary record in the key-value store with these keys: source, scrapedAt, mode, country, podcastsSaved, showsDiscovered, showsExamined, showsSkippedByFilters, withEmail, withWebsite, withSocialProfile, withRating, withPublishingFrequency, withEpisodeList, activeShows, alternateEmailsCollected, emailSources, emailTypes, contactability, filterRejections, perTerm, requestsMade and durationSeconds.

Notes and limitations

  • Host emails appear only when a show publishes one, and emailScore and leadScore are estimates that help you prioritise, not a guarantee of delivery.
  • Ratings, chart rank and episode keyword search can be limited in a run when extra show details are unavailable. The log tells you when that happens.
  • If you set minRating, a minimum rating count of 1 is applied automatically.
  • When includeEpisodes is on, each entry in episodes has title, description, publishDate, duration, audioUrl, episodeNumber, seasonNumber, guid, transcriptUrl and guests.
  • Very large episode lists are shortened so each row stays within the platform size limit.
  • Run time grows with the number of podcasts, and with feed, website and episode lookups switched on. Start with 10 to 25 podcasts to gauge the time for your settings.

Tips and advanced usage

How many podcasts can you scrape with Podcast Directory Scraper?

You control the size. maxResultsPerTerm accepts 1 to 1,000 per keyword, you can add up to 100 keywords, and maxPodcasts sets a total cap up to 100,000. The final count depends on your keywords, the store country and your filters, because shows that fail a filter are skipped. A quick test run with 10 to 25 podcasts shows what to expect.

How to get faster or cheaper results

  • Turn off fetchRss for a fast metadata-only run, but note that host emails then come only from the show website.
  • Keep includeEpisodes off for smaller rows.
  • Use requireEmail, minLeadScore and activeOnly so you only pay for contactable, active shows.
  • Set maxPodcasts and maxRunSeconds as safety limits.

Outreach tips

Run podcast host email verification before outreach, and follow podcast email outreach compliance rules for your region. To build a podcast contact list from top charts, use charts mode with chartGenres. To find podcasts by niche for guest appearances, use episodes mode with your topic.


Integrations and API

Can I use Podcast Directory Scraper as an API?

Yes. The Apify API gives you programmatic access to Podcast Directory Scraper: start runs, schedule them and fetch results. Use the apify-client package for Node.js or Python. The API tab has ready-to-use code.

How to scrape Apple Podcasts with Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("data_minds/podcast-directory-scraper").call(run_input={
"searchTerms": ["b2b saas marketing"],
"maxResultsPerTerm": 25,
"country": "us",
"mode": "search",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["ownerEmail"])

Can I integrate Podcast Directory Scraper with other apps?

Yes. Connect it through Apify integrations to tools such as Make, Zapier, Google Sheets and Slack. Use webhooks to trigger an action when a run finishes, and schedules to refresh your podcast contact list weekly or monthly.

Can I use Podcast Directory Scraper with AI agents (MCP)?

Yes. Connect it to Claude and other MCP clients through the Apify MCP server. Open the MCP tab for setup steps.


Other Apple Podcasts and lead scrapers

ActorUse it to
๐Ÿ“ง Google Maps Email And Phone Number ScraperCollect emails and phone numbers for businesses on Google Maps
๐Ÿ”— Google Maps Leads ScraperScrape Google Maps into ready-to-use business leads: name, address, phone, website, rating, hours, categories and socials.
๐Ÿ”— Dubai Real Estate Scraper โ€” Unit Number & DLD Permit CheckerScrape Dubai real estate listings and get the DLD-verified unit number, RERA permit status, price, size and agent contacts.
๐Ÿ”Ž Website Lead IntelligenceFind the right person at a company website, verified
๐Ÿ”— Netflix Search ScraperSearch the Netflix catalogue and export movies & series with IMDb ratings, votes, awards and plot, genres, cast & crew, season/episode breakdowns...

FAQ

Podcast Directory Scraper collects information that any visitor can see publicly. Legality still depends on your country, how you use personal data such as email addresses, and the platform terms. Read Apify's guide to web scraping legality and follow GDPR and CAN-SPAM rules before outreach. This is not legal advice.

How does Podcast Directory Scraper work?

You give it keywords, a chart or your own links, plus optional filters. The Actor builds a list of matching shows, adds ratings, activity and contact details where a show publishes them, scores each lead, and saves one row per podcast to your dataset while the run progresses. You can export the rows when it finishes.

How do I find a podcast host email?

Keep fetchRss and scrapeWebsite on, then add requireEmail to keep only shows with an address. Each row reports ownerEmail, its type, a confidence score and up to three alternates. Verify addresses before outreach, because shows publish contact details at their own discretion and many publish none.

Do podcasts have email addresses?

Many do, but not all. Hosts often publish a booking, press or hello address, and others publish only a website or social profiles. Podcast Directory Scraper saves the best address it finds, labels its type and confidence, and flags rows with no email so you can filter or follow up another way.

Why scrape podcast data?

Teams scrape podcast data for guest outreach, lead generation, sponsorship research, PR pitches, market research and chart monitoring. A structured dataset replaces hours of manual searching, lets you sort shows by lead score and activity, and makes it easy to refresh the same list on a schedule when new shows appear.

How do I get a podcast RSS feed?

Run a keyword search or add a show link, then read the feedUrl field in each row. It holds the show's RSS feed address when one is available. If a feed cannot be read, feedError explains why, and the show is still saved with the other details so you lose nothing.

Can I export podcast data to Excel or CSV?

Yes. Open the Output or Storage tab after the run and download JSON, CSV, Excel, XML or HTML. The host contacts and lead quality views give you contact-focused columns only. Rows are written as the run progresses, so you can also export partial results before it finishes.

Why am I getting fewer results than expected?

Filters such as requireEmail, activeOnly or minLeadScore remove shows, a keyword may have few matches in the chosen country, or maxResultsPerTerm and maxPodcasts may be low. Check the log for the progress line that counts shows skipped by your filters, then widen the keyword or relax a filter.

Is Podcast Directory Scraper not working?

Open the Issues tab on the Actor page and include your run link and input, without secrets. Before that, read the log. It names the likely cause, such as missing keywords for the selected mode, a filter that is too strict, or a country code that is not supported.


Support and feedback

Found a bug or have a feature request? Please create an issue on the Issues tab.

Need a custom solution or more data? Contact us at hello.dataminds@gmail.com.

Built and maintained by the data_minds team on Apify. Podcast Directory Scraper is independent and not affiliated with Apple. Apple Podcasts and other trademarks belong to their owners. It collects publicly available data from the public Apple Podcasts site, and you are responsible for complying with applicable laws and the site's terms.