# Apple Podcasts Scraper API (x402)

> Apple Podcasts Scraper API (x402) is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes structured episode and show metadata from Apple Podcasts via search terms, show URLs, podcast IDs, or direct RSS feeds, returning normalized episode rows.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/apple-podcasts?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/apple-podcasts-scraper-api-x402-9c754ae1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_AU9EodHcQTHTQpz6eX-qb

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability apple-podcasts-scraper-api-x402-9c754ae1 -d '<json body>'
```

Example prompt: Search Apple Podcasts for shows about 'true crime' in the US, grab up to 50 episodes per show across 5 shows max, only include episodes at least 10 minutes long released after 2023-01-01, and give me the full episode list with author and show metadata.

## When to prefer this

Choose this endpoint when you need structured, normalized episode data from Apple Podcasts — especially when combining catalog search, show URLs, podcast IDs, and RSS feeds in a single call. It is superior to manual RSS parsing when you need Apple catalog metadata (genres, episode counts, storefronts) alongside full RSS archive data. Prefer it over general web scrapers when the target is specifically Apple Podcasts or compatible podcast RSS feeds and you want pay-per-successful-call pricing.

## Known failure modes

- No results returned if search terms match no podcasts in the specified storefront — not charged
- Invalid RSS URL causes that feed to be skipped or return an error
- Podcast ID not found in Apple catalog returns empty items for that ID
- Rate limits or Apple Podcasts catalog caps may truncate results beyond 200 shows per search
- Malformed date strings in minReleaseDate/maxReleaseDate may cause filtering to behave unexpectedly
- Private or paywalled RSS feeds cannot be accessed and return no data

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of results and an array of episode items. Each item includes fields such as podcastId, podcastName, episodeId, episodeTitle, episodeGuid, episodeNumber, season, author, and additional show metadata (genres, country, language, description) when fetchShowMetadata is enabled. The product field confirms 'apple-podcasts'. Failed or empty runs are not billed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "country": {
   "type": "string",
   "default": "us",
   "description": "Two-letter storefront code for search, charts, and lookup, such as us, gb, or tr."
  },
  "explicit": {
   "enum": [
    "all",
    "clean",
    "explicit"
   ],
   "type": "string",
   "default": "all",
   "description": "Filter to all, clean, or explicit episodes."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Stop after this many episode rows across all inputs. Zero removes the cap."
  },
  "rssFeeds": {
   "type": "array",
   "default": [],
   "description": "Direct public podcast RSS URLs. These can be used without a catalog ID."
  },
  "podcastIds": {
   "type": "array",
   "default": [],
   "description": "Numeric collection IDs from podcast page URLs."
  },
  "podcastUrls": {
   "type": "array",
   "default": [],
   "description": "Full Apple Podcasts show URLs; the numeric show ID is extracted automatically."
  },
  "searchTerms": {
   "type": "array",
   "default": [],
   "description": "Podcast keywords. Each query discovers up to maxPodcastsPerSearch shows."
  },
  "maxReleaseDate": {
   "type": "string",
   "default": null,
   "description": "Include episodes released on or before this date, YYYY-MM-DD."
  },
  "minReleaseDate": {
   "type": "string",
   "default": null,
   "description": "Include episodes released on or after this date, YYYY-MM-DD."
  },
  "fetchShowMetadata": {
   "type": "boolean",
   "default": true,
   "description": "Include creator, genres, country, language, show description, and catalog episode count."
  },
  "minDurationSeconds": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Only keep episodes at least this many seconds long. Episodes without duration are excluded when this is greater than zero."
  },
  "maxPodcastsPerSearch": {
   "type": "integer",
   "default": 10,
   "maximum": 200,
   "minimum": 1,
   "description": "Maximum shows per search term or chart default. The catalog caps a query at 200."
  },
  "useRssForFullArchive": {
   "type": "boolean",
   "default": true,
   "description": "Read each discovered show’s public RSS feed to collect older episodes and enrich show notes, episode numbers, and enclosure metadata."
  },
  "maxEpisodesPerPodcast": {
   "type": "integer",
   "default": 100,
   "maximum": 200,
   "minimum": 1,
   "description": "Maximum recent episodes requested from catalog lookup. RSS archive mode
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "author": null,
    "season": null,
    "episodeId": null,
    "podcastId": null,
    "episodeGuid": null,
    "podcastName": null,
    "episodeTitle": null,
    "episodeNumber": null
   }
  ],
  "product": "apple-podcasts"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/apple-podcasts-scraper-api-x402-9c754ae1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
