---
title: "Get a guest's brand-suitability exposure profile"
method: GET
path: "/v1/podcasts/guests/{id}/suitability"
tags: ["Podcast Guests", "tier:standard"]
---

# Get a guest's brand-suitability exposure profile

`GET /v1/podcasts/guests/{id}/suitability`

## Request

- Base URL: `https://api.particle.pro`
- URL: `https://api.particle.pro/v1/podcasts/guests/{id}/suitability`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Returns the distribution of IAB Tech Lab brand-suitability tiers across the podcasts a guest has appeared on, plus the most-frequently flagged categories observed in those shows. This measures the guest's exposure across the shows they've appeared on — not a verdict on the guest themselves.

## Path parameters

- `id` string, required: Person identifier — person slug (recommended), knowledge-graph entity slug, or encoded UUID

## Response `200`

OK

- PodcastGuestSuitabilityExposure
  - `lifetime` PodcastGuestSuitabilityWindow, required
    - `tier_distribution` PodcastGuestSuitabilityTierBucket[], nullable, required: Episode + distinct-podcast counts bucketed by tier
      - `distinct_podcasts` integer, required: Distinct podcasts in this tier
      - `episodes` integer, required: Episodes in this tier
      - `tier` string, required: SAFE, LIMITED, SENSITIVE, UNSAFE, or UNKNOWN (not yet evaluated)
    - `window_start` string, date-time: Inclusive lower bound of the window (omitted for the lifetime slice)
  - `notes` string, required: Plain-text framing: this surface measures exposure, not guest risk.
  - `recent_90d` PodcastGuestSuitabilityWindow, required
    - `tier_distribution` PodcastGuestSuitabilityTierBucket[], nullable, required: Episode + distinct-podcast counts bucketed by tier
      - `distinct_podcasts` integer, required: Distinct podcasts in this tier
      - `episodes` integer, required: Episodes in this tier
      - `tier` string, required: SAFE, LIMITED, SENSITIVE, UNSAFE, or UNKNOWN (not yet evaluated)
    - `window_start` string, date-time: Inclusive lower bound of the window (omitted for the lifetime slice)
  - `top_categories` PodcastGuestSuitabilityCategoryStat[], nullable: Most-frequently flagged IAB Tech Lab brand-suitability categories across the guest's podcasts (NONE-prevalence buckets omitted)
    - `code` string, required: IAB Tech Lab brand-suitability category code (e.g. adult_sexual, hate_speech_aggression)
    - `podcasts` integer, required: Distinct podcasts the guest has appeared on whose latest suitability analysis flagged this (code, prevalence) bucket
    - `prevalence` string, required: INCIDENTAL, OCCASIONAL, FREQUENT, or PERVASIVE
    - `treatment` string: Most-prevalent treatment observed at this prevalence level: EDITORIAL, DOCUMENTARY, PROMOTIONAL, or GLAMORIZING

## Other responses

- `402`: Payment Required. Read error_code. payment_required is the x402 path: either a keyless request being challenged — pay $0.04 in USDC per request (requirements in the PAYMENT-REQUIRED header) or send a pp_ API key — or a supplied payment that failed settlement (details in the PAYMENT-RESPONSE header; retry the same signature before signing a new one). See https://docs.particle.pro/x402. Any other code means the credential was accepted but does not cover this request (a plan or session gate such as premium_required or paid_plan_confirmation_required); its resolve says how to obtain access, and no payment header is sent.
- `default`: Error

---

[API](https://skmtc.dev/particle/apis/particle-api.md) · [All operations](https://skmtc.dev/particle/apis/particle-api/llms.txt) · [OpenAPI document](https://skmtc.dev/particle/apis/particle-api/revisions/416ba82ab9d7?raw)
