Apple Podcasts logo

Video & audio · Live on Apify

Apple Podcast Directory and RSS Contacts Scraper

Find podcasts on Apple by keyword or ID, or read a public RSS feed. You get show data, recent episodes and published contacts. It never guesses emails.

About $1.01 for 1,000 podcasts$0.001 per podcast + $0.0132 per run. Apify bills you, not us.One podcast in a run of its own: about $0.01.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

stableIdapple:1253186678
applePodcastId1253186678
titleSyntax - Tasty Web Development Treats

How to use it: 3 steps

  1. Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: [] in Apple search queries. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Export Apple podcast directory metadata and public RSS contacts with the feed field and URL behind each contact. Search by keyword, use an Apple ID, or supply a public RSS/Atom feed. A contact can be missing. This Actor does not guess emails.

Who uses it

PR and guest bookers

Build a shortlist of active shows on a topic.

Podcast marketers

Check how often a show publishes new episodes.

Media researchers

Export show categories and feed data for analysis.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Podcast result$0.001One unique podcast row with parsed public RSS/Atom feed data and status PODCAST_FOUND, NO_OWNER_CONTACT or PARTIAL.
Start fee$0.0132Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more.

Examples

  • One podcast: about $0.01.
  • 1,000 podcasts: about $1.01.
  • Every day 100 podcasts, for 30 days: about $3.40 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 4,900 podcasts.

Prices checked on 24 October 2026. See the current price on Apify.

Questions

Does every podcast have an email?

No. The tool reads only contacts written in the public feed. It does not guess or check emails.

Does it work with Spotify?

No. It reads Apple catalog data and public RSS or Atom feeds.

Can I download episode audio?

No. It reads metadata only, without audio links.

Can I email these contacts freely?

A public contact is not consent. Check the source and the laws in your country first.

Do I need an Apple or Spotify account?

No source account or API key is needed. Spotify is not supported. You need an Apify account to start a run.

Will two runs return the same data?

Live catalogs and feeds can change. IDs and deduplication rules stay stable for the same sources; dates, order, contacts and activity can change. Each run has its own observation time.

Can I use a contact for outreach?

A public contact does not establish consent. Check the source, purpose and applicable rules before contacting anyone. The Actor does not send emails or fill forms.

Details

Step by step on Apify
  1. Open Input. The new form suggests Apple podcast ID 1253186678 (Syntax).
  2. Leave the suggested ID for a small first run, or replace it with your source.
  3. Start the Actor. Open Results to see the Dataset.
  4. Read status, partial, and the contact source fields before using a row.
Use cases
TaskInputFields to use
Find shows about a topicsearchQueries, countryapplePodcastId, title, matchedQueries
Check a known showapplePodcastIds or applePodcastUrlsfeedUrl, status, latestEpisodeDate
Check a public RSS contactfeedUrlsownerEmail, contactEmail, contactSourceField, contactSourceUrl
Build a recent-show shortlistactiveOnly, activityWindowDaysactive, activeAsOf, frequency
Review recent episodesincludeEpisodes, maxEpisodesPerPodcastepisodes, episodesReturned, truncationReasons
Tips for better results
  • Turn on only-active to skip shows that stopped publishing.
  • Use require-email if you only want shows with a public owner email.
  • Check the contact source field before you use a contact.
Limits and good to know

At most 20 queries, 100 IDs, 100 Apple URLs, 100 feed URLs, 100 results per query, and 100 unique candidates per run. There is no page cursor or whole-directory export. Reaching a catalog cap is recorded in the summary. Source search order can change.

