# Particle Pro Podcast Episode Content Search

> Particle Pro Podcast Episode Content Search is a paid API for AI agents from api.particle.pro, paid per call via x402, $0.03/call, status unknown (last checked 2026-09-14).

Full-text search of podcast episode transcript segments, with filtering by entity, role, segment type, date range, and language.

## Facts

- Endpoint: GET https://api.particle.pro/v1/podcasts/episodes/search
- Price: $0.03/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/particle-pro-podcast-episode-content-search-4caff5d8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_g-HkjwTALyd0wsWfLApLg

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 particle-pro-podcast-episode-content-search-4caff5d8
```

Example prompt: Search Particle Pro for podcast transcript segments where Elon Musk appeared as a guest discussing AI regulation, published since January 2024, sorted by recency, and show me 5 results with 3 lines of surrounding context each.

## When to prefer this

Choose this endpoint when you need to search within the spoken content of podcast episodes — transcript-level full-text search with fine-grained filters like speaker role, segment type, date range, and language. Prefer it over /v1/podcasts/search when you care about what was said inside episodes rather than finding shows by name or topic. Ideal for media monitoring, competitive intelligence, guest appearance research, or any workflow requiring podcast transcript analysis at scale.

## Known failure modes

- Invalid or unrecognized entity_id returns empty results or 404
- Unsupported language code returns no results or validation error
- Date range with since > until returns empty or error
- Cursor from a different query invalidated — returns error or stale page
- Query too broad returns low-relevance segments with high noise
- Limit outside 1-100 range returns validation error
- Payment failure (x402) blocks access if USDC not provided

## How this service works

Search podcast episode content. To find podcasts (shows) by name or topic, use /v1/podcasts/search?q=….

## Output

A paginated list of transcript segment objects from matching podcast episodes, each including the matched dialogue lines, surrounding context window, episode and show metadata, speaker role attribution, segment type label, and a cursor for fetching the next page of results.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "role": {
       "enum": [
        "guest",
        "host",
        "panelist",
        "correspondent",
        "speaker",
        "mention"
       ],
       "type": "string",
       "description": "How the entity must relate to the episode. Speaking roles: 'guest', 'host', 'panelist', 'correspondent', or 'speaker' for any of them. 'mention' means the entity is talked about rather than speaking. Omit to match both. Matches the role values on /v1/podcasts/episodes."
      },
      "sort": {
       "enum": [
        "relevance",
        "recency"
       ],
       "type": "string",
       "description": "Sort order. Defaults to relevance."
      },
      "type": {
       "enum": [
        "INTRO",
        "PERSONAL_BANTER",
        "TOPIC_DISCUSSION",
        "INTERVIEW",
        "TRANSITION",
        "AD",
        "OUTRO"
       ],
       "type": "string",
       "description": "Segment type filter."
      },
      "limit": {
       "type": "integer",
       "format": "int64",
       "description": "Results per page (1-100, default 25)."
      },
      "since": {
       "type": "string",
       "description": "Only segments from episodes published after this date."
      },
      "until": {
       "type": "string",
       "description": "Only segments from episodes published on or before this date. A bare date includes that whole day."
      },
      "cursor": {
       "type": "string",
       "description": "Opaque cursor from a previous response."
      },
      "context": {
       "type": "integer",
       "format": "int64",
       "description": "Lines of surrounding dialogue around each matched line (1-15, default 1). Widens each match's transcript window in place — request more context instead of fetching the full transcript. Window size stays bounded even at the maximum."
      },
      "language": {
       "type": "string",
       "description": "Restrict to episodes of podcasts in this language (ISO 639-1 code, e.g. 'fr'). Matches the podcast's primary language subtag, so 'fr' covers 'fr-FR'."
      },
      "ent
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/particle-pro-podcast-episode-content-search-4caff5d8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.particle.pro](https://www.zero.xyz/host/api.particle.pro/llms.txt)
