Link an audience
Attaches one of your saved address lists to the campaign — the targeting for an ADM campaign.
List them at GET /client/audiences.
Needs an OAuth access token carrying the campaigns:create scope — a plain client key is refused. The campaign must be one of yours; anything else returns 404.
Authorization
campaignBuilderOAuth campaigns:createOAuth access token carrying the campaigns:create scope, obtained through the Oppizi consent screen (the same sign-in used by the MCP connector). A plain client key carries no scopes and is refused on these endpoints.
In: header
Scope: campaigns:create
Path Parameters
Your campaign id.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/client/campaigns/string/audience" \ -H "Content-Type: application/json" \ -d '{ "audienceId": null }'{ "success": true, "data": { "campaignId": 9700, "audienceId": 88 }}Choose the creative POST
Attaches one of your designs to the campaign. List yours at [GET /client/designs](/docs/api-reference/assets/listdesigns), or start from the [template library](/docs/api-reference/assets/listdesigntemplates). Needs an OAuth access token carrying the `campaigns:create` scope — a plain client key is refused. The campaign must be one of yours; anything else returns 404.
Set launch date and volume PATCH
Sets the remaining details — when the campaign starts and how much is delivered. **Do not work out the launch date yourself.** [Creation status](/docs/api-reference/campaign-builder/getcampaigncreationstatus) returns `earliestStartDate`, which already accounts for print lead times and the channel you picked. Needs an OAuth access token carrying the `campaigns:create` scope — a plain client key is refused. The campaign must be one of yours; anything else returns 404.