# Podchaser Podcast Scraper (`parsebird/podchaser-scraper`) Actor

Scrape Podchaser podcasts by URL, category, ID, or name. Extract host contact emails, ratings, reviews, follower counts, reach data, sponsors, social links, hosts and guests, networks, and similar shows. Export JSON, CSV, Excel.

- **URL**: https://apify.com/parsebird/podchaser-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 1,000 podcasts

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Podchaser Podcast Scraper

Podchaser Podcast Scraper extracts structured podcast data from [Podchaser](https://www.podchaser.com) — the podcast database used for media buying, PR, and podcast research. Discover shows by category, URL, ID, or name, then pull **host contact emails**, ratings, reviews, follower counts, verified reach, sponsors, hosts and guests, networks, and similar shows in one run.

<table><tr>
<td style="border-left:4px solid #6C4CF1;padding:12px 16px;font-weight:600">
Turn a Podchaser category, URL list, or set of show names into an outreach-ready dataset — host email, website, RSS feed, ratings, follower count, sponsors, social links with follower counts, hosts/guests, and lookalike shows — filtered by rating, reviews, episodes, and contactability.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Actor: parsebird/podchaser-scraper — scrapes Podchaser podcasts. Discover via startUrls (podcast or category pages), categorySlugs (e.g. news, comedy, business, technology), podcastIds (numeric or slug), or searchNames. Input: {"categorySlugs": ["news"], "podcastIds": ["the-daily-243479"], "scrapeFullProfile": true, "enrichContactFromRss": true, "crawlSimilar": false, "similarDepth": 1, "minRating": 0, "minReviews": 0, "minEpisodes": 0, "requireContactEmail": false, "maxRecords": 100, "maxPagesPerCategory": 4}. Run via ApifyClient("YOUR_TOKEN").actor("parsebird/podchaser-scraper").call(run_input=input). Output per podcast: id, slug, title, url, description, website, rssFeedUrl, applePodcastsId, spotifyId, externalIds, language, explicit, status, claimed, hostingProvider, contactEmail, contactEmailsAll, ownerNameFromRss, author, ownerName, ratingAverage, ratingCount, reviewCount, followerCount, listCount, reachVerified, reachProvider, numberOfEpisodes, avgEpisodeMinutes, daysBetweenEpisodes, firstEpisodeDate, latestEpisodeDate, latestEpisode, categories, networks, creators, creatorRoleCounts, sponsors, socialLinks, similarPodcasts, discoveredFrom, scrapedAt. Get an API token at https://console.apify.com/account#/integrations. Full API spec: https://apify.com/parsebird/podchaser-scraper/api
```

### What does Podchaser Podcast Scraper do?

Podchaser Podcast Scraper is a **Podchaser scraper and podcast contact finder**. It reads Podchaser's public directory data and enriches every show with its RSS feed, so you get both Podchaser's proprietary metrics and the podcaster's own published contact details.

🔎 **Four ways to discover shows** — browse a Podchaser category, paste podcast or category URLs, pass exact podcast IDs, or search by show name.

📧 **Host contact extraction** — `contactEmail` and every distinct email in the RSS feed, pulled from the `itunes:owner` block. Platform relay addresses are filtered out so the list stays clean.

⭐ **Ratings, reviews and audience** — Podchaser `ratingAverage`, `ratingCount`, `reviewCount`, `followerCount`, `listCount`, plus `reachVerified` / `reachProvider` when show-level reach is independently verified (for example by Acast).

📈 **Episode metrics** — episode count, average episode length in minutes, publishing cadence, first and latest episode dates, and the latest episode's title, air date, and audio URL.

🎙️ **People and networks** — hosts and guests with their social accounts and credit counts, credit counts by role, and the podcast's networks.

💰 **Monetization and growth signals** — detected `sponsors` (competitor ad intelligence) and official `socialLinks` for Twitter/X, Instagram, Facebook, and YouTube with follower counts.

🔗 **Lookalike expansion** — every show carries its `similarPodcasts`, and `crawlSimilar` follows them 1–3 hops deep to build a bigger targeted list.

#### Why scrape Podchaser?

- Build **podcast outreach lists** for PR, guest booking, and sponsorship pitches
- Run **competitor ad intelligence** by tracking which brands sponsor which shows
- Size up a niche: ratings, follower counts, cadence, and verified reach in one table
- Enrich a CRM with podcast host emails, websites, RSS feeds, and audience metrics
- Find **lookalike shows** to expand a campaign from a handful of known podcasts

### What data can you extract with Podchaser Podcast Scraper?

| Field | Type | Description |
|-------|------|-------------|
| id / slug / title | number / string | Podchaser identifiers and show title |
| url | string | Canonical Podchaser podcast page |
| description / descriptionHtml | string | null | Show description, plain and HTML |
| imageUrl | string | null | Cover art URL |
| website | string | null | The show's official website |
| rssFeedUrl | string | null | Public RSS feed URL |
| applePodcastsId / spotifyId | string | null | Platform IDs |
| externalIds | object | PlayerFM and Pandora IDs and URLs |
| language / languageCode | string | null | Language name and code |
| explicit / status / claimed | boolean / string | Explicit flag, Podchaser status, claimed flag |
| hostingProvider | string | null | Podcast host (Acast, Simplecast, …) |
| contactEmail | string | null | Primary host email from the RSS `itunes:owner` block |
| contactEmailsAll | string\[] | Every distinct non-generic email found in the feed |
| ownerNameFromRss / author / ownerName | string | null | Owner and author names |
| ratingAverage / ratingCount / reviewCount | number | null | Podchaser ratings and written reviews |
| followerCount / listCount | number | null | Podchaser followers and list appearances |
| reachVerified / reachProvider | boolean / string | null | Whether show-level reach is independently verified, and by whom |
| numberOfEpisodes / avgEpisodeMinutes / daysBetweenEpisodes | number | null | Episode metrics |
| firstEpisodeDate / latestEpisodeDate / startDate | string | null | Key dates |
| latestEpisode | object | null | `{ id, title, airDate, url, audioUrl }` |
| categories | string\[] | Podchaser category slugs |
| networks | object\[] | `[{ id, title, url, verified }]` |
| creators | object\[] | Hosts and guests `[{ id, name, role, creditCount, socialAccounts }]` |
| creatorRoleCounts | object | Credit counts by role (host, guest, producer, …) |
| sponsors | object\[] | Detected advertised brands `[{ name, url, iconUrl }]` |
| socialLinks | object | `{ twitter, instagram, facebook, youtube, … }` each with `username`, `url`, `followers` |
| similarPodcasts | object\[] | Podchaser "similar shows" `[{ id, slug, title }]` |
| discoveredFrom | string | Which input produced this record |
| scrapedAt | string | ISO 8601 timestamp |

### How to use Podchaser Podcast Scraper

1. Open [Podchaser Podcast Scraper](https://apify.com/parsebird/podchaser-scraper) and click **Try for free**.
2. Choose how to discover shows: add **Category Slugs** (e.g. `news`, `business`), **Start URLs**, **Podcast IDs**, or **Search Names**.
3. Keep **Scrape full profile** and **Get contact email from RSS** on for the complete record.
4. Optionally set **Minimum Rating / Reviews / Episodes** or turn on **Require a contact email** for a clean outreach list.
5. Set **Max Records** and, for categories, **Max Pages Per Category** (about 25 shows per page).
6. Click **Start**, then export the dataset as **JSON, CSV, Excel, or HTML**, or pull it via API.

#### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| startUrls | array | No\* | — | Podchaser podcast or category page URLs |
| categorySlugs | array | No\* | — | Podchaser category slugs to browse |
| podcastIds | array | No\* | — | Numeric IDs or slugs containing the ID (`the-daily-243479`) |
| searchNames | array | No\* | — | Podcast names to search for |
| scrapeFullProfile | boolean | No | `true` | Fetch each show's full profile (socials, sponsors, hosts/guests, website, reach) |
| enrichContactFromRss | boolean | No | `true` | Fetch the RSS feed for the host contact email |
| crawlSimilar | boolean | No | `false` | Expand to the similar podcasts of every scraped show |
| similarDepth | integer | No | 1 | How many hops of similar shows to follow (1–3) |
| minRating / minReviews / minEpisodes | integer | No | 0 | Quality filters; 0 disables the filter |
| requireContactEmail | boolean | No | `false` | Keep only shows with a found contact email |
| maxRecords | integer | No | 100 | Total record cap; 0 means unlimited |
| maxPagesPerCategory | integer | No | 4 | Pagination depth per category |
| requestDelay / maxConcurrency | integer | No | 700 / 4 | Politeness and speed controls |
| proxyConfiguration | object | No | disabled | Optional proxy — Podchaser needs none |

\* Provide at least one of `startUrls`, `categorySlugs`, `podcastIds`, or `searchNames`.

### Output example

```json
{
  "id": 2262,
  "slug": "ted-talks-daily",
  "title": "TED Talks Daily",
  "url": "https://www.podchaser.com/podcasts/ted-talks-daily-2262",
  "description": "Want TED Talks on the go? Everyday, this feed brings you our latest talks in audio format...",
  "website": "https://www.ted.com/",
  "rssFeedUrl": "https://feeds.acast.com/public/shows/67587e77c705e441797aff96",
  "applePodcastsId": "160904630",
  "spotifyId": "1VXcH8QHkjRcTCEd88U3ti",
  "language": "English",
  "languageCode": "en",
  "explicit": false,
  "status": "active",
  "claimed": false,
  "hostingProvider": "Acast",
  "contactEmail": "podcasts@ted.com",
  "contactEmailsAll": ["podcasts@ted.com", "fixable@ted.com"],
  "ownerNameFromRss": "TED",
  "author": "TED",
  "ratingAverage": 4.571,
  "ratingCount": 28,
  "reviewCount": 9,
  "followerCount": 7299,
  "listCount": 78,
  "reachVerified": true,
  "reachProvider": "acast",
  "numberOfEpisodes": 2366,
  "avgEpisodeMinutes": 16.6,
  "daysBetweenEpisodes": 1,
  "latestEpisodeDate": "2026-09-07 04:04:00",
  "latestEpisode": {
    "id": 308198261,
    "title": "Every kid needs a champion | Rita Pierson",
    "airDate": "2026-09-07 04:04:00",
    "url": "https://www.podchaser.com/podcasts/ted-talks-daily-2262/episodes/every-kid-needs-a-champion-rit-308198261",
    "audioUrl": "https://sphinx.acast.com/p/open/s/67587e77c705e441797aff96/e/6a989d32e7a9fe24781ab8fb/media.mp3"
  },
  "categories": ["society-culture", "arts", "technology", "education", "news", "politics"],
  "networks": [{ "id": 13, "title": "TED", "url": "https://www.ted.com/podcasts", "verified": false }],
  "creators": [
    { "id": 25791, "name": "Elise Hu", "role": "host", "creditCount": 3932, "socialAccounts": [{ "platform": "twitter", "url": "https://www.x.com/elisewho" }] }
  ],
  "creatorRoleCounts": { "host": 11, "guest": 1028, "author": 19 },
  "sponsors": [
    { "name": "Capital One", "url": "capitalone.com", "iconUrl": "https://images.podchaser.com/brands/logos/capital-one.jpeg" }
  ],
  "socialLinks": {
    "twitter": { "username": "TEDTalks", "url": "https://www.x.com/TEDTalks", "followers": 10118441 },
    "instagram": { "username": "ted", "url": "https://www.instagram.com/ted", "followers": 8394186 },
    "youtube": { "username": "TED", "url": "https://www.youtube.com/@TED", "followers": 27800000 }
  },
  "similarPodcasts": [
    { "id": 32228, "slug": "global-news-podcast", "title": "Global News Podcast" }
  ],
  "discoveredFrom": "input.podcastIds",
  "scrapedAt": "2026-09-08T12:40:00.000Z"
}
```

Download results in **JSON, CSV, Excel, or HTML** from the Apify Console or via the API.

### Use cases

- 📨 **Podcast PR and outreach** — targeted lists of shows with host emails, filtered by rating and activity
- 🎤 **Guest booking** — find active, well-reviewed shows in a category and reach the host directly
- 💰 **Sponsorship and ad intelligence** — see which brands already advertise on shows in your space via `sponsors`
- 🧭 **Market research** — compare follower counts, ratings, cadence, and verified reach across a niche
- 🗃️ **CRM enrichment** — attach podcast emails, websites, RSS feeds, and audience metrics to existing records
- 🔗 **Lookalike prospecting** — start from a few known shows and expand with `crawlSimilar`

### How it works

1. **Discover** — each category slug is paginated through Podchaser's directory; URLs and IDs are resolved to numeric podcast IDs; names are run through Podchaser search.
2. **Directory records** — every target is fetched as a Podchaser directory record carrying follower count, ratings, categories, networks, and similar-show IDs.
3. **Pre-filter** — `minRating`, `minReviews`, and `minEpisodes` are applied on directory data, then results are ranked so your explicit inputs come first, before any heavy enrichment.
4. **Full profile** — for the shortlisted shows, the full Podchaser profile adds website, language, hosts and guests, sponsors, social links, and verified reach.
5. **Contact enrichment** — the RSS feed is parsed for the `itunes:owner` email and every other distinct address, excluding platform relay addresses.
6. **Similar crawl** — when enabled, similar-show IDs are followed 1–3 hops and merged with deduplication.
7. **Filter, cap, output** — `requireContactEmail` and `maxRecords` are applied, and each podcast is pushed to the dataset as one record.

The actor uses lightweight `httpx` requests and stays under 512 MB — no browser required.

### How much does it cost to scrape Podchaser?

Podchaser Podcast Scraper uses [pay-per-event pricing](https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event). One event is charged per podcast record pushed to the dataset. Platform compute is included.

| Plan | Price per record | Price per 1,000 records |
|------|-----------------|-------------------------|
| Free | $0.00299 | **$2.99** |
| Bronze | $0.00249 | **$2.49** |
| Silver | $0.00199 | **$1.99** |
| Gold | $0.00149 | **$1.49** |

**Example:** a run that returns 500 podcasts costs $1.50 on the Free plan. Records dropped by filters or the `maxRecords` cap are never charged.

You can run Podchaser Podcast Scraper with the [free monthly usage credits](https://apify.com/pricing) on every Apify plan.

### Integrations and API access

Podchaser Podcast Scraper works with the full [Apify platform](https://docs.apify.com/platform):

- **API access** — run it and fetch results via the [REST API](https://docs.apify.com/api/v2) or the Python and JavaScript clients
- **Scheduling** — set up recurring runs with the [Apify Scheduler](https://docs.apify.com/platform/schedules)
- **Webhooks** — trigger downstream work when a run finishes
- **Integrations** — push data to [Google Sheets](https://apify.com/apify/google-sheets), [Slack](https://docs.apify.com/platform/integrations/slack), [Zapier](https://docs.apify.com/platform/integrations/zapier), [Make](https://docs.apify.com/platform/integrations/make), Airtable, and more

#### Python example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run_input = {
    "categorySlugs": ["business", "technology"],
    "scrapeFullProfile": True,
    "enrichContactFromRss": True,
    "requireContactEmail": True,
    "minReviews": 10,
    "maxRecords": 200,
    "maxPagesPerCategory": 8,
}

run = client.actor("parsebird/podchaser-scraper").call(run_input=run_input)

for show in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(show["followerCount"], show["title"], show["contactEmail"])
```

#### JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const input = {
    startUrls: [{ url: 'https://www.podchaser.com/podcasts/the-daily-243479' }],
    crawlSimilar: true,
    similarDepth: 2,
    scrapeFullProfile: true,
};

