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

# Particle: List Publisher Advertising Podcasts

> List a publisher's podcasts ranked by ad volume, from its publisher slug. Includes SDK V2 examples, input constraints, response fields, and Deepline cost.

List a publisher's podcasts ranked by ad volume, from its publisher slug.

> [!NOTE]
>
> Tool ID: `particle_list_publisher_advertising_podcasts`

## Run this action

Use the TypeScript SDK for one call. Use `ctx.tools.execute(...)` inside a Play for durable calls, scheduled calls, or CSV processing.

```ts theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'particle_list_publisher_advertising_podcasts',
  {
    "id": "id_123"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute particle_list_publisher_advertising_podcasts --input '{
  "id": "id_123"
}' --json
```

## Example response

The SDK returns this shape at `result.toolResponse.raw`. The example values illustrate the response.

```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
{
  "data": {
    "data": [
      {
        "ad_count": 123,
        "avg_ads_per_episode": 123,
        "episodes_with_ads": 123,
        "podcast": {
          "id": "id_123",
          "title": "VP of Engineering"
        },
        "read_type_breakdown": {
          "host_read": 123,
          "pre_recorded": 123
        },
        "unique_sponsors": 123
      }
    ],
    "has_more": true
  }
}
```

Use `deepline describe particle_list_publisher_advertising_podcasts --json` for the latest machine-readable contract.

## Input reference

Returns a paginated list of the publisher's podcasts ordered by total ad count. Differs from /v1/podcasts/publishers/\{id}/podcasts (popularity-ordered) by exposing monetization data instead of audience signals: ad\_count, unique\_sponsors, episodes\_with\_ads, avg\_ads\_per\_episode, and the host-read/pre-recorded breakdown.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.limit` | `integer` | No | `25` | Results per page Format: `int64`. Minimum: 1. Maximum: 100. |
| `payload.cursor` | `string` | No | — | Opaque pagination cursor from previous response |
| `payload.id` | `string` | Yes | — | Podcast publisher slug (e.g., 'iheartpodcasts', 'bbc-radio-4') or ID |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Returns a paginated list of the publisher's podcasts ordered by total ad count. Differs from /v1/podcasts/publishers/{id}/podcasts (popularity-ordered) by exposing monetization data instead of audience signals: ad_count, unique_sponsors, episodes_with_ads, avg_ads_per_episode, and the host-read/pre-recorded breakdown.",
    "properties": {
      "limit": {
        "type": "integer",
        "description": "Results per page",
        "default": 25,
        "minimum": 1,
        "maximum": 100,
        "format": "int64"
      },
      "cursor": {
        "type": "string",
        "description": "Opaque pagination cursor from previous response"
      },
      "id": {
        "type": "string",
        "description": "Podcast publisher slug (e.g., 'iheartpodcasts', 'bbc-radio-4') or ID"
      }
    },
    "required": [
      "id"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | Provider response payload. |
| `result.data.cursor` | `string` | No | — | Pass to next request for more results |
| `result.data.data` | `array` | Yes | — | List of results |
| `result.data.data[].ad_count` | `integer` | Yes | — | Total ads detected on this podcast Format: `int64`. |
| `result.data.data[].avg_ads_per_episode` | `number` | Yes | — | Mean ads per episode (across episodes with ads) Format: `double`. |
| `result.data.data[].episodes_with_ads` | `integer` | Yes | — | Episodes containing at least one ad Format: `int64`. |
| `result.data.data[].podcast` | `object` | Yes | — | — |
| `result.data.data[].podcast.best_rank` | `object` | No | — | — |
| `result.data.data[].podcast.best_rank.captured_at` | `string` | Yes | — | Format: `date-time`. |
| `result.data.data[].podcast.best_rank.category_slug` | `string` | No | — | — |
| `result.data.data[].podcast.best_rank.chart_type` | `"top_podcasts"` | Yes | — | Allowed: `top_podcasts`. |
| `result.data.data[].podcast.best_rank.country` | `string` | No | — | — |
| `result.data.data[].podcast.best_rank.rank` | `integer` | Yes | — | Format: `int64`. |
| `result.data.data[].podcast.best_rank.source` | `"apple" \| "spotify"` | Yes | — | Allowed: `apple`, `spotify`. |
| `result.data.data[].podcast.id` | `string` | Yes | — | Podcast ID |
| `result.data.data[].podcast.image_url` | `string` | No | — | Cover image URL |
| `result.data.data[].podcast.popularity` | `number` | No | — | 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. Format: `double`. |
| `result.data.data[].podcast.publisher` | `object` | No | — | — |
| `result.data.data[].podcast.publisher.id` | `string` | Yes | — | Publisher ID |
| `result.data.data[].podcast.publisher.name` | `string` | Yes | — | Publisher name |
| `result.data.data[].podcast.publisher.slug` | `string` | No | — | 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). |
| `result.data.data[].podcast.slug` | `string` | No | — | Human-readable slug identifier |
| `result.data.data[].podcast.title` | `string` | Yes | — | Podcast title |
| `result.data.data[].read_type_breakdown` | `object` | Yes | — | — |
| `result.data.data[].read_type_breakdown.host_read` | `integer` | Yes | — | Number of host-read ads Format: `int64`. |
| `result.data.data[].read_type_breakdown.pre_recorded` | `integer` | Yes | — | Number of pre-recorded ads Format: `int64`. |
| `result.data.data[].unique_sponsors` | `integer` | Yes | — | Distinct sponsors on this podcast Format: `int64`. |
| `result.data.has_more` | `boolean` | Yes | — | Whether more results exist |
| `result.meta` | `object` | No | — | Additional response metadata (status, paging). |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Provider response payload.",
        "properties": {
          "cursor": {
            "type": "string",
            "description": "Pass to next request for more results"
          },
          "data": {
            "type": "array",
            "description": "List of results",
            "items": {
              "type": "object",
              "properties": {
                "ad_count": {
                  "type": "integer",
                  "description": "Total ads detected on this podcast",
                  "format": "int64"
                },
                "avg_ads_per_episode": {
                  "type": "number",
                  "description": "Mean ads per episode (across episodes with ads)",
                  "format": "double"
                },
                "episodes_with_ads": {
                  "type": "integer",
                  "description": "Episodes containing at least one ad",
                  "format": "int64"
                },
                "podcast": {
                  "type": "object",
                  "properties": {
                    "best_rank": {
                      "type": "object",
                      "properties": {
                        "captured_at": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "category_slug": {
                          "type": "string"
                        },
                        "chart_type": {
                          "type": "string",
                          "enum": [
                            "top_podcasts"
                          ]
                        },
                        "country": {
                          "type": "string"
                        },
                        "rank": {
                          "type": "integer",
                          "format": "int64"
                        },
                        "source": {
                          "type": "string",
                          "enum": [
                            "apple",
                            "spotify"
                          ]
                        }
                      },
                      "required": [
                        "source",
                        "chart_type",
                        "rank",
                        "captured_at"
                      ],
                      "additionalProperties": false
                    },
                    "id": {
                      "type": "string",
                      "description": "Podcast ID"
                    },
                    "image_url": {
                      "type": "string",
                      "description": "Cover image URL"
                    },
                    "popularity": {
                      "type": "number",
                      "description": "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.",
                      "format": "double"
                    },
                    "publisher": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "Publisher ID"
                        },
                        "name": {
                          "type": "string",
                          "description": "Publisher name"
                        },
                        "slug": {
                          "type": "string",
                          "description": "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)."
                        }
                      },
                      "required": [
                        "id",
                        "name"
                      ],
                      "additionalProperties": false
                    },
                    "slug": {
                      "type": "string",
                      "description": "Human-readable slug identifier"
                    },
                    "title": {
                      "type": "string",
                      "description": "Podcast title"
                    }
                  },
                  "required": [
                    "id",
                    "title"
                  ],
                  "additionalProperties": false
                },
                "read_type_breakdown": {
                  "type": "object",
                  "properties": {
                    "host_read": {
                      "type": "integer",
                      "description": "Number of host-read ads",
                      "format": "int64"
                    },
                    "pre_recorded": {
                      "type": "integer",
                      "description": "Number of pre-recorded ads",
                      "format": "int64"
                    }
                  },
                  "required": [
                    "host_read",
                    "pre_recorded"
                  ],
                  "additionalProperties": false
                },
                "unique_sponsors": {
                  "type": "integer",
                  "description": "Distinct sponsors on this podcast",
                  "format": "int64"
                }
              },
              "required": [
                "podcast",
                "ad_count",
                "unique_sponsors",
                "episodes_with_ads",
                "avg_ads_per_episode",
                "read_type_breakdown"
              ],
              "additionalProperties": false
            }
          },
          "has_more": {
            "type": "boolean",
            "description": "Whether more results exist"
          }
        },
        "required": [
          "data",
          "has_more"
        ],
        "additionalProperties": false
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": true
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Particle provider guide](https://deepline.com/docs/providers/particle/guide.md)
* [SDK V2 quickstart](https://deepline.com/docs/sdk-v2/quickstart.md)
* [SDK reference](https://deepline.com/docs/sdk-v2/sdk-reference.md)
* [Run tools across a CSV](https://deepline.com/docs/sdk-v2/batch-csv.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.