create_linkedin_video_campaign

LinkedIn Ads Write

**USE THIS TOOL WHEN:** User wants to create a LinkedIn VIDEO ad campaign

Endpoint

POST https://api.adspirer.ai/api/v1/tools/create_linkedin_video_campaign/execute

Headers

Description

**USE THIS TOOL WHEN:** User wants to create a LinkedIn VIDEO ad campaign. **DO NOT USE for image ads** → use `create_linkedin_image_campaign` instead. **DO NOT USE for carousel ads** → use `create_linkedin_carousel_campaign` instead. **DO NOT USE for text ads** → use `create_linkedin_text_campaign` instead. **REQUIRED:** Either `campaign_group_name` (creates new group) or `campaign_group_id` (adds to existing group). IMPORTANT: This creates the campaign with 1 creative (Variation 1). Campaign is created in PAUSED status. Video Specifications: - Format: MP4 (H.264 codec) - File size: 75KB - 500MB - Duration: 3 seconds - 30 minutes (recommended: 15-30 seconds) - Aspect ratios: 16:9, 1:1, 4:5, 9:16 Video Source (one required): - video_urn: Existing video URN from discover_linkedin_assets - video_url: Public URL to download and upload MP4 video Required Parameters: - campaign_name, daily_budget, organization_id, headline - introductory_text (up to 600 chars), landing_page_url - locations (targeting), video source (urn or url) - campaign_group_name OR campaign_group_id Default Objective: VIDEO_VIEW (optimizes for video views) AD POLICY: NEVER use "LinkedIn" in ad copy. NEVER mention competitor platforms. **After Creation — IMPORTANT:** - This tool created 1 campaign + 1 creative. Campaign Group ID is returned. - To add MORE creatives (A/B test copy): use `add_linkedin_video_creative` with the campaign_id - To add MORE campaigns (different audience): use `add_linkedin_campaign_to_group` with the campaign_group_id - NEVER call this create tool again without campaign_group_id — that creates a SEPARATE campaign group Execution time: 30-120 seconds (includes video upload and processing)

Request body

All tool arguments are wrapped in an arguments object.

FieldTypeDescription
campaign_namestring requiredCampaign name (will be automatically suffixed with timestamp for uniqueness)
daily_budgetnumber requiredDaily budget in account currency (minimum 10/day for LinkedIn). Set currency field if not USD.
organization_idstring requiredLinkedIn Organization (Company Page) ID. The organization that will appear as the ad author.
video_urnstring optionalExisting LinkedIn video URN from discover_linkedin_assets tool. Format: urn:li:video:XXX. Mutually exclusive with video_url.
video_urlstring optionalPublic URL to download and upload video from. Must be MP4 format, H.264 codec, max 500MB, 3s-30min duration. Mutually exclusive with video_urn.
introductory_textstring requiredMain ad text/copy (up to 600 characters).
headlinestring requiredAd headline (up to 70 characters, REQUIRED). Ads without headlines perform significantly worse.
landing_page_urlstring requiredDestination URL where users will be directed. Must be HTTPS.
call_to_actionstring optionalCall-to-action button label. Options: APPLY, DOWNLOAD, VIEW_QUOTE, LEARN_MORE, SIGN_UP,SUBSCRIBE, REGISTER, JOIN, ATTEND, REQUEST_DEMO. default: "LEARN_MORE"
campaign_group_idstring optionalExisting Campaign Group ID to add this campaign to. Pass this to create multiple campaigns with different targeting under ONE group. If provided, campaign_group_name is NOT needed.
campaign_group_namestring optionalName for a NEW campaign group (REQUIRED if campaign_group_id not provided). Example: 'Q2 Video Ads Campaign'. Max 100 characters.
objectivestring optionalCampaign objective. Default: VIDEO_VIEW for video campaigns. Options: BRAND_AWARENESS, ENGAGEMENT, WEBSITE_VISIT, WEBSITE_CONVERSION, VIDEO_VIEW, JOB_APPLICANT. default: "VIDEO_VIEW"
locationsarray requiredList of LinkedIn location URNs to target. Required. Example: ['urn:li:geo:103644278'] for United States.
industriesarray optionalOptional list of industry URNs.
senioritiesarray optionalOptional list of seniority level URNs.
job_titlesarray optionalOptional list of job title URNs.
company_sizesarray optionalOptional list of company size URNs.
skillsarray optionalOptional list of skill URNs.
job_functionsarray optionalOptional list of job function URNs.
interestsarray optionalOptional list of interest URNs.
degreesarray optionalOptional list of degree URNs.
fields_of_studyarray optionalOptional list of field of study URNs.
employersarray optionalOptional list of employer (organization) URNs.
member_groupsarray optionalOptional list of LinkedIn group URNs.
age_rangesarray optionalOptional list of age range URNs.
gendersarray optionalOptional list of gender URNs.
schoolsarray optionalOptional list of school URNs.
member_behaviorsarray optionalOptional list of member behavior URNs.
years_of_experiencearray optionalOptional list of years of experience URNs.
followed_companiesarray optionalOptional list of followed company URNs.
buyer_groupsarray optionalOptional list of buyer group URNs (API 2026-03+).
account_idstring optionalLinkedIn Ad Account ID. Required for multi-account users. Get from list_connected_accounts.
currencystring optionalCurrency code. Default: USD. default: "USD"
statusstring optionalInitial campaign status. Default: PAUSED. default: "PAUSED"
locale_countrystring optionalCampaign locale country (ISO-3166). Default: US. default: "US"
locale_languagestring optionalCampaign locale language (ISO-639). Default: en. default: "en"
start_datestring optionalOptional start date in ISO format.
end_datestring optionalOptional end date in ISO format.
total_budgetnumber optionalOptional total lifetime budget.
creative_namestring optionalName for the first creative. E.g. 'Product Demo - Ad 1'. Defaults to '{campaign_name} - Ad 1'.

Example request

{
  "arguments": {
    "campaign_name": "string",
    "daily_budget": 10.0,
    "organization_id": "string",
    "introductory_text": "string",
    "headline": "string",
    "landing_page_url": "https://example.com",
    "locations": [
      "string"
    ],
    "video_urn": "string",
    "video_url": "string",
    "call_to_action": "LEARN_MORE",
    "campaign_group_id": "string",
    "campaign_group_name": "string",
    "objective": "VIDEO_VIEW"
  }
}

Example responses

200 — Success

{
  "success": true,
  "data": {
    "text": "(tool-specific textual output for create_linkedin_video_campaign)",
    "quota": {
      "used": 42,
      "limit": 150,
      "tier": "plus",
      "period_end": "2026-05-01"
    }
  },
  "tool": "create_linkedin_video_campaign"
}

400 — Tool-level error (bad arguments / multi-account selection)

{
  "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": "create_linkedin_video_campaign"
}

402 — Quota exhausted

{
  "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": "create_linkedin_video_campaign",
  "quota": {
    "used": 150,
    "limit": 150,
    "tier": "plus",
    "period_end": "2026-05-01",
    "upgrade_url": "https://adspirer.ai"
  }
}

Try it live


Adspirer REST API — get an API key at adspirer.ai/keys · adspirer.ai