> ## Documentation Index
> Fetch the complete documentation index at: https://docs.particle.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# Brand Suitability

> Industry-standard content risk and advertiser-fit assessment for podcasts: per-category prevalence and treatment, evidence excerpts, and a deterministic trend across analyses.

Particle API assesses every well-classified podcast against the 12 categories from the [IAB Tech Lab Content Taxonomy 3.x Brand Safety & Suitability Framework](https://iabtechlab.com/standards/content-taxonomy/) — the industry-standard taxonomy that advertisers, agencies, DSPs, and ad-verification vendors (IAS, DoubleVerify, Spotify, Hive, Sounder, Barometer) train against. The framework was originally published by GARM (Global Alliance for Responsible Media) in 2022; IAB Tech Lab assumed stewardship after GARM was discontinued in 2024 and continues to publish and version it. Each assessment covers a contiguous, non-overlapping window of recent episodes, refreshed on a risk-tiered cadence.

<Note>Available to MCP agents through [`particle_podcast_resolve`](/mcp/tools/podcasts/podcast-resolve): every result carries the high-level `suitability_tier` enum unconditionally, and passing `include: ["suitability"]` attaches the per-category breakdown alongside the podcast. Corpus-wide publisher views are [`particle_podcast_get_suitability_leaderboard`](/mcp/tools/podcast_suitability/podcast-get-suitability-leaderboard) and [`particle_podcast_list_suitability_category_publishers`](/mcp/tools/podcast_suitability/podcast-list-suitability-category-publishers) (opt-in `podcast_suitability` category).</Note>

## What the assessment gives you

A buy-or-skip decision needs more than a flat 0–1 risk score per category. A true-crime documentary about Bundy is heavy on crime content but advertiser-friendly; a host endorsing violent vigilantism is light on crime content but advertiser-toxic. The Particle assessment captures that distinction along five dimensions:

* **Per-category prevalence** — `NONE`, `INCIDENTAL`, `OCCASIONAL`, `FREQUENT`, `PERVASIVE`. How often the category appears across the analyzed window.
* **Per-category treatment** — `ABSENT`, `DOCUMENTARY`, `EDITORIAL`, `PROMOTIONAL`, `GLAMORIZING`. How the content is framed when it appears. Treatment is the entire reason a news show covering terrorism stays advertiser-friendly while a podcast endorsing it does not.
* **Per-category risk level** — derived deterministically from `(prevalence, treatment, code)`. `NONE`, `LOW`, `MEDIUM`, `HIGH`, or `FLOOR` (violates the Brand Safety Floor).
* **Per-category evidence** — every category with prevalence above `NONE` carries one or more cited episode excerpts so you can audit the verdict and defend planner decisions to clients.
* **Methodology transparency** — sample size, confidence, and the time window of episodes that produced the verdict, all on every response.

## Tiers

The overall verdict maps to the framework's four risk levels:

| Tier        | Framework risk level | Advertiser fit                                                                       |
| ----------- | -------------------- | ------------------------------------------------------------------------------------ |
| `SAFE`      | Low Risk             | Suitable for all advertisers, including kid-directed and family brands.              |
| `LIMITED`   | Medium Risk          | Suitable for most advertisers; family brands may apply caution.                      |
| `SENSITIVE` | High Risk            | Many brands skip; suitable for general-audience and adult-product advertisers.       |
| `UNSAFE`    | Brand Safety Floor   | No monetization — content violates the Brand Safety Floor for at least one category. |

## Categories

All 12 brand-safety categories are evaluated on every assessment, even when prevalence is `NONE`, so the response records that the category was actively considered.

| Code                             | Description                                                                                                                |
| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `adult_sexual`                   | Adult or sexually explicit content.                                                                                        |
| `arms_ammunition`                | Arms, ammunition, and weapon-related content.                                                                              |
| `crime_harmful_acts`             | Crime, harmful acts to individuals, and human-rights violations.                                                           |
| `death_injury_military_conflict` | Death, injury, or military conflict.                                                                                       |
| `online_piracy`                  | Online piracy and copyright infringement.                                                                                  |
| `hate_speech_aggression`         | Hate speech and acts of aggression directed at protected groups.                                                           |
| `obscenity_profanity`            | Obscenity and profanity, including gestures.                                                                               |
| `illegal_drugs_alcohol_tobacco`  | Illegal drugs, tobacco, e-cigarettes, vaping, or alcohol.                                                                  |
| `spam_harmful`                   | Spam or harmful content (malware, phishing, scams).                                                                        |
| `terrorism`                      | Terrorism, including its promotion or glorification.                                                                       |
| `debated_social_issues`          | Debated sensitive social issues with insensitive or harmful treatment.                                                     |
| `misinformation`                 | Factually incorrect or deliberately misleading content presented as fact (added in the September 2023 framework revision). |

## Get a podcast's suitability

<CodeGroup>
  ```bash curl theme={"dark"}
  curl "https://api.particle.pro/v1/podcasts/the-jane-doe-show/suitability" \
    -H "X-API-Key: $PARTICLE_API_KEY"
  ```

  ```js JavaScript theme={"dark"}
  const res = await fetch(
    "https://api.particle.pro/v1/podcasts/the-jane-doe-show/suitability",
    { headers: { "X-API-Key": process.env.PARTICLE_API_KEY } },
  );
  const assessment = await res.json();
  ```

  ```python Python theme={"dark"}
  res = httpx.get(
      "https://api.particle.pro/v1/podcasts/the-jane-doe-show/suitability",
      headers={"X-API-Key": os.environ["PARTICLE_API_KEY"]},
  )
  assessment = res.json()
  ```
</CodeGroup>

```jsonc Response (truncated) theme={"dark"}
{
  "overall_tier": "LIMITED",
  "confidence": "HIGH",
  "summary": "True-crime show with documentary treatment of historical American cases. No glorification; sponsor base is mainstream consumer brands.",
  "methodology": "Reviewed segments for 12 episodes from a 6-month window; read full transcripts for 5. Cross-checked sponsors for drug- and predatory-finance categories.",
  "episodes_analyzed": 25,
  "sample_window_start_at": "2025-11-04T00:00:00Z",
  "sample_window_end_at":   "2026-04-29T00:00:00Z",
  "evaluated_at": "2026-05-02T18:14:21Z",
  "categories": [
    {
      "code": "crime_harmful_acts",
      "description": "Crime, harmful acts to individuals, and human-rights violations.",
      "prevalence": "FREQUENT",
      "treatment": "DOCUMENTARY",
      "risk_level": "MEDIUM",
      "reasoning": "Hosts narrate established cases without endorsement, citing primary sources and court records.",
      "evidence": [
        {
          "episode_id": "78cgekLUjCJBUZbj3s5K8Y",
          "episode_title": "The Jane Doe Case",
          "episode_slug": "the-jane-doe-case",
          "excerpt": "We're going to walk through the timeline based on the trial transcripts..."
        }
      ]
    },
    {
      "code": "obscenity_profanity",
      "description": "Obscenity and profanity, including gestures.",
      "prevalence": "OCCASIONAL",
      "treatment": "EDITORIAL",
      "risk_level": "LOW",
      "reasoning": "Profanity used for emphasis, never directed at protected groups.",
      "evidence": [/* … */]
    }
    // 10 more entries — every brand-safety category appears, even when prevalence=NONE.
  ]
}
```

## Optional sections

Pass `include=trend`, `include=history`, or `include=trend,history` to expand the response.

```bash theme={"dark"}
curl "https://api.particle.pro/v1/podcasts/the-jane-doe-show/suitability?include=trend,history" \
  -H "X-API-Key: $PARTICLE_API_KEY"
```

`trend` is computed deterministically from the diff between the two most recent assessments — the agent never compares across windows. Each analysis covers a contiguous, non-overlapping window of episodes, so the comparison is genuinely "what was true in the prior window vs. what's true now."

```jsonc Response (truncated) theme={"dark"}
{
  "overall_tier": "LIMITED",
  // ... main body unchanged ...
  "trend": {
    "direction": "STABLE",
    "prior_evaluated_at": "2025-11-12T03:55:08Z",
    "changed_categories": [
      {
        "code": "obscenity_profanity",
        "prior_prevalence": "INCIDENTAL",
        "new_prevalence":   "OCCASIONAL",
        "prior_treatment":  "EDITORIAL",
        "new_treatment":    "EDITORIAL",
        "prior_risk_level": "LOW",
        "new_risk_level":   "LOW"
      }
    ]
  },
  "history": [
    {
      "overall_tier": "LIMITED",
      "confidence": "HIGH",
      "episodes_analyzed": 25,
      "sample_window_start_at": "2025-05-01T00:00:00Z",
      "sample_window_end_at":   "2025-11-04T00:00:00Z",
      "evaluated_at": "2025-11-12T03:55:08Z"
    }
    // …
  ]
}
```

`direction` is one of `STABLE`, `IMPROVING`, `DECLINING`, or `INSUFFICIENT_HISTORY` (when fewer than two assessments exist).

## Filter the catalog by tier

`GET /v1/podcasts` accepts a `suitability_tier` query parameter. Returns only podcasts whose most recent assessment landed at that tier — useful for buyer-side catalog scans:

```bash theme={"dark"}
curl "https://api.particle.pro/v1/podcasts?suitability_tier=SAFE&limit=20" \
  -H "X-API-Key: $PARTICLE_API_KEY"
```

The high-level `suitability_tier` enum is also surfaced on every podcast object in list and detail responses; the per-category breakdown, evidence, and methodology are gated to the dedicated suitability endpoint.

## Refresh cadence

Each assessment covers a contiguous, non-overlapping window of recent episodes — the most-recent \~25, scoped above the prior assessment's window so no episode is ever re-analyzed across runs. Refresh thresholds depend on the prior tier:

| Prior tier  | Re-evaluates after this many new episodes | Max wall-clock staleness |
| ----------- | ----------------------------------------- | ------------------------ |
| `SAFE`      | 25 new episodes since last window         | 24 months                |
| `LIMITED`   | 20 new episodes                           | 24 months                |
| `SENSITIVE` | 15 new episodes                           | 12 months                |
| `UNSAFE`    | 10 new episodes                           | 9 months                 |

A daily show producing \~30 episodes per month therefore refreshes roughly monthly when SAFE and weekly when UNSAFE. A weekly show refreshes roughly every 5–6 months when SAFE.

## Limitations

* **Minimum coverage.** A first assessment requires at least 5 episodes with classified topics. Podcasts below this threshold return a 404 from this endpoint.
* **English-language bias.** Treatment classification is most reliable for English-language content; languages with limited transcript coverage may produce lower-confidence assessments.
* **Sample-based.** Each assessment is a snapshot of a contiguous window, not the full catalog. Across many assessments over a podcast's lifetime, the union of windows covers the publishing history; for catalog-wide claims combine `include=history` with the per-window `sample_window_start_at` / `sample_window_end_at` boundaries.

## Related

* [Bias analysis](/podcasts/overview#bias-analysis) — political bias rating, the closest analog (per-podcast LLM-derived assessment with evidence and methodology).
* [Episodes](/podcasts/episodes) — drill into the episodes that produced an assessment.
* [Concepts → Pricing weight](/concepts#pricing-weight) — suitability calls are priced higher per call.
