Skip to main content
Two shows about the same topic can be completely different products: a daily two-minute news brief read by a single narrator, and a weekly 90-minute interview show with rotating guests and a heavy ad load. Particle API derives that distinction from what’s actually in the audio — speaker roles, durations, publish timestamps, and video discovery — and exposes it as a compact format object on every podcast, with every attribute doubling as a catalog filter.

The format object

Every podcast response (list and detail) embeds the compact form:
Response from GET /v1/podcasts/pivot (truncated)
{
  "id": "QpMz7GYKfSNuUa6zKXA4Q",
  "title": "Pivot",
  "slug": "pivot",
  "format": {
    "guest_frequency": "regular",
    "signals": ["interview"],
    "has_ads": true,
    "has_video": true,
    "avg_episode_minutes": 62,
    "episodes_per_week": 2.1,
    "publishing_status": "active"
  }
}
FieldMeaning
guest_frequencyHow often episodes feature a guest: never, rare, occasional, regular, or always.
signalsDetected production formats: interview, panel, call_in, solo_narrated. A show can carry several — a panel show with call-in segments carries both.
has_adsWhether episodes carry advertiser reads. The full sponsor breakdown lives at Advertising.
has_videoWhether any episode has a discovered video version (e.g. a YouTube release).
avg_episode_minutesAverage episode length in minutes.
episodes_per_weekPublishing cadence over the trailing 90 days — 5.0 for a weekday daily, 0.5 for a fortnightly show.
publishing_statusactive (an episode within the last 90 days) or dormant.
Attributes are asserted, never presumed: guest_frequency, signals, and has_ads are derived from speaker analysis and are omitted until enough of the show’s episodes have been analyzed to judge. An omitted field means not yet known — it never means “no”. The format object itself is omitted for podcasts whose episodes haven’t been ingested yet.

Guest frequency buckets

ValueShare of analyzed episodes with a guest
never0% — the show does not host guests
rareup to 25%
occasional25–50%
regular50–90%
alwaysabove 90% — interview-driven

Format signals

SignalWhat it indicates
interviewGuests appear in at least half of episodes — conversation with outside voices is the show’s core format.
panelA recurring panel of commentators (review roundtables, sports panels, actual-play shows).
call_inListener callers are part of the format (advice shows, talk radio).
solo_narratedNo meaningful guest, panel, or caller presence — narrated news briefs, audio essays, solo commentary.

Get the full profile

The dedicated endpoint returns the exact rates and distributions behind the compact attributes:
curl "https://api.particle.pro/v1/podcasts/pivot/format" \
  -H "X-API-Key: $PARTICLE_API_KEY"
Response (truncated)
{
  "guest_frequency": "regular",
  "signals": ["interview"],
  "has_ads": true,
  "has_video": true,
  "avg_episode_minutes": 62,
  "episodes_per_week": 2.1,
  "publishing_status": "active",

  "analyzed_episodes": 164,
  "episode_count": 167,

  "guest_episode_rate": 0.57,
  "ad_episode_rate": 0.94,
  "call_in_episode_rate": 0.0,
  "panel_episode_rate": 0.02,

  "episode_minutes_p25": 54,
  "episode_minutes_median": 61,
  "episode_minutes_p75": 70,

  "publish_days": {
    "monday": 2, "tuesday": 81, "wednesday": 1,
    "thursday": 0, "friday": 80, "saturday": 2, "sunday": 1
  },

  "first_episode_published_at": "2024-06-04T09:00:00Z",
  "latest_episode_published_at": "2026-06-02T09:00:00Z",
  "computed_at": "2026-06-03T14:22:51Z"
}
analyzed_episodes is the sample size behind every role-derived attribute — surface it when you need to qualify a claim. The publish_days histogram reads the schedule directly: this show ships Tuesdays and Fridays.

Filter the catalog

Every compact attribute has a matching query parameter on GET /v1/podcasts, and they compose with the existing topic_id, language, suitability_tier, and popularity_threshold filters. Find ad-free interview shows:
curl --get "https://api.particle.pro/v1/podcasts" \
  --data-urlencode "guest_frequency=regular,always" \
  --data-urlencode "has_ads=false" \
  -H "X-API-Key: $PARTICLE_API_KEY"
Find 20–40 minute commute-length business shows that are still publishing:
curl --get "https://api.particle.pro/v1/podcasts" \
  --data-urlencode "topic_id=business" \
  --data-urlencode "min_avg_episode_minutes=20" \
  --data-urlencode "max_avg_episode_minutes=40" \
  --data-urlencode "publishing_status=active" \
  -H "X-API-Key: $PARTICLE_API_KEY"
Find weekday-daily news briefs (solo-narrated, ~5+ episodes a week):
curl --get "https://api.particle.pro/v1/podcasts" \
  --data-urlencode "format_signal=solo_narrated" \
  --data-urlencode "min_episodes_per_week=4" \
  -H "X-API-Key: $PARTICLE_API_KEY"
ParameterMatches
guest_frequencyComma-separated list of buckets; a podcast matches any listed bucket.
format_signalComma-separated list of signals; a podcast matches any listed signal.
has_adstrue or false. false is an assertion of ad-free-ness and requires enough analyzed episodes — sparsely-analyzed shows are excluded rather than presumed clean.
has_videotrue or false.
min_avg_episode_minutes / max_avg_episode_minutesBounds on average episode length.
min_episodes_per_week / max_episodes_per_weekBounds on publishing cadence.
publishing_statusactive or dormant.
Format filters only match podcasts whose profile supports the claim — podcasts without enough analyzed episodes are excluded from role-derived filters rather than guessed at.

Limitations

  • Sample-based. Role-derived attributes (guest_frequency, signals, has_ads) require at least 5 analyzed episodes; below that they are omitted and the podcast won’t match those filters. Check analyzed_episodes on the full profile for the sample behind any claim.
  • Cadence needs observation time. episodes_per_week measures the trailing 90 days and is omitted for shows tracked more briefly — a show’s full back catalog isn’t part of the measurement, so cadence reflects current behavior, not lifetime averages.
  • Dormancy is time-derived. publishing_status flips to dormant 90 days after the latest tracked episode; a seasonal show between drops will read as dormant until its next release.
  • Guests — the people behind guest_frequency: lifetime guest profiles, appearances, and trends.
  • Advertising — the full sponsor breakdown behind has_ads.
  • Episodes — per-episode speakers, durations, and videos.
  • Brand Suitability — the other show-level assessment surfaced compactly on every podcast object.