Single Campaign
Note: An organization-scoped API key returns a campaign only when it belongs to that key’s advertiser and publisher. A campaign outside that scope is not found. Attribution numbers the agency hid from that publisher are omitted.
Details, ads, flags, delivery and site performance of one campaign.
Example:
curl -sS -G 'https://backend.podscribe.ai/api/public/campaign/{request_id}' \ --data-urlencode 'unique_ads_only=true' \ -H 'Authorization: Bearer <YOUR_API_KEY>' \ -H 'Accept: application/json'Replace {request_id} with the campaign ID or external ID. Omit unique_ads_only (or set false) to return all ads.
const url = 'https://backend.podscribe.ai/api/public/campaign/example?unique_ads_only=false&include_episode_descriptions=false&include_pinned_comments=false&matched_promo_ads_only=false&include_ad_transcripts=false';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}import requests
url = "https://backend.podscribe.ai/api/public/campaign/example"
querystring = {"unique_ads_only":"false","include_episode_descriptions":"false","include_pinned_comments":"false","matched_promo_ads_only":"false","include_ad_transcripts":"false"}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers, params=querystring)
print(response.json())curl --request GET \ --url 'https://backend.podscribe.ai/api/public/campaign/example?unique_ads_only=false&include_episode_descriptions=false&include_pinned_comments=false&matched_promo_ads_only=false&include_ad_transcripts=false' \ --header 'Authorization: Bearer <token>'Path Parameters
Section titled “Path Parameters”Campaign ID or external ID
Query Parameters
Section titled “Query Parameters”When true, returns only unique ads
When true, each ad in the response includes the source episode description
When true, each ad in the response includes the pinned comment for the source episode (when available)
When true, returns only ads whose promo matches the campaign promo (campaigns without promo keep all ads)
When true, each ad in the response includes the transcript text
Response Body
Section titled “Response Body”OK
The campaign details: dates, geo, expected units, promo, rate, show, publisher and advertiser.
{externalId,requestId,endDate,22 more}
The external id of the campaign.
The request id of the campaign.
The end date of the campaign.
The start date of the campaign.
The expected date of the campaign.
The geo of audience for the campaign.
The expected ad lengths for the campaign, in seconds.
The expected ad positions for the campaign (such as pre, mid, post), in the same order as expectedLengths.
The discount code for the campaign.
The category of the campaign.
The agency name
The rate in USD for the campaign.
The talking points for the campaign as one string, separated by ||; disallowed points start with ~.
The expected impressions for the campaign.
The series publisher.
The advertiser name.
The placement name for the campaign.
The date and time the prefix was placed.
The advertiser lookup name.
The series ID in the Podscribe platform.
Itunes Id
The youtube series ID in the Podscribe platform.
Spotify Video opt-in date, ISO 8601 date-time.
The campaign name.
Whether the campaign is DAI. false or null means baked-in.
The ads found for the campaign.
Array<{adId,episodeTitle,episodeId,19 more}>
The ad ID in the Podscribe platform.
The episode title.
The episode ID in the Podscribe platform.
The episode duration
The series title.
The platform the ad is placed on.
The publisher of the series.
The date when the episode has been downloaded and transcribed.
Direct HTTPS link to the ad-clip audio file (the ad only, not the full episode). Download it with a plain GET, for example curl -O <audioFileUrl>. The download needs no API key, Authorization header or Podscribe login; the API key is needed only to call this endpoint. Empty when no clip is stored for the ad.
The URL of the transcript file for the ad.
The start timestamp of the ad in the episode.
The end timestamp of the ad in the episode.
The URL of the episode in the feed.
The public link to the ad.
The placement number of the ad.
The placement group number of the ad.
The placement group in number of the ad.
The placement percent of the ad in the episode.
The lookup names of the advertiser’s competitors that also advertise in the ad’s episode.
The other advertisers whose ads start before the campaign advertiser’s ad in the same episode.
The other advertisers whose ads start after the campaign advertiser’s ad in the same episode.
The full transcript text of the ad; only present when include_ad_transcripts=true is passed in the request.
The flags raised on the campaign’s ads, one entry per ad.
Array<{adId,flags,competitors}>
The ad ID in the Podscribe platform.
The flags for the ad.
Competitor ads found for this ad, across all competitor flag types, one entry per competitor and episode. Empty when no competitor flag was raised. Distinct from ads[].competitors, which lists competitor lookup names on the ad itself rather than the competitor placements behind the flag.
Array<{competitor,publishedAt,transcriptionCreatedAt}>
The competitor’s advertiser display name.
Publish date of the episode the competitor ad was found in.
When Podscribe downloaded that competitor episode’s transcript. Distinct from ads[].transcriptionCreatedAt, which is the transcript date of the ad itself. Null for ads evaluated before this field was recorded.
The flag names of each ad, keyed by ad ID; returned for Baked-in campaigns only.
The downloads, views, likes, comments, reach and frequency of the campaign.
{downloadsTotal,youtubeViewsTotal,downloadsByDay,18 more}
The total number of downloads for the campaign; for Baked-in campaigns it also includes YouTube views.
The total number of youtube views for the campaign.
The downloads by day for the campaign.
Array<{date,impressions}>
The date with the format like 2023-05-03.
The impressions for current day.
The views by day for the campaign.
Array<{date,views}>
The date with the format like 2023-05-03.
The views for current day.
Total Instagram views for the campaign.
Instagram views by day for the campaign.
Array<{date,views}>
The date with the format like 2023-05-03.
Instagram views for the day.
Total Instagram likes for the campaign.
Instagram likes by day for the campaign.
Array<{date,likes}>
The date with the format like 2023-05-03.
Instagram likes for the day.
Total Instagram comments for the campaign.
Instagram comments by day for the campaign.
Array<{date,comments}>
The date with the format like 2023-05-03.
Instagram comments for the day.
Total TikTok views for the campaign.
TikTok views by day for the campaign.
Array<{date,views}>
The date with the format like 2023-05-03.
TikTok views for the day.
Total TikTok likes for the campaign.
TikTok likes by day for the campaign.
Array<{date,likes}>
The date with the format like 2023-05-03.
TikTok likes for the day.
Total TikTok comments for the campaign.
TikTok comments by day for the campaign.
Array<{date,comments}>
The date with the format like 2023-05-03.
TikTok comments for the day.
Total Twitch views for the campaign.
Twitch views by day for the campaign.
Array<{date,views}>
The date with the format like 2023-05-03.
Twitch views for the day.
Object with keys as episode ids and values as list of data by day for the episode.
{key}
List of data by day for the episode.
Data by day for the episode.
The start date with the format like 2023-05-03.
The impressions for episode of current day.
The YouTube views for episode of current day.
The reach for the campaign.
The downloads frequency for the campaign.
The site visits, visitors, signups and purchases attributed to the campaign.
{visitors,visits,signups,7 more}
The number of visitors for the campaign.
The number of visits for the campaign.
The number of signups for the campaign.
The number of purchases for the campaign.
The number of leads for the campaign. DAI campaigns only.
The daily visitors for the campaign, keyed by date (YYYY-MM-DD).
The daily visits for the campaign, keyed by date (YYYY-MM-DD).
The daily signups for the campaign, keyed by date (YYYY-MM-DD).
The daily purchases for the campaign, keyed by date (YYYY-MM-DD).
The daily leads for the campaign, keyed by date (YYYY-MM-DD). DAI campaigns only.
{ "ads": [ { "platform": "Podcast" } ], "performance": { "visitorsByDate": { "2025-07-29": 175, "2025-07-30": 350 }, "visitsByDate": { "2025-07-29": 175, "2025-07-30": 350 }, "signupsByDate": { "2025-07-29": 175, "2025-07-30": 350 }, "purchasesByDate": { "2025-07-29": 175, "2025-07-30": 350 }, "leadsByDate": { "2025-07-29": 175, "2025-07-30": 350 } }}