Tool detail
Particle Pro
Searches the podcast catalog by show name or description, with optional filters for language, topic, format, ad presence, episode length/cadence and popularity.
Categories: Entertainment
Use when
- search for a podcast by name
- find ad-free podcasts in a given language
- find interview-format podcasts publishing weekly
Not for
- not episode-level search — matches podcasts, not individual episodes
Inputs
GET query params: q (string search text) plus optional filters — limit, cursor, sort, language, slug, topic_id, has_ads, has_video, publishing_status, suitability_tier, episode-length/frequency and popularity thresholds; none required.
Admitted input schema
{
"type": "object",
"properties": {
"cursor": {
"type": "string",
"minLength": 0,
"maxLength": 4096,
"description": "Opaque pagination cursor from previous response"
},
"format_signal": {
"type": "array",
"items": {
"type": "string",
"minLength": 0,
"maxLength": 4096
},
"minItems": 0,
"maxItems": 100,
"description": "Filter by detected production format. Pass a comma-separated list to match any of several formats — e.g. panel,call_in."
},
"guest_frequency": {
"type": "array",
"items": {
"type": "string",
"minLength": 0,
"maxLength": 4096
},
"minItems": 0,
"maxItems": 100,
"description": "Filter by how often episodes feature a guest. Pass a comma-separated list to match any of several buckets — e.g. regular"
},
"has_ads": {
"type": "string",
"minLength": 0,
"maxLength": 4096,
"enum": [
"true",
"false"
],
"description": "Filter by advertiser presence. Pass false to find ad-free shows — an assertion that requires the show to have enough ana"
},
"has_video": {
"type": "string",
"minLength": 0,
"maxLength": 4096,
"enum": [
"true",
"false"
],
"description": "Filter by whether episodes have discovered video versions (e.g. YouTube releases)."
},
"language": {
"type": "string",
"minLength": 0,
"maxLength": 4096,
"description": "Filter by the podcast's language (ISO 639-1 code, e.g. 'en', 'fr'). Matches the primary language subtag, so 'fr' covers"
},
"limit": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Results per page"
},
"max_avg_episode_minutes": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Only podcasts whose average episode runs at most this many minutes."
},
"max_episodes_per_week": {
"type": "number",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Only podcasts publishing at most this many episodes per week on average (e.g. 0.5 for fortnightly-or-slower shows)."
},
"min_avg_episode_minutes": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Only podcasts whose average episode runs at least this many minutes. Combine with max_avg_episode_minutes to target a le"
},
"min_episodes_per_week": {
"type": "number",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Only podcasts publishing at least this many episodes per week on average (e.g. 5 for weekday dailies). Cadence is measur"
},
"popularity_threshold": {
"type": "number",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Restrict results to podcasts whose global popularity percentile is at least this value (accepted range [0,1]). Omitting"
},
"publishing_status": {
"type": "string",
"minLength": 0,
"maxLength": 4096,
"enum": [
"active",
"dormant"
],
"description": "Filter by publishing activity: active shows have released an episode within the last 90 days; dormant shows have not."
},
"q": {
"type": "string",
"minLength": 0,
"maxLength": 4096,
"description": "Search the catalog by podcast name. GET /v1/podcasts/search is the canonical search endpoint and accepts the same parame"
},
"slug": {
"type": "string",
"minLength": 0,
"maxLength": 4096,
"description": "Filter by exact podcast slug (e.g., 'all-in'). Slugs are stable, human-readable identifiers returned on every podcast ob"
},
"sort": {
"type": "string",
"minLength": 0,
"maxLength": 4096,
"enum": [
"relevance",
"popularity"
],
"description": "Result ordering. relevance — the default whenever q is present — ranks by how well each podcast matches the query, break"
},
"suitability_tier": {
"type": "string",
"minLength": 0,
"maxLength": 4096,
"enum": [
"SAFE",
"LIMITED",
"SENSITIVE",
"UNSAFE"
],
"description": "Filter by brand-suitability tier (IAB Tech Lab Brand Safety & Suitability Framework, formerly GARM). Only returns podcas"
},
"topic_id": {
"type": "string",
"minLength": 0,
"maxLength": 4096,
"description": "Filter by topic ID, ancestry slug (e.g., technology/artificial-intelligence), or ancestry path hash. Matches podcasts wh"
}
},
"required": [],
"additionalProperties": false
}Endpoint
- Method
GET- URL
https://api.particle.pro/v1/podcasts/search
Payment
- Protocol
- x402
- Listed price
- 0.01 USDC per request on Base
- Payment method
- exact
- Network
- eip155:8453
- Asset
- 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Listed terms are catalog metadata. The caller supplies inputs and calls the tool outside Onelayer. If payment is required, the caller uses a compatible wallet to pay.
Source
- Directory
- Coinbase x402 Bazaar
- Record
- GET https://api.particle.pro/v1/podcasts/search
- Retrieved
- 2026-09-30T20:37:07.382Z
- Catalog file SHA-256
6837ccddf886f0007cf3727ea9d27faaa5047b51b4f425345c554ce1c271a524- Catalog built
- 2026-09-30T22:31:58.034Z