Audience Size
const url = 'https://backend.podscribe.ai/api/public/reports/audience';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"example","startDate":"example","endDate":"example","show":["example"],"impressionGeo":["example"],"mediaType":["CTV / OTT"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://backend.podscribe.ai/api/public/reports/audience \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "example", "startDate": "example", "endDate": "example", "show": [ "example" ], "impressionGeo": [ "example" ], "mediaType": [ "CTV / OTT" ] }'Returns the same data as the Aud. Size tab (Episodes Totals CSV).
This endpoint utilizes a task system.
Please read the description of Get status of file processing to understand how it works.
Result file format:
| Field | Type | Example | Description |
|---|---|---|---|
| Series | string | The Daily | Name of the series or show. |
| Episode | string | Friday Roundup | Episode title. |
| uploadedAt | string | 04/22/2026 | Episode publish/upload date in MM/DD/YYYY format. |
| Total Impressions | number | 125000 | Sum of RSS, YouTube, Rumble, and Spotify impressions for the episode. |
| RSS Impressions | number | 84000 | Podcast/RSS impressions for the episode. |
| YT Impressions | number | 26000 | YouTube views for the episode. |
| Rumble Impressions | number | 9000 | Rumble views for the episode. |
| Spotify Impressions | number | 6000 | Spotify video impressions for the episode. |
| reach | number | 42000 | Estimated reach for the episode. |
| avgFrequency | number | 2.98 | Average frequency for the episode. |
| ads | number | 3 | Number of ads detected for the episode. |
| d15 | number | 54000 | Podcast/RSS impressions accumulated within 15 days of publish. |
| d30 | number | 71000 | Podcast/RSS impressions accumulated within 30 days of publish. |
| d45 | number | 79000 | Podcast/RSS impressions accumulated within 45 days of publish. |
| d60 | number | 84000 | Podcast/RSS impressions accumulated within 60 days of publish. |
| d15 YouTube | number | 12000 | YouTube views accumulated within 15 days of publish. |
| d30 YouTube | number | 19000 | YouTube views accumulated within 30 days of publish. |
| d45 YouTube | number | 23000 | YouTube views accumulated within 45 days of publish. |
| d60 YouTube | number | 26000 | YouTube views accumulated within 60 days of publish. |
| d15 Rumble | number | 3500 | Rumble views accumulated within 15 days of publish. |
| d30 Rumble | number | 6000 | Rumble views accumulated within 30 days of publish. |
| d45 Rumble | number | 7600 | Rumble views accumulated within 45 days of publish. |
| d60 Rumble | number | 9000 | Rumble views accumulated within 60 days of publish. |
| d15 Spotify | number | 2200 | Spotify video impressions accumulated within 15 days of publish. |
| d30 Spotify | number | 3900 | Spotify video impressions accumulated within 30 days of publish. |
| d45 Spotify | number | 5200 | Spotify video impressions accumulated within 45 days of publish. |
| d60 Spotify | number | 6000 | Spotify video impressions accumulated within 60 days of publish. |
| Length | string | 01:02:35 | Episode duration formatted as HH:MM:SS. |
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Optional display name for the generated report. Shown in the Reports UI. Ignored when an identical cached report is reused; pass a new request (or wait for cache expiry) to apply a new name.
Start of date range (e.g. YYYY-MM-DD or ISO date)
End of date range (e.g. YYYY-MM-DD or ISO date)
Optional. Each value is a show identifier resolved server-side: Podscribe series id (numeric string), iTunes id, YouTube channel id, or YouTube playlist id (same semantics as GET /api/public/series/episodes/{id} path).
Optional. Two-letter country codes (case-insensitive, e.g. us, ca, mx)
Optional. Media types to include, using the same labels as the Media Type filter on the Aud. Size tab.
Responses
Section titled “Responses”OK. Returns a file processing task; poll file-processor/status/{id} then download CSV.
object
Examplegenerated
{ "id": "example", "status": "example", "url": "example"}Invalid request (e.g. invalid dates or validation error)
Forbidden (invalid token or not a publisher)
Unexpected error