Recent updates
  1. Update · 9 October 2026

    • Preserve UTF-8 text across feed chunks and enforce absolute request deadlines.
    • Keep bounded source time with resource-specific errors and cancellation accounting.
    • Add a small new-form Apple ID prefill and correct Apple URL form validation.
  2. Version 0.1.12 · 16 September 2026

    • Stream public RSS/Atom feeds with the existing safety bounds and inspect up to 50 feed items per podcast.
    • Mark recoverable feed/read limits as PARTIAL with safe truncation reasons.
    • Charge podcast-result only for parsed-feed PODCAST_FOUND, NO_OWNER_CONTACT and PARTIAL rows; diagnostic rows are not charged.
  3. Version 0.1.9 · 16 September 2026

    • Apple podcast IDs are now looked up in safe groups of up to 50 IDs.
    • The Actor records useful progress in RUN_SUMMARY and saves a final summary when a run is cancelled.
    • The documented input limit is 100 Apple IDs, 100 Apple Podcasts URLs, 100 public RSS/Atom feed URLs and 100 unique podcast rows per run.

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "stableId": "apple:1253186678",
  "applePodcastId": "1253186678",
  "title": "Syntax - Tasty Web Development Treats",
  "feedUrl": "https://feeds.megaphone.fm/FSI1483080183",
  "feedFormat": "rss",
  "status": "PARTIAL",
  "contactStatus": "owner_present",
  "contactSourceField": "itunes:owner/itunes:email",
  "contactSourceUrl": "https://feeds.megaphone.fm/FSI1483080183",
  "partial": true,
  "truncationReasons": ["FEED_ITEM_LIMIT"],
  "episodesReturned": 0,
  "episodes": []
}

Use it from code

Actor ID: cliqtomedia/podcast-directory-rss-contacts-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/podcast-directory-rss-contacts-scraper").call(run_input={
    "searchQueries": [],
    "applePodcastIds": [
        "1253186678"
    ]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~podcast-directory-rss-contacts-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries": [], "applePodcastIds": ["1253186678"]}'
LangChain · langchain-apify
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/podcast-directory-rss-contacts-scraper")
result = tool.invoke({"run_input": {"searchQueries": [], "applePodcastIds": ["1253186678"]}})
print(result)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (40)
FieldTypeMeaning
stableIdstringStable Apple ID or feed hash; never a raw credential-bearing URL.
statusstringTerminal product status.
statusReasonstringSafe machine-readable status code.
sourceKindsarrayAccepted source adapters used for the row.
matchedQueriesarrayNormalized Apple queries that matched the row.
inputRefsarrayOpaque input references.
applePodcastIdstringApple collection ID.
applePodcastUrlstringCatalog URL returned by Apple; not fetched.
feedUrlstringPublic feed URL read for this row.
feedHoststringHost-only feed diagnostic.
feedFormatstringrss or atom.
titlestringPodcast title.
authorstringPodcast author.
publisherstringPublisher fact when available.
descriptionstringPlain show description when available.
languagestringFeed language.
storefrontCountrystringRequested Apple storefront.
categoriesarrayShow categories.
artworkUrlstringMetadata URL only; never downloaded.
websiteUrlstringPublished metadata link only; never fetched.
episodeCountReportedintegerCatalog-reported count.
feedItemsObservedintegerMapped distinct feed items under bounds.
episodesReturnedintegerNested episodes returned.
latestEpisodeDatestringNewest valid feed date.
appleLatestReleaseDatestringApple catalog release date.
activebooleanCalculated activity flag.
activeAsOfstringUTC clock used for activity calculation.
activityWindowDaysintegerActivity rule window.
frequencystringCalculated frequency bucket.
frequencyBasisstringRule used for the frequency calculation.
medianGapDaysnumberCalculated median gap.
ownerNamestringExplicit feed owner name.
ownerEmailstringExplicit itunes owner email only.
contactEmailstringExplicit alternate feed contact.
contactRolestringowner, editor or webmaster.
contactStatusstringExplicit contact result.
contactSourceFieldstringExact feed field that supplied the contact.
contactSourceUrlstringFeed URL supporting the contact.
descriptionSourcestringapple, rss, atom or unknown.
fieldProvenanceobjectField-level fact/calculation markers.
Input settings (12)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Apple search queriessearchQueriesarray[]
Apple podcast IDsapplePodcastIdsarray["1253186678"]
Apple podcast URLsapplePodcastUrlsarray[]
Public RSS/Atom feed URLsfeedUrlsarray[]
Apple storefront countrycountrystring"us"
Maximum Apple results per querymaxPodcastsPerQueryinteger50
Maximum unique podcastsmaxPodcastsinteger50
Include recent episodesincludeEpisodesbooleanfalse
Maximum episodes per podcastmaxEpisodesPerPodcastinteger5
Activity window in daysactivityWindowDaysinteger90
Require explicit owner emailrequireOwnerEmailbooleanfalse
Only active podcastsactiveOnlybooleanfalse

Use cases with this tool

Each guide shows all the steps and the other tools.

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure