Clone live campaign
Deep-copies the ad platform campaign providerCampaignId (ad sets, ads, copy and creatives) into count new launches as editable drafts with all platform ids stripped. Each clone gets its own launch, since a launch holds one campaign. Returns the new campaignLaunchId of each clone.
bearerAuthAuthorizationBearer <token>An organization API key (koast_sk_…) with the API surface enabled, or an OAuth access token issued by Koast (koast_at_…) whose audience covers this API. REST access requires an active Agency plan.
brandId*integerThe brand the request acts on. Every brand-scoped resource lives under its brand.
Idempotency-Key?stringRetrying with the same key within 24 hours returns the first response without acting again.
length <= 255application/json- body
providerCampaignId*stringCampaign id to clone on the ad platform (the raw id from listAccountCampaigns rows).
1 <= lengthcount?integerHow many cloned batches to create (1 batch per clone, max 20).
1 <= value <= 201titlePrefix?stringOptional title prefix for the cloned batches; a copy index is appended when count > 1.
1 <= length <= 180Clone live campaign
application/json- response
clones*array<>requested*numbercurl -X POST "https://example.com/v1/brands/0/launches/clone" \ -H "Authorization: Bearer koast_sk_..." \ -H "Content-Type: application/json" \ -d '{ "providerCampaignId": "string" }'{ "clones": [ { "campaignLaunchId": "string", "title": "string" } ], "requested": 0}Required scope: write. CLI: koast clone-live-campaign, see Launches commands. Authentication, headers, errors and pagination work the same on every operation. See Conventions.
Create campaign launch
Creates an empty launch (batch) under the brand and returns its id. The launch holds no campaigns until you add one. title defaults to "Untitled Batch".
Import live campaign
Wraps a campaign that exists on the ad platform but not in Koast (providerCampaignId) in a new launch, so it can be reported on and extended with new ad sets and ads that publish into the same campaign. Idempotent: if a launch already wraps that campaign, its campaignLaunchId is returned with alreadyExisted: true.