Skip to main content
GET
/
v1
/
podcasts
/
{id}
cURL
curl -H "X-API-Key: $PARTICLE_API_KEY" \
  "https://api.particle.pro/v1/podcasts/{id}?topic_limit=10"
{
  "explicit": true,
  "id": "<string>",
  "title": "<string>",
  "bias": "<string>",
  "description": "<string>",
  "episode_count": 123,
  "format": {
    "has_video": true,
    "avg_episode_minutes": 123,
    "episodes_per_week": 123,
    "guest_frequency": "<string>",
    "has_ads": true,
    "publishing_status": "<string>",
    "signals": [
      "<string>"
    ]
  },
  "image_url": "<string>",
  "language": "<string>",
  "political_context": "<string>",
  "popularity": 123,
  "publisher": {
    "id": "<string>",
    "name": "<string>",
    "slug": "<string>"
  },
  "slug": "<string>",
  "speakers": [
    {
      "name": "<string>",
      "entity": {
        "id": "<string>",
        "name": "<string>",
        "slug": "<string>",
        "company": {
          "id": "<string>",
          "domain": "<string>",
          "ticker": "<string>"
        },
        "description": "<string>",
        "person": {
          "id": "<string>",
          "company": "<string>",
          "image_url": "<string>",
          "title": "<string>"
        },
        "type": {
          "name": "<string>",
          "slug": "<string>"
        },
        "wikipedia_url": "<string>"
      },
      "occurrences": 123,
      "role": "<string>"
    }
  ],
  "suitability_tier": "<string>",
  "topics": [
    {
      "id": "<string>",
      "name": "<string>",
      "slug": "<string>",
      "ancestry": "<string>",
      "ancestry_path": "<string>",
      "episode_count": 123
    }
  ],
  "url": "<string>"
}

Authorizations

X-API-Key
string
header
required

Pass your API key in the X-API-Key header (recommended).

Path Parameters

id
string
required

Podcast slug (e.g., 'all-in', 'lex-fridman-podcast'), internal ID, or numeric iTunes ID

Query Parameters

topic_limit
integer<int64>
default:10

Maximum number of aggregated topics to return (0 for none, max 1000)

Required range: 0 <= x <= 1000

Response

OK

explicit
boolean
required

Whether the podcast contains explicit content

id
string
required

Unique identifier

title
string
required

Podcast title

bias
string

Political bias rating for the podcast: EXTREME_LEFT, LEANS_LEFT, LEFT, CENTER, RIGHT, LEANS_RIGHT, or EXTREME_RIGHT. Empty when the podcast is not substantively political or has not been evaluated yet. Fetch GET /v1/podcasts/{id}/bias for the full analysis including reasoning and evidence.

description
string

Podcast description

episode_count
integer<int64>

Total number of episodes

format
object

Production format attributes derived from episode analysis: guest frequency, detected formats (interview, panel, call_in, solo_narrated), ad and video presence, episode length, publishing cadence, and activity status. Every field doubles as a GET /v1/podcasts filter. Omitted for podcasts with no tracked episodes yet; within the object, the speaker-derived fields (guest_frequency, signals, has_ads) are additionally omitted until enough episodes have been analyzed to judge. Fetch GET /v1/podcasts/{id}/format for the full breakdown including exact rates, duration percentiles, and the publish-day histogram.

image_url
string

Cover image URL

language
string

ISO 639-1 language code

match_quality
enum<string>

How confidently this result matches your q search, strongest first. exact: this is the show with that name. partial: the name matches your search strongly (your search may have included extra words). fuzzy: the name is similar but not the same — it may be the show you meant with a typo, or a different show with a near-identical name; verify before relying on it. description: your search text appears in the show's description rather than its name. speculative: a loose suggestion, listed last. When resolving a show programmatically, act on exact or partial results and treat anything weaker as candidates to confirm. Present only when q was provided.

Available options:
exact,
partial,
fuzzy,
description,
speculative
political_context
string

Political framework the bias rating is calibrated against: US, UK, EU, CANADA, AUSTRALIA, INDIA, OTHER. Omitted when the latest analysis returned NOT_POLITICAL or when no analysis has been run yet.

popularity
number<double>

Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular; the most popular podcast is 1.0. Always global — never scoped to a topic_id or other filter. Omitted when the podcast is not currently charting. Pair with the popularity_threshold query parameter on GET /v1/podcasts to filter the catalog by this value.

publisher
object

Publisher attributed to this podcast. Available on detail responses; absent on list responses and on podcasts whose publisher attribution is not yet known.

slug
string

Human-readable slug identifier

speakers
object[] | null

Top recurring speakers

suitability_tier
string

High-level brand-suitability verdict from the IAB Tech Lab Brand Safety & Suitability Framework (formerly GARM): SAFE, LIMITED, SENSITIVE, or UNSAFE. Empty when the podcast has not been evaluated yet. Per-category breakdown, evidence, and methodology are gated to GET /v1/podcasts/{id}/suitability.

topics
object[] | null

Top topics discussed across episodes, ordered by frequency

url
string

RSS feed URL