# Particle Pro Podcast Search

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

Search the podcast catalog by show name with typo tolerance and match quality scoring

## Facts

- Endpoint: GET https://api.particle.pro/v1/podcasts/search
- Price: $0.01/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-search-ccd5680b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_LMH6ehWHaLl8FZH-lY2Xy

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-search-ccd5680b
```

Example prompt: Can you find the podcast 'Acquired' for me — search the Particle Pro catalog and show me the top matches sorted by relevance?

## When to prefer this

Use this endpoint when you need to look up a podcast by name, including fuzzy or partial names, typos, or pasted episode titles. It is the canonical podcast search endpoint in the Particle Pro catalog — prefer it over slug-based filtering when the exact slug is unknown. It is also the right choice when you need to discover podcasts by language, ad presence, or popularity before calling other Particle Pro endpoints that require a slug or show identifier.

## Known failure modes

- Empty results when query is too specific or show is not in catalog
- Ambiguous matches when show name is very generic — rely on match_quality field to disambiguate
- has_ads=false excludes sparsely-analyzed podcasts, potentially missing valid ad-free shows
- Invalid cursor value causes pagination error
- Unsupported language code returns no results or an error

## How this service works

Search podcasts. Searches the podcast catalog by show name — the canonical podcast search.

## Output

A paginated list of podcast objects ranked by relevance or popularity, each including the podcast name, stable slug, popularity percentile, match quality indicator (e.g. 'name' or 'description'), language, and advertiser presence. A pagination cursor is returned when more results are available.

## 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": {
      "q": {
       "type": "string",
       "description": "Search the catalog by podcast name. GET /v1/podcasts/search is the canonical search endpoint and accepts the same parameters. The search is forgiving: it handles typos, missing or extra words ('offline jon favreau' finds Offline with Jon Favreau), a name plus qualifiers ('equity techcrunch'), and pasted episode titles ('Ferrari | Acquired' finds Acquired). The best matches come first, and each result's match_quality tells you how confident the match is — including when a show matched only through its description (match_quality=description) rather than its name."
      },
      "slug": {
       "type": "string",
       "description": "Filter by exact podcast slug (e.g., 'all-in'). Slugs are stable, human-readable identifiers returned on every podcast object."
      },
      "sort": {
       "enum": [
        "relevance",
        "popularity"
       ],
       "type": "string",
       "description": "Result ordering. relevance — the default whenever q is present — ranks by how well each podcast matches the query, breaking ties by popularity. popularity orders purely by the global popularity percentile (most popular first; podcasts not currently charting sort last), and also overrides topic_id's concentration ordering. Without q or topic_id, results are popularity-ordered either way."
      },
      "limit": {
       "type": "integer",
       "format": "int64",
       "description": "Results per page"
      },
      "cursor": {
       "type": "string",
       "description": "Opaque pagination cursor from previous response"
      },
      "has_ads": {
       "enum": [
        "true",
        "false"
       ],
       "type": "string",
       "description": "Filter by advertiser presence. Pass false to find ad-free shows — an assertion that requires the show to have enough analyzed episodes, so sparsely-analyzed podcasts are excluded rather than presumed ad-free."
      },
      "language": {
       "type": "string",
       "description": "Filter by the podcast's language (
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/particle-pro-podcast-search-ccd5680b/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)
