---
title: "Create a LinkedIn campaign group (Campaign Manager campaign)"
method: POST
path: "/api/v1/tools/linkedin_create_campaign_group/execute"
tags: ["LinkedIn Ads"]
---

# Create a LinkedIn campaign group (Campaign Manager campaign)

`POST /api/v1/tools/linkedin_create_campaign_group/execute`

## Request

- Base URL: `https://adako.ai`
- URL: `https://adako.ai/api/v1/tools/linkedin_create_campaign_group/execute`
- Auth: HTTP bearer

Creates a campaign group (a campaign in Campaign Manager) — the container every LinkedIn campaign (ad set) must sit inside, and the place a shared lifetime budget can be set across several campaigns.
Use when: starting a distinct initiative (a launch, a quarter, a market) that should be budgeted and reported as one thing, or when a create tool needs a group and no sensible existing one is there.
Do not create a group per campaign: that is what campaigns are for, and a forest of one-campaign groups makes the account unreadable. Run linkedin_list_campaign_groups first and reuse.
Do not set a total budget the user has not named. A group budget is a hard ceiling: when it is reached every campaign inside stops, whatever their own budgets say. LinkedIn only accepts a total budget together with an end date; if the user gave no end date, ask for one.
The group is created ACTIVE, because LinkedIn creates groups only as ACTIVE or DRAFT. It holds no campaigns, so nothing spends, and every campaign created inside it starts paused.
Returns the group read back from LinkedIn.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `arguments` object, required
    - `ad_account_id` string: LinkedIn ad account id — the numeric id from Campaign Manager, as a string ("506699162"). Omit it to use the primary account; pass it when the user manages several.
    - `name` string, required: Group name as it appears in Campaign Manager. At most 200 bytes of UTF-8: about 200 Latin letters, fewer in scripts such as Japanese.
    - `total_budget` number: Lifetime ceiling across every campaign in the group, a decimal in the account currency. Only set it if the user named a number. Requires end_date.
    - `start_date` string: YYYY-MM-DD; defaults to today.
    - `end_date` string: YYYY-MM-DD, optional. Required when total_budget is set.
    - `idempotency_key` string: Optional caller-supplied key; identical keys never execute twice.
    - `raw_data` boolean: Return compact JSON only (no markdown). Use when you will compute on the result.

## Response `200`

The tool ran. A write returns proposal_id and approve_url while the change waits for approval.

- SuccessEnvelope
  - `success` unknown, required
  - `tool` string, required
  - `data` object, required: Machine-readable result.
  - `markdown` string, required: The same result written for a person or a model.
  - `quota` Quota: Task usage for the current billing period.
    - `plan` string
    - `used` integer
    - `limit` integer
    - `period_end` string
    - `upgrade_url` string
  - `proposal_id` string: Present for writes. Nothing changes on the ad platform until it is approved.
  - `approve_url` string: Where a person approves the proposal.
  - `request_id` string, required

## Other responses

- `400`: Invalid arguments, or the ad account could not be resolved.
- `401`: Missing, invalid, revoked or expired API key.
- `402`: Monthly task quota used up, or the plan does not include this tool.
- `403`: The connected ad account lacks the access level this tool needs.
- `404`: Unknown tool name.
- `409`: Not connected, reconnect needed, confirmation required, a proposal already pending or no longer pending, an identical create that failed earlier today (proposal_failed_before), a create that duplicates an approved one (duplicate_create), the ad-account limit of the plan reached (account_limit), or an Idempotency-Key reused with different arguments.
- `429`: Rate limited by Adako or by the ad platform. See Retry-After.
- `500`: Unexpected error inside Adako.
- `502`: The ad platform returned an error.

---

[API](https://skmtc.dev/adako/apis/adako-rest-api.md) · [All operations](https://skmtc.dev/adako/apis/adako-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adako/apis/adako-rest-api/revisions/59ee60d48a56?raw)
