Skip to content

Create Campaign

POST
/api/public/campaign
curl --request POST \
--url https://backend.podscribe.ai/api/public/campaign \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "publisher": "example", "advertiser": "example", "type": "Baked-in", "flights": [ { "startDate": "2026-04-15T12:00:00Z", "endDate": "2026-04-15T12:00:00Z", "expectedDate": "2026-04-15T12:00:00Z", "totalCost": 1, "cpm": 1, "currency": "USD", "expectedImpressions": 1 } ], "externalId": "example", "itunesOrYtId": "example", "geo": "GLOBAL", "expectedUnits": [ { "position": "pre", "length": 1 } ], "promo": "example", "expectedLandingUrl": "example", "product": "example", "initiative": "example", "expectedTalkingPoints": [ "example" ], "disallowedTalkingPoints": [ "example" ], "mediaType": "podcast", "tags": [ "example" ], "scriptUrl": "example", "teamMembers": [ "example" ], "creativeIds": [ "example" ], "billToPublisher": true }'
Media typeapplication/json
object
name
required

Campaign name

string
publisher

Publisher name (lookup). Optional when itunesOrYtId is provided; then the publisher is inferred from the show.

string
advertiser
required

Advertiser name

string
type
required

Campaign type

string
Allowed values: Baked-in DAI
flights
required

The start date of the campaign eg 2024-01-20

Array<object>
object
startDate

Start of the campaign in ISO format for DAI campaigns

string format: date-time
endDate

End of the campaign in ISO format for DAI campaigns

string format: date-time
expectedDate

Expected date in ISO format for Baked-in campaings

string format: date-time
totalCost

Rate of the campaign

number
cpm

Cpm rate of the campaign

number
currency

Currency code (USD, EUR, GBP). Exchange rate is calculated automatically on the backend.

string
Allowed values: USD EUR GBP
expectedImpressions

Expected impressions of the campaign

number
externalId

External ID of the campaign

string
itunesOrYtId

ITunes ID / YouTube Channel ID / YouTube Playlist ID

string
geo

Country

string
default: GLOBAL
Allowed values: GLOBAL US GB CA AU DE FR MX IE JP ES IN BR IT AR KR SA AE ID EG SG AT NL
expectedUnits

Expected units of the campaign

Array<object>
object
position
required

Ad position

string
Allowed values: pre mid post feed drop
length
required

Ad length in seconds

number
promo

The discount code

string
expectedLandingUrl

Expected landing URL of the campaign

string
product

Product metadata

string
initiative

Initiative metadata

string
expectedTalkingPoints

Expected talking points

Array<string>
disallowedTalkingPoints

Disallowed talking points

Array<string>
mediaType

Media type of the campaign

string
default: podcast
Allowed values: podcast youtube simulcast streaming sai ott_ctv display video twitter twitch tiktok instagram
tags

Tags

Array<string>
scriptUrl

Script URL of the campaign

string
teamMembers

Team members metadata

Array<string>
creativeIds

Creative IDs metadata

Array<string>
billToPublisher

Whether to bill publisher

boolean

OK

Media typeapplication/json
object
id
required

ID of the campaign

string
externalId

External ID of the campaign

string
Examplegenerated
{
"id": "example",
"externalId": "example"
}

Unexpected error.

Media typeapplication/json
object
message

Nodejs Error

object
Examplegenerated
{
"message": {}
}