Home › Monitoring and research › Apple Podcasts Scraper
Find active Apple Podcasts shows by keyword, chart or genre. Each row adds real activity from the show RSS feed: last episode, cadence, episodes per 90 days and a 0-100 activity score. No emails, no login, no API key.
| Field | Name | Required | What it does |
|---|---|---|---|
searchTerms | Search terms | no | Keywords searched in the Apple Podcasts directory (show title, publisher and topic), for example marketing, saas, true crime. Each term returns up to 200 shows per country. |
chartGenres | Apple charts (genres) | no | Read the Apple Podcasts top chart for these genres in every selected country. All podcasts = the overall Top Shows chart. Each show keeps its chartRank. |
chartLimit | Shows per chart | no | How many chart positions to read per genre and country (1-200; the overall Top Shows chart allows up to 100, larger values use the classic chart feed). |
appleIds | Apple ids or URLs | no | Specific shows to check, as Apple ids (1200361736) or Apple Podcasts URLs (https://podcasts.apple.com/us/podcast/the-daily/id1200361736). Useful for tracking a watch list. |
countries | Countries | no | Apple storefronts as 2-letter codes, for example us, gb, ca, au, de. Search and charts run per country. |
onlyActive | Only active shows | no | Return only shows whose newest episode is within the active window below. Turn off to also get dormant shows (they get isActive = false). |
activeWithinDays | Active within (days) | no | A show is active when its newest episode was published within this many days (1-3650). |
minEpisodes | Minimum episodes | no | Skip shows with fewer episodes than this (Apple episode count). 0 = no filter. |
language | Language | no | Keep only shows whose feed declares this language, for example en, es or pt-br (prefix match: en also matches en-us). Leave empty for any language. |
excludeExplicit | Exclude explicit shows | no | Skip shows Apple or the feed marks as explicit (brand-safety filter for sponsors). |
includeFeedActivity | Read RSS feeds for activity | no | Read each show public RSS feed (newest 400 KB) to measure last episode, cadence and episodes per 30/90 days. Turn off for a faster Apple-only run (activity then uses the Apple... |
onlyNewSinceLastRun | Only new since last run | no | Monitor mode: skip shows delivered in an earlier run (remembered by Apple id in a named key-value store). A repeat run on the same input charges only for new shows. |
stateStoreName | Monitor store name | no | Named key-value store that remembers delivered shows. Use a different name per watch list. |
maxItems | Max shows | no | Maximum podcast rows delivered (and charged) this run. Rows are delivered in source order (your ids, chart rank, then search relevance). |
One row per result. These are the 37 fields declared in the actor's dataset schema (field list from the schema, not a sample run).
| Field | Type | Meaning |
|---|---|---|
title | string | Podcast title as listed in the Apple Podcasts directory. |
publisher | string | Public creator / publisher brand shown on Apple Podcasts (artistName). Never a personal email or owner contact. |
activityScore | integer | 0-100: recency of the latest episode (45), episode cadence (25), episodes in the last 90 days (15) and catalogue depth (15). |
isActive | boolean | true when the latest episode is within activeWithinDays (default 45) of the run. |
lastEpisodeAt | string | Publish time (ISO 8601 UTC) of the newest episode in the RSS feed; Apple latest-episode date when the feed could not be read. |
daysSinceLastEpisode | integer | Whole days between the newest episode and the run. |
avgDaysBetweenEpisodes | number | Mean gap in days across the newest 10 episodes in the feed (7 = weekly, 1 = daily). |
episodesLast30Days | integer | Episodes published in the 30 days before the run (from the feed). |
episodesLast90Days | integer | Episodes published in the 90 days before the run (from the feed). |
episodesInFeed | integer | Episodes found in the part of the feed read (a lower bound when feedTruncated is true). |
trackCount | integer | Episode count Apple reports for the show. |
primaryGenre | string | Apple primary genre, for example Business or True Crime. |
genres | array | All Apple genres for the show (the generic Podcasts tag removed). |
categories | array | iTunes categories declared in the show RSS feed. |
chartName | string | Apple chart the show was found in (Top Shows or a genre chart); null for search and id lookups. |
chartRank | integer | Position in that chart at run time (1 = top). |
country | string | Apple storefront (ISO 3166-1 alpha-2) the record and chart rank come from. |
language | string | Language declared in the RSS feed (BCP 47, lowercase), for example en or es-mx. |
explicit | boolean | true when Apple or the feed marks the show explicit. |
contentAdvisory | string | Apple content advisory rating (Clean or Explicit). |
lastEpisodeTitle | string | Title of the newest episode in the feed. |
lastEpisodeDuration | string | Length of the newest episode as hh:mm:ss. |
lastEpisodeDurationSec | integer | Length of the newest episode in seconds. |
website | string | Show website (channel link from the RSS feed, http/https only). |
appleUrl | string | Public Apple Podcasts page of the show. |
feedUrl | string | Public RSS feed URL listed by Apple. |
appleId | string | Apple Podcasts collection id (stable key for joins and monitor mode). |
artworkUrl | string | 600 x 600 cover art URL from Apple. |
releaseDate | string | Latest-episode date Apple holds for the show (ISO 8601). |
description | string | Show description from the feed, tags removed, emails and phone numbers scrubbed, max 500 characters. |
feedTruncated | boolean | true when the feed was larger than 400 KB and only its newest part was read (episodesInFeed is then a lower bound). |
feedStatus | string | ok, ok_partial, no_feed_url, not_requested, not_rss, unreachable or http_<status>. |
activitySource | string | rss when activity came from the feed, apple when it fell back to Apple data. |
activeWithinDays | integer | The activeWithinDays value used for isActive. |
source | string | search, chart or appleId. |
sourceQuery | string | Search term, chart name or Apple id that surfaced the show. |
scrapedAt | string | Time the row was produced (ISO 8601 UTC). |
Public data only, no login. Fields a source does not publish come back empty rather than guessed. Coverage and freshness follow the underlying public source.
Pay on Apify, no subscription: $0.001 per podcast returned (pay per event). The live price is on the actor page.
Disclosure: we build and maintain this actor.