---
title: "Copy a LinkedIn campaign (ad set)"
method: POST
path: "/api/v1/tools/linkedin_clone_campaign/execute"
tags: ["LinkedIn Ads"]
---

# Copy a LinkedIn campaign (ad set)

`POST /api/v1/tools/linkedin_clone_campaign/execute`

## Request

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

Copies the settings of an existing campaign (an ad set in Campaign Manager) — objective, type, format, bidding (automatic, or manual with its cost type and bid), budgets, language, delivery settings and targeting — into a new **PAUSED** campaign, with optional overrides for name, budget, schedule, language, Audience Network and targeting.
Use when: an approach works and should be repeated for another market, audience or offer. Cloning keeps the settings that are working and makes the difference explicit.
For another market: put the new locations in add_targeting.locations AND the original ones in remove_targeting.locations — add_targeting alone keeps the original market too — and pass language when that market uses LinkedIn in another language. The preview names the locations the copy will target; read them to the user before they approve.
Do not expect the creatives (ads) to come with it: LinkedIn creatives belong to a campaign, and the clone starts empty. Add one with linkedin_add_creative or it can never spend, however healthy the settings look.
Do not clone to make a small change to the original — that is linkedin_update_campaign. Two near-identical campaigns split the audience, compete in the same auction, and make both look worse.
Do not clone into the same audience without changing the targeting; state plainly that the two will overlap if the user asks for it anyway.
The preview counts the copy's audience and refuses targeting under LinkedIn's 300-member minimum.
Returns the new campaign id and what was copied versus overridden. Nothing spends until it is resumed and has a creative.

## 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.
    - `campaign_id` string, required: The campaign to copy. LinkedIn ids are numeric strings; a full urn:li:… value is also accepted.
    - `name` string, required: Name for the new campaign.
    - `campaign_group_id` string: Put the copy in this group. Defaults to the original's group. LinkedIn ids are numeric strings; a full urn:li:… value is also accepted.
    - `daily_budget` number: Override the daily budget on the copy.
    - `add_targeting` object: Entity URNs to add to the copied targeting. New locations are added to the original ones: to move market, also remove those with remove_targeting.
      - `locations` string[]
      - `titles` string[]
      - `industries` string[]
      - `seniorities` string[]
      - `staffCountRanges` string[]
      - `skills` string[]
      - `interests` string[]
      - `memberBehaviors` string[]
      - `employers` string[]
      - `degrees` string[]
      - `fieldsOfStudy` string[]
      - `interfaceLocales` string[]
    - `remove_targeting` object: Entity URNs to remove from the copied targeting.
      - `locations` string[]
      - `titles` string[]
      - `industries` string[]
      - `seniorities` string[]
      - `staffCountRanges` string[]
      - `skills` string[]
      - `interests` string[]
      - `memberBehaviors` string[]
      - `employers` string[]
      - `degrees` string[]
      - `fieldsOfStudy` string[]
      - `interfaceLocales` string[]
    - `start_date` string: Override the start date.
    - `end_date` string: Override the end date.
    - `language` string: Two-letter language members of the new market use LinkedIn in (for example "de"); only they see the ads. Defaults to the original's language. LinkedIn supports en, ar, zh, cs, da, id, ms, nl, fr, fi, de, it, ja, ko, no, pl, pt, ro, ru, es, sv, th, tl, tr.
    - `audience_network` boolean: Override the LinkedIn Audience Network setting on the copy. Defaults to the original's; LinkedIn refuses it for text ads, lead generation, and carousels on WEBSITE_VISIT or ENGAGEMENT.
    - `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)
