API referenceLaunches

Add ad set

Adds a draft ad set under the campaign campaignNodeId, optionally applying settings (dot-notation paths, budget amounts in cents) at creation. The response lists the paths that were stored in appliedSettings and those that were not in notApplied. On an imported live campaign, the new ad set is published into that same campaign on the next publish.

POST
/v1/brands/{brandId}/launches/{launchId}/ad-sets
bearerAuth
headerAuthorizationBearer <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*integer

The brand the request acts on. Every brand-scoped resource lives under its brand.

launchId*string

The campaign launch (batch) id.

Idempotency-Key?string

Retrying with the same key within 24 hours returns the first response without acting again.

Lengthlength <= 255
application/json
  1. body
campaignNodeId*string

ID of the campaign node to add the ad set to

Length1 <= length
name?string

Name for the new ad set

settings?

Optional settings to apply at create time. Dot-notation paths, same shape as updateSettings (e.g. targeting.ageRange, budget.dailyAmount, schedule.startTime, optimization.bidStrategy). budget.dailyAmount / budget.lifetimeAmount are CENTS. Array-typed paths must be native arrays. The response reports appliedSettings and notApplied, do NOT claim any value the response did not echo back.

Response Body

Add ad set

application/json
  1. response
[key: string]?unknown
curl -X POST "https://example.com/v1/brands/0/launches/string/ad-sets" \  -H "Authorization: Bearer koast_sk_..." \  -H "Content-Type: application/json" \  -d '{    "campaignNodeId": "string"  }'
{  "property1": null,  "property2": null}

Required scope: write. CLI: koast add-adset, see Launches commands. Authentication, headers, errors and pagination work the same on every operation. See Conventions.