const run = await client.actor('parsebird/podchaser-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((s) => console.log(`${s.title}\t${s.contactEmail ?? ''}\t${s.followerCount ?? ''}`));
```

### Pricing

| Event | Price per event (Free) | Price per 1,000 |
|-------|------------------------|-----------------|
| podcast-scraped | $0.00299 | **$2.99** |

One event per podcast record in the dataset. Bronze, Silver, and Gold plans pay less — see the cost section above.

### FAQ

**Which category slugs are valid?**
Podchaser uses Apple-style slugs such as `news`, `comedy`, `business`, `technology`, `sports`, `arts`, `education`, `science`, `history`, `fiction`, `health-fitness`, `religion-spirituality`, `society-culture`, `music`, `government`, and `politics`. An unknown slug logs a warning and returns nothing.

**Where do the contact emails come from?**
From each show's public RSS feed — the `itunes:owner` email block that podcast hosts publish. Automated relay addresses from hosting platforms (Acast, Anchor, Simplecast, and similar) are filtered out.

**Do I need a Podchaser account or API key?**
No. The actor reads Podchaser's public directory and the shows' public RSS feeds.

**How many shows can a category return?**
About 25 per page. Set `maxPagesPerCategory` for depth and `maxRecords` for the overall cap.

**What is `discoveredFrom`?**
It records which input produced each row: `input.categorySlugs:news`, `input.podcastIds`, `input.searchNames:<name>`, `input.startUrls`, or `similar:<id>`.

**Can I get a clean outreach list in one run?**
Yes. Set `requireContactEmail: true`, add `minRating` / `minReviews`, and the actor returns only shows that clear the bar, ranked by follower count.

**Can I schedule recurring runs?**
Yes — use [Apify scheduling](https://docs.apify.com/platform/schedules) and webhooks to keep a niche list fresh.

**Found a bug or need a field added?**
Open the **Issues** tab on the Actor page.

### Is it legal to scrape Podchaser?

Podchaser Podcast Scraper collects publicly available information: Podchaser's public podcast directory and the RSS feeds that podcasters publish for directories and apps to read. The `itunes:owner` email exists so hosts can be contacted about their show.

Scraping public data is generally legal, as reaffirmed by the [US Ninth Circuit in hiQ Labs v. LinkedIn](https://www.eff.org/deeplinks/2022/04/scraping-public-websites-still-isnt-crime-court-reaffirms). Make sure your use complies with applicable data-protection law (GDPR, CCPA), anti-spam rules (CAN-SPAM, PECR), and Podchaser's Terms of Service. See Apify's guide to [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Related actors

- [Podcast Directory Scraper](https://apify.com/parsebird/podcast-directory-scraper) — search Apple Podcasts and Spotify for shows and host contacts, with lead scoring
- [Apple Podcasts Scraper](https://apify.com/parsebird/apple-podcasts-scraper) — full episode archives, show notes, transcripts, and audio URLs
- [RSS Feed Extractor](https://apify.com/parsebird/rss-feed-extractor) — parse any RSS or Atom feed into structured items
- [Website Contact Finder](https://apify.com/parsebird/website-contact-finder) — extract emails, phones, and social profiles from any list of websites

# Actor input Schema

## `startUrls` (type: `array`):

Podchaser URLs — podcast pages (e.g. https://www.podchaser.com/podcasts/the-daily-90473) or category pages (e.g. https://www.podchaser.com/podcasts/news).

## `categorySlugs` (type: `array`):

Podchaser category slugs to browse. Valid examples: news, comedy, business, technology, sports, arts, education, science, history, fiction, health-fitness, religion-spirituality, society-culture, music, government, politics.

## `podcastIds` (type: `array`):

Specific shows by numeric Podchaser ID (90473) or slug containing the ID (the-daily-90473).

## `searchNames` (type: `array`):

Podcast names to search for on Podchaser. The top matches for each name are scraped.

## `scrapeFullProfile` (type: `boolean`):

Fetch each show's full Podchaser profile for social links, sponsors, hosts and guests, website, language, and verified reach. Turn off for faster, lighter runs using directory data only.

## `enrichContactFromRss` (type: `boolean`):

Fetch the show's RSS feed to extract the host contact email from the itunes:owner block.

## `crawlSimilar` (type: `boolean`):

Expand the run to the 'similar podcasts' of every scraped show.

## `similarDepth` (type: `integer`):

How many hops of similar shows to follow when 'Crawl similar podcasts' is on.

## `minRating` (type: `integer`):

Keep only shows with a Podchaser rating at or above this value (0-5). 0 means no filter.

## `minReviews` (type: `integer`):

Keep only shows with at least this many written reviews. 0 means no filter.

## `minEpisodes` (type: `integer`):

Keep only shows with at least this many episodes. 0 means no filter.

## `requireContactEmail` (type: `boolean`):

Keep only shows where a host contact email was found — a clean outreach list.

## `maxRecords` (type: `integer`):

Total cap on the number of podcast records returned. 0 means unlimited.

## `maxPagesPerCategory` (type: `integer`):

Pagination depth per category (about 25 shows per page).

## `requestDelay` (type: `integer`):

Delay between API requests, in milliseconds. Increase if you hit rate limits.

## `maxConcurrency` (type: `integer`):

Maximum parallel requests.

## `proxyConfiguration` (type: `object`):

Optional. Podchaser needs no proxy — enable only for very large runs.

## Actor input object example

```json
{
  "startUrls": [],
  "categorySlugs": [
    "news"
  ],
  "scrapeFullProfile": true,
  "enrichContactFromRss": true,
  "crawlSimilar": false,
  "similarDepth": 1,
  "minRating": 0,
  "minReviews": 0,
  "minEpisodes": 0,
  "requireContactEmail": false,
  "maxRecords": 10,
  "maxPagesPerCategory": 1,
  "requestDelay": 700,
  "maxConcurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [],
    "categorySlugs": [
        "news"
    ],
    "maxRecords": 10,
    "maxPagesPerCategory": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/podchaser-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [],
    "categorySlugs": ["news"],
    "maxRecords": 10,
    "maxPagesPerCategory": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/podchaser-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [],
  "categorySlugs": [
    "news"
  ],
  "maxRecords": 10,
  "maxPagesPerCategory": 1
}' |
apify call parsebird/podchaser-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/podchaser-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/0jK88nvJzGq35Z1eB/builds/6rmp8inPMoxTnem62/openapi.json
