Individual Ads
const url = 'https://backend.podscribe.ai/api/public/advertisers/individual-ads';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"advertiser":"example","startDate":null,"endDate":null,"limit":500,"offset":0}'};
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/advertisers/individual-ads \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "advertiser": "example", "startDate": null, "endDate": null, "limit": 500, "offset": 0 }'Returns individual ad rows for a single advertiser using the same data set as the advertiser page “Individual Ads” download. Any advertiser tracked by Podscribe can be requested; it does not need to be linked to your account.
This endpoint is available for Pro users with API access.
Result file format:
| Field | Type | Example | Description |
|---|---|---|---|
| published_at | string | 2025-01-15 | Episode publish date (YYYY-mm-DD). |
| download_at | string | 2025-01-20 13:45 | Timestamp when download/listen data was captured. |
| network | string | Wondery | Publisher/network name. |
| position | string | mid | Ad position. |
| read_type | string | Host | Read type for the ad. |
| read_score | number | 94 | AI read score. |
| podcast_title | string | Example Show | Show title. |
| episode_title | string | Episode 123 | Episode title. |
| transcript | string | Try acme.com slash pod… | Detected ad transcript snippet. |
| start_time | string | 00:10:25 | Ad start timestamp in episode. |
| end_time | string | 00:10:55 | Ad end timestamp in episode. |
| ad_length | string | 00:00:30 | Ad duration. |
| genre | string | Business,Investing | Show categories. |
| episode_duration | string | 00:45:12 | Episode duration. |
| podcast_rank | number | 153 | Show rank metric. |
| apple_podcast_id | number | 123456789 | Apple Podcast ID. |
| product | string | Premium Plan | Product name. |
| link | string | https://… | Direct ad playback link. |
| estimated_impressions | number | 45000 | Estimated listens for the episode, summed across regions. |
| estimated_spend | number | 1200 | Estimated spend for this ad, $ (episode spend split per ad). |
| media_type | string | podcast | Channel the show runs on: podcast, youtube, radio, spotify, instagram, rumble, tiktok, twitch or twitter. |
estimated_impressions and estimated_spend use the same estimates as the advertiser page,
so an episode’s ads each carry the same impressions and an equal share of the episode’s spend.
Podscribe estimates podcast shows only. Radio and the social platforms return null, and
YouTube returns 0. A podcast episode returns null when Podscribe holds no audience data
for the region it was transcribed in.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
The advertiser to get individual ads for.
Start date timestamp, e.g., 2023-10-10, default is 24 months ago.
End date timestamp, e.g., 2023-10-10, default is today.
Maximum number of rows to return per request.
Number of rows to skip; combine with limit to page through all rows.
Responses
Section titled “Responses”OK
object
object
object
object
Total rows matching the filters, across all pages.
Example
{ "pagination": { "total": 3987 }}Invalid data
Unexpected error.
object
Nodejs Error
object
Examplegenerated
{ "message": {}}