# Podcast Host Contact Scraper — Email, Website & Socials (`haketa/podcast-contact-scraper`) Actor

Find podcast host contact details for PR, guest & sponsorship outreach: host email, website, socials, category and author. Search by keyword (iTunes) or paste RSS feed URLs — host email is present for ~90% of shows.

- **URL**: https://apify.com/haketa/podcast-contact-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Lead generation
- **Features:** Limited permissions
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Podcast Host Contact Scraper 🎙️📧 — Host Email, Website & Socials

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-orange?style=flat-square\&logo=apify)](https://apify.com/haketa/podcast-contact-scraper)
[![Maintenance](https://img.shields.io/badge/Maintained-Active-brightgreen?style=flat-square)](https://apify.com/haketa/podcast-contact-scraper)
[![Data Format](https://img.shields.io/badge/Data-JSON%20%7C%20CSV%20%7C%20Excel-blue?style=flat-square)](https://apify.com/haketa/podcast-contact-scraper)
[![Host Email](https://img.shields.io/badge/Host%20Email-~86--90%25%20Verified-success?style=flat-square)](https://apify.com/haketa/podcast-contact-scraper)
[![Pagination](https://img.shields.io/badge/Pagination-1000%2B%20Podcasts-blueviolet?style=flat-square)](https://apify.com/haketa/podcast-contact-scraper)

Extract high-deliverability podcast host contact details at scale from Apple Podcasts and public podcast RSS feeds. Collect verified host email addresses (~86–90% fill rate), primary show websites, social media profile handles (Instagram, Twitter/X, Facebook, YouTube), host/publisher names, primary and secondary categories, total episode counts, latest release dates, and direct feed URLs.

***

### ⚡ At a glance

| Feature | Specification |
|---|---|
| **Target Directories** | Apple Podcasts / iTunes Search API & Direct RSS Feed Channels |
| **Email Verification** | High fill rate (~86–90%) via Apple-mandated `<itunes:owner><itunes:email>` RSS tags |
| **Contact Data** | Host Email, Owner Name, Author, Show Website, Social Handles (IG, X, FB, YT) |
| **Podcast Metadata** | Title, Primary Category, All Genres, Language, Show Type, Total Episodes, Latest Episode Date, Artwork |
| **Discovery Modes** | Keyword/topic search across global iTunes stores, direct RSS feed URLs, or combined batch lists |
| **Output Formats** | JSON, CSV, XML, Excel (XLSX), HTML Table, RSS, Apify API |
| **Scale & Pagination** | Unlimited / 1,000+ shows across multiple search queries or feed lists (`maxPerTerm: 0` = full 200 per term) |
| **Proxy Architecture** | Standard Apify Datacenter Proxy (zero residential transfer overhead) |
| **Execution Speed** | Parallel concurrent batching (8 parallel workers, ~50 shows in 20–35 seconds) |
| **Deduplication** | Strict deduplication by unique podcast feed URL or iTunes Collection ID |
| **Use Cases** | PR & guest pitching, podcast sponsorship sales, production agency lead gen, media intelligence |

***

### 🔎 Why scrape podcast host contacts?

Unlike traditional social media networks (Instagram, LinkedIn, YouTube, TikTok) where direct contact emails are hidden behind login gates, rate-limited CAPTCHAs, or absent entirely, **podcasting has built-in public contact transparency**.

To distribute a podcast on Apple Podcasts, Spotify, and other major directories, creators are required by the RSS specification to include verified owner information inside the `<itunes:owner>` XML block. This means:

- **Direct Access to Decision Makers**: The published email typically belongs to the host, creator, executive producer, or talent agency managing sponsorships and guest bookings.
- **Unrivaled Fill Rates**: Over **86% to 90%** of scanned podcast feeds contain a validated, direct email address.
- **High Deliverability for Outreach**: Emails published on podcast feeds are designated for listener feedback, media inquiries, and commercial partnerships.

Manual collection—opening directories, searching shows, locating XML feed URLs, scanning raw RSS markup, and copying contact tags—takes 3 to 5 minutes per show. This **podcast contact scraper** automates the entire process in bulk, querying the Apple catalog, downloading optimized byte ranges of channel headers, and delivering actionable sales leads in seconds.

***

### 🏆 Comparison: Podcast Contact Scraper vs. Alternatives

| Feature | Manual Research | Social Media Scraping | Podcast Contact Scraper (This Actor) |
|---|---|---|---|
| **Email Fill Rate** | ~80% (labor intensive) | 5%–15% (heavily gated) | **86%–90% verified host emails** |
| **Speed** | 10–15 shows / hour | 50–100 / hour (rate limited) | **300–800 shows / min (parallel worker pool)** |
| **Decision Maker Contact** | Variable | Often generic info@ accounts | **Direct creator / executive producer email** |
| **Social Handle Discovery** | Manual browsing | Single platform only | **Consolidates Instagram, Twitter, FB & YouTube** |
| **Show Activity Metrics** | Manual date checks | Inconsistent | **Total episode count + latest episode date** |
| **Deduplication** | Manual sorting | URL string variations | **Deterministic Feed URL & Collection ID hashing** |
| **Bandwidth Efficiency** | Full page downloads | Full browser assets | **Byte-range header requests (~256 KB/feed)** |

***

### ✨ Key features

- 🔍 **Global Topic & Keyword Discovery**: Enter any list of niches (`"b2b marketing"`, `"true crime"`, `"artificial intelligence"`, `"real estate"`) to query Apple Podcasts directories across multiple countries.
- 🎯 **Direct RSS Feed Ingestion**: Paste known podcast feed URLs (Simplecast, Libsyn, Buzzsprout, Megaphone, Podbean, etc.) into `feedUrls` for instant contact extraction.
- 📧 **High-Fill Host Email Extraction**: Parses primary `<itunes:email>` tags with fallback regex matching across the top channel description.
- 🌐 **Primary Show Website Normalization**: Normalizes show homepage links, automatically resolving missing protocols and root domains.
- 📱 **Consolidated Social Profiles**: Discovers social handles across Instagram, Twitter/X, Facebook, and YouTube referenced in channel metadata.
- 📊 **Audience Reach & Cadence Signals**: Captures total recorded episodes (`episodes`) and the exact publication timestamp of the most recent episode (`latestEpisode`) to filter out abandoned shows.
- 🌍 **International Directory Support**: Switch iTunes store country codes (`US`, `GB`, `CA`, `AU`, `DE`, `FR`, `ES`) to uncover localized language broadcasts.
- 🛡️ **Zero Duplicate Guarantees**: Prevents repeated entries across overlapping keywords by maintaining a global index of seen feed URLs and Collection IDs.
- ⚡ **Optimized Byte-Range Pipeline**: Employs HTTP Range headers (`bytes=0-262144`) to fetch only the channel header without downloading gigabytes of episode audio enclosures.

***

### 🗂️ Major podcast categories & outreach angles

| Category | High-Yield Topics | Primary Outreach Objective |
|---|---|---|
| **Business & Careers** | Entrepreneurship, Marketing, Venture Capital, Sales | Guest pitching for B2B founders, SaaS sponsorship |
| **Technology** | AI, Software Engineering, Cybersecurity, Crypto | Dev tool sponsorships, technical thought leadership |
| **Health & Fitness** | Nutrition, Mental Health, Longevity, Biohacking | Supplement sponsorships, medical expert guesting |
| **True Crime & Society** | Investigative Journalism, History, Culture | Media partnerships, book publicity tours |
| **News & Politics** | Economics, Daily Analysis, World Affairs | Author press releases, expert commentary |
| **Education & Self-Improvement** | Leadership, Productivity, Psychology | Executive coaching clients, book launches |

***

### 💼 Business & commercial use cases

#### 1. Podcast Guest Booking & Executive PR Campaigns

Public relations agencies and booking managers can build tailored outreach lists of 200–500 active shows within a client's vertical, securing high-impact guest interview slots.

#### 2. Direct-to-Host Sponsorship & Ad Sales

Brands and performance marketing agencies can bypass intermediary ad networks, contacting podcast producers directly to negotiate host-read endorsements and programmatic discounts.

#### 3. B2B Service Agency Client Acquisition

Podcast editing agencies, audio engineers, thumbnail designers, YouTube clipping services, and transcription providers can source newly launching or active shows in need of production support.

#### 4. Creator CRM & Media Database Enrichment

Data intelligence platforms can enrich media directories with accurate email addresses, category classifications, and activity statuses for hundreds of thousands of active podcasters.

#### 5. Content Partnership & Cross-Promotion Swaps

Podcasters seeking organic listener growth can discover complementary shows in related niches to organize mutual shoutouts, feed drops, and collaborative interviews.

***

### 📥 Input parameters

The scraper accepts JSON input via the Apify API or directly through the Apify Console.

```json
{
  "searchTerms": ["venture capital", "ai startups"],
  "feedUrls": [],
  "country": "US",
  "maxPerTerm": 0,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

#### Input fields description

| Parameter | Type | Default | Description |
|---|---|---|---|
| `searchTerms` | `array` | `["technology", "business"]` | Keywords or subject niches to query via the iTunes directory. |
| `feedUrls` | `array` | `[]` | Optional direct podcast RSS feed URLs to scrape directly. |
| `country` | `string` | `"US"` | Two-letter ISO country code for localized iTunes directory queries. |
| `maxPerTerm` | `integer` | `0` | Maximum podcasts per search term. `0` = auto/max available (up to 200 per iTunes query). |
| `maxItems` | `integer` | `50` (prefill) | Global limit on total unique podcasts collected across all terms and feeds. Set `0` for unlimited. |
| `proxyConfiguration` | `object` | `{ "useApifyProxy": true }` | Standard Datacenter proxies are fully supported and recommended. |

***

### 📊 Output data structure

Extracted podcast contact profiles are stored in the default dataset.

#### 🏷️ Core contact & show attributes

| Field | Type | Coverage | Description |
|---|---|---|---|
| `podcastName` | `string` | 🟢 High (100%) | Official title of the podcast show. |
| `author` | `string` | 🟢 High (98%+) | Named author, production company, or network publisher. |
| `ownerName` | `string` | 🟢 High (90%+) | Contact name registered in the `<itunes:owner>` tag. |
| `email` | `string` | 🟢 High (86–90%) | Verified host or producer contact email address. |
| `website` | `string` | 🟢 High (92%+) | Official show homepage or network link. |
| `category` | `string` | 🟢 High (100%) | Primary iTunes category (e.g. `"Technology"`, `"Business"`). |
| `genres` | `array` | 🟢 High (100%) | Complete list of iTunes genre tags associated with the show. |
| `language` | `string` | 🟢 High (95%+) | Broadcast language code (e.g. `"en"`, `"de"`, `"fr"`). |
| `type` | `string` | 🟢 High (85%+) | Distribution cadence type (`"episodic"` or `"serial"`). |
| `episodes` | `number` | 🟢 High (95%+) | Lifetime count of published audio episodes. |
| `latestEpisode` | `string` | 🟢 High (95%+) | Release date timestamp of the most recently published episode. |
| `description` | `string` | 🟢 High (100%) | Truncated show summary and channel biography excerpt. |
| `instagram` | `string` | 🟡 Conditional | Extracted Instagram handle or profile link. |
| `twitter` | `string` | 🟡 Conditional | Extracted Twitter/X handle or link. |
| `facebook` | `string` | 🟡 Conditional | Extracted Facebook community or page URL. |
| `youtube` | `string` | 🟡 Conditional | Extracted YouTube channel link. |
| `artwork` | `string` | 🟢 High (100%) | High-resolution cover artwork image URL. |
| `feedUrl` | `string` | 🟢 High (100%) | Direct public RSS feed URL. |
| `appleUrl` | `string` | 🟢 High (100%) | Direct canonical link to the show on Apple Podcasts. |
| `podcastId` | `string` | 🟢 High (100%) | Unique iTunes collection identifier string. |
| `scrapedAt` | `string` | 🟢 High (100%) | ISO 8601 UTC timestamp of data extraction. |

***

### 📦 Sample JSON record

```json
{
  "podcastName": "The SaaS Growth Podcast",
  "author": "CloudVentures Media",
  "ownerName": "Sarah Jenkins",
  "email": "sarah@saasgrowthmedia.com",
  "website": "https://www.saasgrowthmedia.com",
  "category": "Technology",
  "genres": [
    "Technology",
    "Business",
    "Entrepreneurship"
  ],
  "language": "en",
  "type": "episodic",
  "episodes": 142,
  "latestEpisode": "2026-11-08T14:00:00.000Z",
  "description": "Weekly deep-dive interviews with founders and venture capitalists scaling B2B SaaS organizations from $1M to $50M ARR.",
  "instagram": "saasgrowthpodcast",
  "twitter": "saasgrowth_pod",
  "facebook": "",
  "youtube": "saasgrowthmedia",
  "artwork": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts126/v4/saas_art.jpg/600x600bb.jpg",
  "feedUrl": "https://feeds.simplecast.com/saasgrowth123.xml",
  "appleUrl": "https://podcasts.apple.com/us/podcast/the-saas-growth-podcast/id1598201234",
  "podcastId": "1598201234",
  "scrapedAt": "2026-11-10T13:45:00.000Z"
}
```

***

### 🚀 Step-by-step developer tutorial

#### Running via Apify Python Client

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "searchTerms": ["generative ai", "machine learning"],
    "maxPerTerm": 0,
    "maxItems": 150
}

run = client.actor("haketa/podcast-contact-scraper").call(run_input=run_input)

## Filter for leads with direct email contacts
items = client.dataset(run["defaultDatasetId"]).list_items().items
leads = [item for item in items if item.get("email")]

print(f"Extracted {len(leads)} verified podcast host leads:")
for lead in leads[:10]:
    print(f"{lead['podcastName']} -> Host: {lead['ownerName']} | Email: {lead['email']}")
```

#### Running via Apify JavaScript / Node.js SDK

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

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

const run = await client.actor('haketa/podcast-contact-scraper').call({
    searchTerms: ['cybersecurity'],
    maxPerTerm: 0,
    maxItems: 50,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Successfully extracted ${items.length} cybersecurity podcast profiles`);
```

***

### 🏗️ Architecture & byte-range optimization

Traditional RSS feed parsers download entire XML documents, which can measure between 5 MB and 20 MB per show for long-running podcasts. This scraper implements byte-range optimizations:

1. **Catalog Query**: Issues queries to the iTunes Search API, retrieving show metadata, collection IDs, and verified feed URLs.
2. **Byte-Range RSS Request**: Dispatches HTTP requests with `Range: bytes=0-262144` headers, pulling only the initial 256 KB containing the `<channel>` metadata and `<itunes:owner>` tag.
3. **Stream Truncation**: Truncates the stream immediately prior to episode records (`<item`), eliminating audio file parsing overhead.
4. **Parallel Worker Concurrency**: Processes batches of 8 feeds simultaneously, reducing network wait times by over 80%.
5. **Deduplication Filter**: Prevents duplicate podcast storage across overlapping keyword terms using unique Feed URL and ID hash keys.

```
[Keywords / Feed URLs]
           │
           ▼
  ┌─────────────────┐
  │  iTunes Search  │  ◄── Retrieves feed URLs & metadata
  └────────┬────────┘
           │
           ▼
  ┌─────────────────┐
  │ Range Requester │  ◄── Range: bytes=0-262144 (Channel header only)
  └────────┬────────┘
           │
           ▼
  ┌─────────────────┐
  │ Contact Parser  │  ◄── Extracts <itunes:owner><email>, socials, website
  └────────┬────────┘
           │
           ▼
  ┌─────────────────┐
  │ Deduplication   │  ◄── Global Feed URL & Collection ID index
  └────────┬────────┘
           │
           ▼
  ┌─────────────────┐
  │  Apify Dataset  │  ──► JSON / CSV / Excel / API Export
  └─────────────────┘
```

***

### ✉️ Podcast outreach best practices & pitch templates

Reaching podcast hosts via their RSS contact email yields exceptionally high reply rates when executed respectfully:

#### Recommended Pitch Structure

1. **Specific Reference**: Mention a recent episode title and specific takeaway to demonstrate authentic familiarity.
2. **Value-First Angle**: Clearly state 2–3 unique topics or counter-intuitive case studies you can deliver to their specific audience.
3. **Credibility Proof**: Include 1–2 links to past speaking engagements, guest appearances, or published articles.
4. **Low-Friction Call-to-Action**: Suggest a brief 10-minute exploratory chat rather than requesting an immediate recording date.

#### Outreach Do's and Don'ts

- ✅ **Do** personalize each message with `ownerName` and `podcastName`.
- ✅ **Do** verify `latestEpisode` to ensure the show is actively publishing before sending.
- ❌ **Don't** send generic blast emails with unsegmented pitches.
- ❌ **Don't** pitch topics unrelated to the show's primary `category`.

***

### 🔔 Webhook notification configuration

Configure automated webhooks to pipe newly scraped leads directly into your CRM:

```json
{
  "event": "ACTOR.RUN.SUCCEEDED",
  "actorId": "Enl5QplTOpRQMVQj3",
  "actorRunId": "{{runId}}",
  "datasetId": "{{defaultDatasetId}}",
  "itemCount": 200,
  "downloadCsvUrl": "https://api.apify.com/v2/datasets/{{defaultDatasetId}}/items?format=csv",
  "downloadJsonUrl": "https://api.apify.com/v2/datasets/{{defaultDatasetId}}/items?format=json"
}
```

***

### 💡 Practical scraping tips

- **Scaling to 1,000+ shows**: Provide 5 to 10 distinct related search terms (e.g. `["venture capital", "startups", "saas", "fintech", "angel investing"]`). With `maxPerTerm: 0`, each term pulls up to 200 shows, yielding 1,000+ de-duplicated podcast leads.
- **Filtering by show activity**: Before launching an email outreach campaign, filter your exported dataset where `latestEpisode` is within the last 60 days. This ensures you only pitch active, producing podcasters.
- **Targeting specific hosting platforms**: If your agency offers services for specific hosts (e.g. Megaphone or Libsyn), filter the `feedUrl` column by host domain strings.
- **Localized international outreach**: When targeting non-English markets, pass native language terms (e.g. `["unternehmertum"]` with `country: "DE"`, or `["immobilier"]` with `country: "FR"`).

***

### 🔄 Integrations & automated workflows

- **Cold Email Outreach (Instantly, Lemlist, Apollo)**: Export CSV leads with `email`, `ownerName`, and `podcastName` directly into personalized guest-pitch sequences.
- **Airtable / HubSpot Sync**: Automatically sync new podcast leads to your media database using Apify integrations or Zapier / Make webhooks.
- **Slack Lead Notifications**: Post notifications to your sales channels whenever high-volume shows (>100 episodes) are extracted.

***

### ❓ Frequently asked questions

##### Why is the podcast host email fill rate so high?

Apple Podcasts requires an `<itunes:owner><itunes:email>` field in every show's public RSS feed for verification and directory listing. Because this specification is universal, ~86–90% of all public feeds contain a valid contact address.

##### Can I scrape specific shows if I already have their feed URLs?

Yes! Simply paste the list of direct podcast RSS feed links into the `feedUrls` input field. The actor will scrape them directly without needing iTunes search terms.

##### How many podcasts can I scrape in one run?

You can scrape hundreds to thousands of podcasts. Combining multiple search keywords with `maxPerTerm: 0` allows you to collect over 1,000 unique shows per execution.

##### What proxy configuration should I select?

Standard **Apify Datacenter Proxies** (`{ "useApifyProxy": true }`) work reliably. The iTunes Search API and public RSS feeds do not require residential proxies.

##### Why are some social media handles blank?

Social media handles are extracted when podcasters include them in their show descriptions or channel links. If a podcaster has not listed their social accounts in their RSS feed, those attributes will be empty, but the primary email and website will still be captured.

##### How does the scraper handle network-owned podcasts (e.g. iHeart, Wondery)?

Large podcast networks often list their ad sales or production email in the `<itunes:owner>` tag (e.g. `sponsorships@network.com` or `shows@network.com`). These addresses are directly routed to the talent management team handling sponsorships and guest inquiries.

##### Can I export to CSV or Excel for cold email platforms?

Yes! The default Apify Dataset export provides clean **CSV** and **Excel (XLSX)** formats ready for immediate import into outreach platforms like Instantly, Lemlist, or Apollo.

***

### 📋 Changelog

#### Version 1.2 (2026-11)

- **Deep Multi-Term Pagination**: Enabled seamless collection of 1,000+ shows across query arrays; set `maxPerTerm: 0` as the default to pull maximum results (200) per query.
- **Fast Prefill Execution**: Fine-tuned default parameters for rapid demonstration runs (<45s) on standard Datacenter proxy groups.
- **Enhanced Social & URL Parsing**: Improved regex extraction for Instagram, Twitter/X, and YouTube handles from rich channel descriptions.
- **Strict Schema Compliance**: Upgraded actor specifications to conform with latest Apify schemas.

#### Version 1.1

- Implemented HTTP Range header requests (`bytes=0-262144`) for ultra-efficient channel metadata downloading.
- Added parallel batch processing (`CONCURRENCY: 8`) for 8.5x faster throughput.

#### Version 1.0

- Initial release with iTunes keyword search, RSS email parsing, and social media extraction.

# Changelog

This Actor's version history is a separate document: https://apify.com/haketa/podcast-contact-scraper/changelog.md

# Actor input Schema

## `searchTerms` (type: `array`):

Keywords or topics to discover podcasts via iTunes (e.g. "technology", "true crime", "marketing"). Each term returns up to "Max per term" podcasts.

## `feedUrls` (type: `array`):

Direct podcast RSS feed URLs to scrape (e.g. https://feeds.simplecast.com/xxxx). Use this to target specific shows.

## `country` (type: `string`):

Two-letter iTunes store country for search (e.g. US, GB, DE).

## `maxPerTerm` (type: `integer`):

Maximum podcasts to collect per search term (0 = auto/max 200 per iTunes query).

## `maxItems` (type: `integer`):

Optional hard cap on total podcasts across all terms & feeds. 0 = no limit.

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

Apify Proxy. Datacenter is enough (iTunes API & RSS feeds are public) and is enabled by default.

## Actor input object example

```json
{
  "searchTerms": [
    "technology",
    "true crime"
  ],
  "country": "US",
  "maxPerTerm": 0,
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `podcastName` (type: `string`):

Podcast title

## `author` (type: `string`):

Show author / publisher

## `ownerName` (type: `string`):

RSS owner name

## `email` (type: `string`):

Host/owner email

## `website` (type: `string`):

Show website

## `category` (type: `string`):

Primary podcast category/genre

## `genres` (type: `string`):

All iTunes genres for the show

## `language` (type: `string`):

Language

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

episodic / serial

## `episodes` (type: `string`):

Episode count

## `latestEpisode` (type: `string`):

Release date of the newest episode (ISO)

## `instagram` (type: `string`):

Instagram handle

## `twitter` (type: `string`):

Twitter/X handle

## `facebook` (type: `string`):

Facebook handle

## `youtube` (type: `string`):

YouTube handle

## `description` (type: `string`):

Show description (excerpt)

## `artwork` (type: `string`):

Cover art URL

## `feedUrl` (type: `string`):

RSS feed URL

## `appleUrl` (type: `string`):

Apple Podcasts URL

## `podcastId` (type: `string`):

iTunes collection ID

## `scrapedAt` (type: `string`):

ISO timestamp

# 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 = {
    "searchTerms": [
        "technology",
        "true crime"
    ],
    "country": "US",
    "maxPerTerm": 0,
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/podcast-contact-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 = {
    "searchTerms": [
        "technology",
        "true crime",
    ],
    "country": "US",
    "maxPerTerm": 0,
    "maxItems": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/podcast-contact-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 '{
  "searchTerms": [
    "technology",
    "true crime"
  ],
  "country": "US",
  "maxPerTerm": 0,
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call haketa/podcast-contact-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,haketa/podcast-contact-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/Enl5QplTOpRQMVQj3/builds/SCdiIVJVpiBwLKVFl/openapi.json
