API referenceLaunches

Add ads

Creates 1-100 ads, each under its own adsetNodeId, optionally attaching a creativeId and a copyGenerationId in the same request. Partial success is possible: unknown ad sets are returned in notFound and per-ad errors in failed, while the rest are created.

POST
/v1/brands/{brandId}/launches/{launchId}/ads
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
ads*array<>

Ads to create (1-100). Each entry targets a specific adsetNodeId with optional creativeId and copyGenerationId.

Items1 <= items <= 100

Response Body

Add ads

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

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