---
title: "List podcasts carrying company advertising"
method: GET
path: "/v1/companies/{id}/podcast/advertising/podcasts"
tags: ["Companies", "tier:premium"]
---

# List podcasts carrying company advertising

`GET /v1/companies/{id}/podcast/advertising/podcasts`

## Request

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

Returns podcasts ranked by exact company-linked ad count, with company-wide sponsor filters, per-podcast sponsor breakdowns, recent preview segments, and cursor pagination.

## Path parameters

- `id` string, required: Company slug (e.g. 'apple'), domain (e.g. 'apple.com'), or ID

## Query parameters

- `limit` integer: Results per page
- `cursor` string: Opaque pagination cursor from a previous response
- `sponsor_id` string: Optional sponsor ID. Keeps the company constraint while narrowing rows to this sponsor identity.
- `podcast_id` string: Optional podcast ID, slug, or Apple/iTunes collection ID. Filters rich rows without narrowing facets.
- `publisher_id` string: Optional publisher ID or slug. Filters rich rows without narrowing facets.
- `include_facets` boolean: Include exhaustive lightweight Show and Network filter metadata. Honored only on cursorless requests.
- `include_sponsors` boolean: Include company-wide sponsor totals. Disable when loading podcast rows separately from filter metadata; per-podcast sponsors and previews are unchanged.
- `include_previews` boolean: Include recent ad segment previews per podcast. Disable for count-only consumers to skip preview hydration.
- `preview_limit` integer: Maximum previews per podcast when include_previews is enabled.
- `since` string: Only include ads from episodes published on or after this ISO 8601 date or date-time
- `until` string: Only include ads before this ISO 8601 date-time. A bare date includes that whole UTC day.

## Response `200`

OK

