LinkedIn Ads Write
**USE THIS TOOL WHEN:** User wants to add a new campaign with DIFFERENT targeting/audience to an EXISTING campaign group
POST https://api.adspirer.ai/api/v1/tools/add_linkedin_campaign_to_group/execute
Authorization: Bearer sk_live_... — your Adspirer API key (required)Content-Type: application/json (required)Idempotency-Key: <uuid> — recommended for write operations to make retries safeAll tool arguments are wrapped in an arguments object.
| Field | Type | Description |
|---|---|---|
campaign_group_id | string required | Existing Campaign Group ID to add this campaign to. Get this from a prior create_linkedin_*_campaign response. Format: numeric ID or urn:li:sponsoredCampaignGroup:XXXXX. |
campaign_name | string required | Name for this new campaign (auto-suffixed with timestamp). |
daily_budget | number required | Daily budget for this campaign in account currency (minimum $10). |
organization_id | string required | LinkedIn Organization (Company Page) ID for ad authoring. |
ad_type | string required | Type of ad for this campaign: 'image', 'video', 'carousel', or 'text'. |
image_urn | string optional | Image URN for image ads. From discover_linkedin_assets or validate_and_prepare_linkedin_assets. |
asset_bundle_id | string optional | Asset bundle ID from validate_and_prepare_linkedin_assets (for new image uploads). |
video_urn | string optional | Video URN for video ads. From discover_linkedin_assets. |
video_url | string optional | Public URL to upload video from (MP4, max 500MB). |
cards | array optional | Carousel cards (2-10). Each: {image_urn or image_url, headline (max 45), landing_page_url}. |
text_headline | string optional | Text ad headline (max 25 chars). Required for ad_type='text'. |
text_description | string optional | Text ad description (max 75 chars). Required for ad_type='text'. |
introductory_text | string optional | Main ad text (up to 600 chars for image/video, 255 for carousel). Required for image, video, and carousel ad types. |
headline | string optional | Ad headline (up to 70 chars). Required for image and video ad types. |
landing_page_url | string required | Destination URL (must be HTTPS). |
call_to_action | string optional | CTA button label. Default: LEARN_MORE. default: "LEARN_MORE" |
objective | string optional | Campaign objective. If not provided, inherits from the campaign group's objective. Options: BRAND_AWARENESS, ENGAGEMENT, WEBSITE_VISIT, WEBSITE_CONVERSION, VIDEO_VIEW, JOB_APPLICANT. |
locations | array required | Location URNs for this campaign's targeting. Required. |
industries | array optional | Industry URNs. |
seniorities | array optional | Seniority URNs. |
job_titles | array optional | Job title URNs. |
company_sizes | array optional | Company size URNs. |
skills | array optional | Skill URNs. |
job_functions | array optional | Job function URNs. |
interests | array optional | Interest URNs. |
degrees | array optional | Degree URNs. |
fields_of_study | array optional | Field of study URNs. |
employers | array optional | Employer URNs. |
member_groups | array optional | LinkedIn group URNs. |
age_ranges | array optional | Age range URNs. |
genders | array optional | Gender URNs. |
schools | array optional | School URNs. |
member_behaviors | array optional | Member behavior URNs. |
years_of_experience | array optional | Years of experience URNs. |
followed_companies | array optional | Followed company URNs. |
buyer_groups | array optional | Buyer group URNs (API 2026-03+). |
account_id | string optional | LinkedIn Ad Account ID (optional). |
currency | string optional | Currency code. Default: USD. default: "USD" |
status | string optional | Campaign status. Default: PAUSED. default: "PAUSED" |
creative_name | string optional | Name for the first creative. E.g. 'US Audience - Ad 1'. |
{
"arguments": {
"campaign_group_id": "string",
"campaign_name": "string",
"daily_budget": 10.0,
"organization_id": "string",
"ad_type": "string",
"landing_page_url": "https://example.com",
"locations": [
"string"
],
"image_urn": "string",
"asset_bundle_id": "string",
"video_urn": "string",
"video_url": "string",
"cards": [
{
"headline": "Download our whitepaper",
"description": "Actionable insights for 2026",
"landing_page_url": "https://example.com/whitepaper",
"image_url": "https://example.com/cover.jpg"
}
],
"text_headline": "string"
}
}
{
"success": true,
"data": {
"text": "(tool-specific textual output for add_linkedin_campaign_to_group)",
"quota": {
"used": 42,
"limit": 150,
"tier": "plus",
"period_end": "2026-05-01"
}
},
"tool": "add_linkedin_campaign_to_group"
}
{
"success": false,
"error": "You have 25 meta_ads accounts connected. Please specify which account to use by passing the ad_account_id parameter:\n - Acme Holdings (ad_account_id=\"act_123456789\")\n - Acme EU (ad_account_id=\"act_987654321\")",
"is_error": true,
"tool": "add_linkedin_campaign_to_group"
}
{
"success": false,
"error": "\ud83d\udea8 Monthly limit reached (150/150 tool calls on Plus tier).\nUpgrade to Pro at https://adspirer.ai to keep building.",
"is_error": true,
"tool": "add_linkedin_campaign_to_group",
"quota": {
"used": 150,
"limit": 150,
"tier": "plus",
"period_end": "2026-05-01",
"upgrade_url": "https://adspirer.ai"
}
}
Interactive: Swagger UI
Machine-readable: OpenAPI 3.1 spec · llms-full.txt
More tools: LinkedIn Ads · All tools
Adspirer REST API — get an API key at adspirer.ai/keys · adspirer.ai