---
title: "List podcasts a company could advertise on next"
method: GET
path: "/v1/companies/{id}/podcast/recommendations"
tags: ["Companies", "tier:premium"]
---

# List podcasts a company could advertise on next

`GET /v1/companies/{id}/podcast/recommendations`

## Request

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

Returns shows the company does NOT advertise on, ranked by how related they are to the shows it DOES — the buy-side prospect list. Each seed show counts by how much the company advertises there, so a list is anchored on its main venues; every show it has ever bought is excluded. Each row carries the podcast, a calibrated score in (0,1), a band (strong / moderate / weak), and with include=via the company's own shows that led there. Companies with no podcast advertising get an empty page.

## Path parameters

- `id` string, required: Company identifier — slug, domain, or canonical ID

## Query parameters

- `limit` integer: Results per page
- `cursor` string: Opaque pagination cursor from previous response
- `include` string[], nullable: Optional response sections. Pass include=via to attach, for each recommendation, the company's own shows that led to it — the venues to cite when explaining why the recommendation fits.
- `min_score` number, double: Only recommendations at or above this score, applied within the 200 strongest recommendations the list holds. Omit (or 0) for every recommendation; the band field is the recommended way to filter by strength.
- `language` string: Only shows in this language (ISO 639-1 code, e.g. 'en', 'es'; a region suffix such as 'fr-CA' is reduced to the language), applied within the 200 strongest recommendations the list holds.

## Response `200`

OK

- PageRecommendedPodcast
  - `cursor` string: Pass to next request for more results
  - `data` RecommendedPodcast[], nullable, required: List of results
    - `band` 'strong' | 'moderate' | 'weak', required: Coarse class of the score; branch on this rather than on exact thresholds.
    - `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
    - `score` number, double, required: Strength of the recommendation in (0,1): the seed shows' relatedness to this one, compounded across the seeds that list it. For a guest the seeds are the shows that booked them, counted once per publisher; for a company the shows it already advertises on, weighted by how much it advertises there.
    - `via` PodcastCompact[], nullable: The seed shows that led to this recommendation, strongest first: the person's own shows, or the shows the company already buys. The reason to cite when explaining the fit.
      - `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
  - `has_more` boolean, required: Whether more results exist

## 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)