- CompanyAdvertisingPodcastsPage
  - `cursor` string: Pass to the next request for more podcasts
  - `data` CompanyAdvertisingPodcastEntry[], nullable, required: Podcasts ranked by company ad count
    - `ad_count` integer, required: Exact company-linked ad count on this podcast in the requested scope
    - `episode_count` integer, required: Exact distinct episode count on this podcast in the requested scope
    - `last_seen_at` string, date-time: Publication time of the company's most recent ad on this podcast
    - `podcast` PodcastCompact, required
      - `best_rank` PodcastRankingHandle
        - `captured_at` string, date-time, required
        - `category_slug` string
        - `chart_type` 'top_podcasts', required
        - `country` string
        - `rank` integer, required
        - `source` 'apple' | 'spotify', required
      - `id` string, required: Podcast ID
      - `image_url` string: Cover image URL
      - `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. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.
      - `publisher` PodcastPublisherCompact
        - `id` string, required: Publisher ID
        - `name` string, required: Publisher name
        - `slug` string: Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).
      - `slug` string: Human-readable slug identifier
      - `title` string, required: Podcast title
    - `preview_segments` CompanyAdvertisingPreview[], nullable, required: Recent company-attributed ad segments from this podcast, bounded by the requested preview limit
      - `segment` Segment, required
        - `audio_url` string: Direct audio URL for this segment
        - `description` string: AI-generated segment description
        - `duration_seconds` number, double, required: Segment duration
        - `end_line` integer: Last transcript line covered by this segment (1-indexed, inclusive). Omitted for episodes segmented before line ranges were recorded.
        - `end_seconds` number, double, required: End time within the episode — when the segment's last spoken line ends. Where start_line/end_line are present, segments partition the transcript's lines rather than tiling the wall-clock timeline, and the interval between this and the next segment's start_seconds contains no transcribed speech (typically under a second, occasionally minutes of music or silence). Segments without a recorded line range were produced by an earlier segmenter and a small share of them do leave transcript lines uncovered, so a gap between two such segments may contain real speech. Use start_line/end_line to slice a transcript losslessly.
        - `episode` EpisodeCompactWithPodcast
          - `id` string, required: Episode ID
          - `podcast` PodcastCompact
            - `best_rank` PodcastRankingHandle
              - …
            - `id` string, required: Podcast ID
            - `image_url` string: Cover image URL
            - `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. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.
            - `publisher` PodcastPublisherCompact
              - …
            - `slug` string: Human-readable slug identifier
            - `title` string, required: Podcast title
          - `published_at` string, date-time: Publication date
          - `slug` string: Human-readable slug identifier
          - `title` string, required: Episode title
          - `web_url` string: The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.
        - `id` string, required: Unique identifier
        - `number` integer, required: Segment position within the episode
        - `read_type` string: For AD segments, how the ad was delivered (HOST_READ, PRE_RECORDED, NETWORK_PROMO)
        - `start_line` integer: First transcript line covered by this segment (1-indexed, inclusive). Line numbers match the number field of GET /v1/podcasts/episodes/{id}/transcript lines. This segment's end_line + 1 is the next segment's start_line, and the segments together cover every line of the transcript. Omitted for episodes segmented before line ranges were recorded.
        - `start_seconds` number, double, required: Start time within the episode — when the segment's first spoken line begins
        - `summary` string: AI-generated segment summary
        - `title` string, required: AI-generated segment title
        - `type` string, required: Segment type (INTRO, PERSONAL_BANTER, TOPIC_DISCUSSION, INTERVIEW, TRANSITION, AD, OUTRO)
        - `url` string: Moment link that plays the segment on Radar from start_seconds: the episode's web_url with ?t=. Ad placements are segments, so this is also the link to an ad read. On a search match's segment it comes from the match's episode. Omitted only when the segment's episode or its podcast is unavailable.
      - `sponsors` SponsorCompact[], nullable, required: Company-scoped sponsors attributed to this segment
        - `company` CompanyCompact
          - `description` string: Short company description, when known.
          - `domain` string: Primary website domain (e.g. 'nvidia.com'), when known.
          - `id` string, required: Company identifier (domain, slug, or encoded ID)
          - `image_url` string: Company logo or image URL
          - `name` string, required: Company name
          - `slug` string: Stable human-readable handle (the linked knowledge-graph slug, e.g. 'nvidia'), when known. Companies have no slug of their own; prefer this for display and pass it (or id) to /v1/companies.
          - `ticker` string: Primary stock ticker symbol, when listed.
        - `id` string, required: Unique identifier
        - `name` string, required: Sponsor name
    - `sponsors` CompanyAdvertisingSponsorBreakdown[], nullable, required: Sponsor attribution breakdown for this podcast and request scope
      - `ad_count` integer, required: Ads attributed to this sponsor inside the response scope
      - `episode_count` integer, required: Distinct episodes containing this sponsor inside the response scope
      - `last_seen_at` string, date-time: Publication time of this sponsor's most recent ad inside the response scope
      - `sponsor` SponsorCompact, required
        - `company` CompanyCompact
          - `description` string: Short company description, when known.
          - `domain` string: Primary website domain (e.g. 'nvidia.com'), when known.
          - `id` string, required: Company identifier (domain, slug, or encoded ID)
          - `image_url` string: Company logo or image URL
          - `name` string, required: Company name
          - `slug` string: Stable human-readable handle (the linked knowledge-graph slug, e.g. 'nvidia'), when known. Companies have no slug of their own; prefer this for display and pass it (or id) to /v1/companies.
          - `ticker` string: Primary stock ticker symbol, when listed.
        - `id` string, required: Unique identifier
        - `name` string, required: Sponsor name
  - `facets` CompanyAdvertisingFacets
    - `podcast_count` integer, required: Exact number of matching podcasts, including podcasts without a publisher
    - `podcasts` CompanyAdvertisingPodcastFacet[], nullable, required: All matching podcasts, ranked by company ad activity
      - `ad_count` integer, required: Exact company-linked ad count on this podcast in the facet scope
      - `podcast` CompanyAdvertisingPodcastFacetIdentity, required
        - `id` string, required: Podcast ID
        - `publisher` PodcastPublisherCompact
          - `id` string, required: Publisher ID
          - `name` string, required: Publisher name
          - `slug` string: Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).
        - `slug` string: Human-readable slug identifier
        - `title` string, required: Podcast title
    - `publisher_count` integer, required: Exact number of matching publishers
    - `publishers` CompanyAdvertisingPublisherFacet[], nullable, required: All matching publishers, ranked by company ad activity
      - `ad_count` integer, required: Exact company-linked ad count across this publisher's matching podcasts
      - `podcast_count` integer, required: Exact number of matching podcasts attributed to this publisher
      - `publisher` PodcastPublisherCompact, required
        - `id` string, required: Publisher ID
        - `name` string, required: Publisher name
        - `slug` string: Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).
  - `has_more` boolean, required: Whether more ranked podcasts exist
  - `sponsors` CompanyAdvertisingSponsorBreakdown[], nullable, required: Complete date-scoped sponsor roster for this company; empty when include_sponsors=false
    - `ad_count` integer, required: Ads attributed to this sponsor inside the response scope
    - `episode_count` integer, required: Distinct episodes containing this sponsor inside the response scope
    - `last_seen_at` string, date-time: Publication time of this sponsor's most recent ad inside the response scope
    - `sponsor` SponsorCompact, required
      - `company` CompanyCompact
        - `description` string: Short company description, when known.
        - `domain` string: Primary website domain (e.g. 'nvidia.com'), when known.
        - `id` string, required: Company identifier (domain, slug, or encoded ID)
        - `image_url` string: Company logo or image URL
        - `name` string, required: Company name
        - `slug` string: Stable human-readable handle (the linked knowledge-graph slug, e.g. 'nvidia'), when known. Companies have no slug of their own; prefer this for display and pass it (or id) to /v1/companies.
        - `ticker` string: Primary stock ticker symbol, when listed.
      - `id` string, required: Unique identifier
      - `name` string, required: Sponsor name

## Other responses

- `402`: Payment Required. Read error_code. payment_required is the x402 path: either a keyless request being challenged — pay $0.03 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)
