LinkedIn Ads Write
**USE THIS TOOL WHEN:** User wants to create a LinkedIn VIDEO ad campaign
POST https://api.adspirer.ai/api/v1/tools/create_linkedin_video_campaign/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_name | string required | Campaign name (will be automatically suffixed with timestamp for uniqueness) |
daily_budget | number required | Daily budget in account currency (minimum 10/day for LinkedIn). Set currency field if not USD. |
organization_id | string required | LinkedIn Organization (Company Page) ID. The organization that will appear as the ad author. |
video_urn | string optional | Existing LinkedIn video URN from discover_linkedin_assets tool. Format: urn:li:video:XXX. Mutually exclusive with video_url. |
video_url | string optional | Public 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_text | string required | Main ad text/copy (up to 600 characters). |
headline | string required | Ad headline (up to 70 characters, REQUIRED). Ads without headlines perform significantly worse. |
landing_page_url | string required | Destination URL where users will be directed. Must be HTTPS. |
call_to_action | string optional | Call-to-action button label. Options: APPLY, DOWNLOAD, VIEW_QUOTE, LEARN_MORE, SIGN_UP,SUBSCRIBE, REGISTER, JOIN, ATTEND, REQUEST_DEMO. default: "LEARN_MORE" |
campaign_group_id | string optional | Existing 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_name | string optional | Name for a NEW campaign group (REQUIRED if campaign_group_id not provided). Example: 'Q2 Video Ads Campaign'. Max 100 characters. |
objective | string optional | Campaign objective. Default: VIDEO_VIEW for video campaigns. Options: BRAND_AWARENESS, ENGAGEMENT, WEBSITE_VISIT, WEBSITE_CONVERSION, VIDEO_VIEW, JOB_APPLICANT. default: "VIDEO_VIEW" |
locations | array required | List of LinkedIn location URNs to target. Required. Example: ['urn:li:geo:103644278'] for United States. |
industries | array optional | Optional list of industry URNs. |
seniorities | array optional | Optional list of seniority level URNs. |
job_titles | array optional | Optional list of job title URNs. |
company_sizes | array optional | Optional list of company size URNs. |
skills | array optional | Optional list of skill URNs. |
job_functions | array optional | Optional list of job function URNs. |
interests | array optional | Optional list of interest URNs. |
degrees | array optional | Optional list of degree URNs. |
fields_of_study | array optional | Optional list of field of study URNs. |
employers | array optional | Optional list of employer (organization) URNs. |
member_groups | array optional | Optional list of LinkedIn group URNs. |
age_ranges | array optional | Optional list of age range URNs. |
genders | array optional | Optional list of gender URNs. |
schools | array optional | Optional list of school URNs. |
member_behaviors | array optional | Optional list of member behavior URNs. |
years_of_experience | array optional | Optional list of years of experience URNs. |
followed_companies | array optional | Optional list of followed company URNs. |
buyer_groups | array optional | Optional list of buyer group URNs (API 2026-03+). |
account_id | string optional | LinkedIn Ad Account ID. Required for multi-account users. Get from list_connected_accounts. |
currency | string optional | Currency code. Default: USD. default: "USD" |
status | string optional | Initial campaign status. Default: PAUSED. default: "PAUSED" |
locale_country | string optional | Campaign locale country (ISO-3166). Default: US. default: "US" |
locale_language | string optional | Campaign locale language (ISO-639). Default: en. default: "en" |
start_date | string optional | Optional start date in ISO format. |
end_date | string optional | Optional end date in ISO format. |
total_budget | number optional | Optional total lifetime budget. |
creative_name | string optional | Name for the first creative. E.g. 'Product Demo - Ad 1'. Defaults to '{campaign_name} - Ad 1'. |
{
"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"
}
}
{
"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"
}
{
"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"
}
{
"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"
}
}
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