๐๏ธ Podcast Directory Scraper โ Host Contacts & Emails
Pricing
from $17.50 / 1,000 results
๐๏ธ 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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
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.
| Data | Fields | What you get |
|---|---|---|
| ๐ Identity | podcastId, title, author, description | Apple Podcasts show ID, show name, host or author, description |
| ๐ Category and language | categories, language, storefront, countryOfOrigin | Categories, language code, store country searched, country of origin |
| ๐ง Episodes | episodeCount, seasonCount, episodes, matchedEpisodes | Counts, recent episode list (when switched on), episodes that matched an episode keyword |
| ๐ Activity | firstPublishedDate, lastEpisodeDate, daysSinceLastEpisode, episodeFrequency, medianGapDays, appleReleaseFrequency, isActive, isCompleted | First and latest episode dates, measured cadence and gap, store-listed frequency, active and ended flags |
| ๐บ Show type | showType, mediaKinds, contentRating, accessType, hasPaidSubscription | Show type, media kinds, explicit or clean rating, access type, paid option flag |
| โญ Audience | ratingAverage, ratingCount, ratingHistogram, popularityTier | Rating, number of ratings, optional star breakdown, popularity level |
| ๐ Links | applePodcastsUrl, websiteUrl, artworkUrl, feedUrl, feedGuid, feedError, isLockedFeed, fundingUrl | Apple Podcasts page, website, artwork, RSS feed address and ID, feed note, locked flag, support link |
| ๐ค People | ownerName, people | Owner name and credited hosts with roles |
| ๐ง Contact | ownerEmail, emailSource, emailType, emailScore, alternateEmails, contactability | Best host email, where it was found, type, confidence 0 to 100, up to three alternates, reachability label |
| ๐ Social | socialLinks, hasSocial | Show-level profile links by platform |
| ๐ Lead quality | leadScore, dataQuality, hasEmail, hasWebsite | Outreach score, data quality grade, yes or no flags |
| ๐งญ Discovery | source, discoveryMode, searchTerm, chartRank, scrapedAt | How the show was found, the matched keyword, chart position, collection time |
Note: Host emails exist only for shows that publish one, so
ownerEmailis empty for many rows. Fields a show does not publish come back empty.episodesstays empty unless episode listings are on,socialLinksis empty when social links are off, andratingHistogramis 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.
- Create a free Apify account with your email.
- Open Podcast Directory Scraper.
- Add your topics to
searchTerms, or paste Apple Podcasts links, show IDs or feed addresses intourlsand switchmodeto match. - Set
maxResultsPerTermand thecountrystore, then add filters such asrequireEmailoractiveOnly. - Click Start and wait for the run to finish. Rows appear in the dataset while it runs.
- 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.
| Plan | Price per podcast | Price 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"}
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
๐ searchTerms | array | No | [] | Topics, niches or show names, one per line (up to 100) |
๐ urls | array | No | [] | Apple Podcasts links, bare show IDs or feed addresses |
๐ podcastIds | array | No | [] | Bare show IDs, processed together with urls |
๐ฌ maxResultsPerTerm | integer | No | 50 | Podcasts per keyword, 1 to 1000 (prefill 25) |
๐ country | string | No | us | Two-letter store country code |
๐ mode | string | No | search | search, episodes, charts or ids |
๐ง episodeSearchTerms | array | No | [] | Phrases to find in episodes; empty reuses searchTerms |
๐ chart | string | No | top-series | top-series, top or top-subscriber (charts mode) |
๐ chartGenres | array | No | [] | Category names for charts mode; empty means every top-level category |
๐งฎ maxPodcasts | integer | No | 0 | Total cap on saved podcasts; 0 means no limit |
๐ก fetchRss | boolean | No | true | Look up each show's feed details for host email, owner, cadence and episodes |
๐ scrapeWebsite | boolean | No | true | Also look for a contact address on the show website |
๐ websiteMaxPages | integer | No | 2 | Extra contact or about pages to check, 0 to 10 |
๐ includeSocialLinks | boolean | No | true | Collect show social profiles |
๐ป includeEpisodes | boolean | No | false | Add recent episodes to each row |
๐ข maxEpisodesPerShow | integer | No | 10 | Episodes per show; 0 returns every episode |
๐ includeRatingHistogram | boolean | No | false | Add the 1 to 5 star vote counts |
๐ข activeOnly | boolean | No | false | Keep shows with an episode in the last 90 days |
๐ activeWithinDays | integer | No | 0 | Own activity window in days; overrides activeOnly; 0 is off |
๐ซ excludeCompleted | boolean | No | false | Skip shows flagged as ended |
๐ง requireEmail | boolean | No | false | Keep only shows with a host email |
๐ requireWebsite | boolean | No | false | Keep only shows with a website |
๐ excludeExplicit | boolean | No | false | Skip explicit shows |
๐ minLeadScore | integer | No | 0 | Minimum lead score, 0 to 100 |
๐ง minEpisodes | integer | No | 0 | Minimum number of episodes |
๐ณ minRatingCount | integer | No | 0 | Minimum number of ratings |
โญ minRating | number | No | 0 | Minimum star rating, 0 to 5 |
๐ท emailTypes | array | No | [] | Keep only role, personal, generic or platform emails |
๐
frequencies | array | No | [] | Keep only daily, multiple-per-week, weekly, biweekly, monthly, irregular or infrequent |
๐ฃ languages | array | No | [] | Two-letter language codes such as en |
๐ categoryFilter | array | No | [] | Category names; partial matches count |
๐ฆ proxyConfiguration | object | No | {"useApifyProxy": false} | Proxy configuration; leave the default unless you need a specific setup |
โก concurrency | integer | No | 8 | Shows processed in parallel, 1 to 25 |
โธ requestDelaySeconds | number | No | 0 | Seconds between requests, 0 to 10 |
โป maxRetries | integer | No | 3 | Attempts per request, 1 to 10 |
๐ฌ maxScanned | integer | No | 20000 | Stop after examining this many shows; 0 means no limit |
โฑ maxRunSeconds | integer | No | 0 | Stop 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,
idswith emptyurlsandpodcastIds), 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": truewith"minLeadScore": 60for 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
emailScoreandleadScoreare 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
includeEpisodesis on, each entry inepisodeshastitle,description,publishDate,duration,audioUrl,episodeNumber,seasonNumber,guid,transcriptUrlandguests. - 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
fetchRssfor a fast metadata-only run, but note that host emails then come only from the show website. - Keep
includeEpisodesoff for smaller rows. - Use
requireEmail,minLeadScoreandactiveOnlyso you only pay for contactable, active shows. - Set
maxPodcastsandmaxRunSecondsas 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 ApifyClientclient = 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
| Actor | Use it to |
|---|---|
| ๐ง Google Maps Email And Phone Number Scraper | Collect emails and phone numbers for businesses on Google Maps |
| ๐ Google Maps Leads Scraper | Scrape 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 Checker | Scrape Dubai real estate listings and get the DLD-verified unit number, RERA permit status, price, size and agent contacts. |
| ๐ Website Lead Intelligence | Find the right person at a company website, verified |
| ๐ Netflix Search Scraper | Search the Netflix catalogue and export movies & series with IMDb ratings, votes, awards and plot, genres, cast & crew, season/episode breakdowns... |
FAQ
Is it legal to scrape Apple Podcasts?
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.