tools/call over POST /linkedin-ads/mcp. The connector is connected with OAuth
(LinkedIn login). See Forbind din konto.
Endpoint:
https://mcp.consile.ai/linkedin-ads/mcp. LinkedIn Ads is its own
named connector with only its own tools. Tool names are namespaced as
linkedin-ads__<tool> in the transport (e.g. linkedin-ads__list_ad_accounts);
the AI resolves these automatically.Scopes & authentication
The connector requests three OAuth scopes from LinkedIn:
The organization, member-profile, and organic-social scopes (
r_organization_admin,
r_organization_social, w_organization_social, w_member_social,
r_basicprofile, r_1st_connections_size) are not requested in v1 because
LinkedIn rejects the full authorization if any requested scope is unapproved. Until
the app receives Community Management API approval, the tools that need those scopes
are exposed but fail with HTTP 403 “insufficient scope”. That covers all 8
organic-social write tools and these reads:
get_organization,get_organization_follower_count,list_organization_postsget_organization_page_statistics,get_organization_follower_statistics,get_organization_share_statisticsget_my_profile,get_my_connections_count
get_post,
get_post_social_metadata, list_post_comments, list_post_reactions,
list_administered_organizations, find_organization_by_vanity_name) also fail
with HTTP 403 under the current ad-scope access, alongside the tools listed above,
until Community Management API approval.
The connector is connected through the standard
GenericOAuthConnectFlow, and the
per-call access token is refreshed transparently on the read path by the platform’s
RefreshingVault. The connector itself is access-token only (it never refreshes).
If LinkedIn rejects the token (HTTP 401), the tool surfaces a clear reconnect
signal: re-authorize in the portal.Guardrail model (write tools)
All 19 write tools pass through the connector-localapplyOrPreview guardrail.
The rules are:
- New ad objects (
create_campaign_group,create_campaign) are created inDRAFTstatus by default. They do not serve and do not spend. - New organic posts (
create_organization_post,create_member_post) default toDRAFTlifecycle. They are not publicly visible. - Confirmation required (
confirm: true) whenever the action:- sets status to
ACTIVE(starts serving / spending); - sets status to
ARCHIVED(destructive); - changes a budget or bid amount;
- publishes public content (a post, comment, or reaction);
- removes a campaign↔conversion association.
- sets status to
- Without
confirm: true, the tool returns aWritePreviewobject (the exact method, path, and body it would send) and calls no upstream API. - Setting status to
PAUSEDorDRAFTis always safe and applies without confirmation (stops serving/spend immediately).
WritePreview shape
When a confirmation-gated tool is called withoutconfirm: true, it returns:
Shared parameters
Numeric ids
Most tools take bare numeric id strings (digits only, no URN prefix). The connector builds the required URNs internally.string
required
LinkedIn ad account id (digits only). Obtain from
list_ad_accounts or
search_ad_accounts.string
Campaign group id (digits only). From
list_campaign_groups.string
Campaign id (digits only). From
list_campaigns.string
Organization (Company Page) id (digits only). From
list_administered_organizations.Money format
All money values (budgets, bids, conversion values) use LinkedIn’s major-unit format: a decimal string plus a currency code (not micros).currencyCode must match the ad account’s currency. Supply amounts as
dailyBudgetAmount / totalBudgetAmount / unitCostAmount (string) plus
currencyCode (ISO 4217 three-letter code).
Limit
integer
default:"100"
Maximum rows returned by list/finder tools (max 1000). The client paginates
internally and returns up to
limit elements.Analytics facet
The analytics tools (get_ad_analytics, get_ad_statistics, get_ad_demographics,
get_attributed_revenue) require exactly one of these facets:
string[]
Ad account ids to report on (most common).
string[]
Campaign ids to report on.
string[]
Campaign group ids to report on.
Client limits
client.ts pins these transport limits:
- API version: requests to the versioned Marketing API (
/rest/*) carryLinkedIn-Version: 202605. The legacy/v2/*surface (member profile, connections) carries no version header. - Timeout: 15 seconds per call.
- Pagination: list/finder tools follow up to 25 pages of ~50 rows. Every
documented tool passes
limit ?? 100, so the effective default is 100 rows per call;limit(max 1000) tightens or widens that, and a rawgetListwith no limit caps at 500 rows.
client.ts:
get_ad_analytics / get_ad_statistics return a single, non-paginated response that
LinkedIn caps at 15,000 elements, and accept at most 20 metric fields per call.
Read tools (45)
Ad accounts & structure
list_ad_accounts
List every ad account the connected member can access, with account URN and role. The entry point that yields the account ids all other tools take.integer
default:"100"
search_ad_accounts
Search accessible ad accounts with full detail (currency, status, servingStatuses, type). No filter returns all accessible accounts.string[]
Filter by account status. Enum:
ACTIVE DRAFT CANCELED
PENDING_DELETION REMOVED.integer
default:"100"
get_ad_account
Fetch one ad account by id: currency, status, type, servingStatuses, reference, notification flags, test flag.string
required
list_ad_account_users
List all users and roles on a given ad account (audit who has access). Inverse oflist_ad_accounts.
string
required
integer
default:"100"
list_campaign_groups
Search/list campaign groups under an account (the budget/status container above campaigns): name, status, runSchedule, totalBudget/dailyBudget, objective.string
required
string[]
Filter by status. Enum:
ACTIVE PAUSED DRAFT ARCHIVED REMOVED.integer
default:"100"
get_campaign_group
Fetch one campaign group: name, status, runSchedule, totalBudget/dailyBudget, servingStatuses, objective.string
required
string
required
list_campaigns
Search/list campaigns within an account: status, type, objectiveType, costType, budgets, bid (unitCost), runSchedule, targetingCriteria, servingStatuses.string
required
string[]
Filter by status. Enum:
ACTIVE PAUSED DRAFT ARCHIVED COMPLETED
REMOVED.string
Scope to one campaign group id.
integer
default:"100"
get_campaign
Fetch one campaign with full targetingCriteria, budgets, bid (unitCost), runSchedule, objectiveType, optimizationTargetType, servingStatuses, versionTag.string
required
string
required
list_creatives
Search/list creatives (ads) under an account: reference, status (intendedStatus), variant content.string
required
integer
default:"100"
get_creative
Fetch one creative by its URN (status, content reference, variant/intendedStatus).string
required
string
required
The creative URN, e.g.
urn:li:sponsoredCreative:123.get_ad_preview
Render a preview of an existing creative in a placement, matching the render LinkedIn Campaign Manager shows.string
required
string
required
urn:li:sponsoredCreative:123 to preview.Reporting & analytics
get_ad_analytics
Core single-pivot performance report: group metrics by one dimension over a date range and time granularity. Cost fields are decimal strings in the account currency (not micros).string
required
Dimension to group by. One of:
COMPANY ACCOUNT SHARE CAMPAIGN
CREATIVE CAMPAIGN_GROUP CONVERSION CONVERSION_COMPONENT
OBJECTIVE_TYPE SERVING_LOCATION PLACEMENT_NAME
IMPRESSION_DEVICE_TYPE, plus the MEMBER_* demographic set (see
get_ad_demographics).string
default:"ALL"
Time bucketing:
ALL (one total) | DAILY | MONTHLY | YEARLY.string
required
Report window start (YYYY-MM-DD).
string
required
Report window end (YYYY-MM-DD).
string[]
Ad account ids (most common facet; provide exactly one facet).
string[]
Campaign ids (alternative facet).
string[]
Campaign group ids (alternative facet).
string
CSV of metric fields (max 20). Defaults to:
impressions,clicks,costInLocalCurrency,externalWebsiteConversions,oneClickLeads,landingPageClicks.get_ad_statistics
Multi-dimensional report: group metrics by up to three pivots at once (e.g. CAMPAIGN × CREATIVE × SERVING_LOCATION) for cross-tabs the single-pivot finder cannot express.string[]
required
1–3 dimensions from the same enum as
get_ad_analytics.string
default:"ALL"
string
required
string
required
string[]
string[]
string[]
string
get_ad_demographics
Professional-demographic breakdown: analytics pivoted by aMEMBER_* dimension
(company/size/industry/seniority/job title/function/country/region): “who saw or
engaged with my ads”. Data is delayed approximately 12–24 hours; resolve the
returned URNs with resolve_targeting_urns.
string
required
One of:
MEMBER_COMPANY MEMBER_COMPANY_SIZE MEMBER_INDUSTRY
MEMBER_SENIORITY MEMBER_JOB_TITLE MEMBER_JOB_FUNCTION
MEMBER_COUNTRY_V2 MEMBER_REGION_V2 MEMBER_COUNTY.string
required
string
required
string[]
string[]
string[]
string
Defaults to
impressions,clicks,costInLocalCurrency.get_attributed_revenue
CRM revenue-attribution report (ROAS, won/open opportunities, deal size, days-to-close) by ACCOUNT / CAMPAIGN_GROUP / CAMPAIGN. Returns empty results unless the advertiser has connected a CRM to Business Manager.string
required
string[]
default:"[\"CAMPAIGN\"]"
1–3 from
ACCOUNT CAMPAIGN_GROUP CAMPAIGN.string
required
string
required
string
CSV of
revenueAttributionMetrics fields.get_budget_pricing
Suggested, minimum and maximum bids plus daily-budget limits for a bid/campaign type on an account. Forecast only. No spend.string
required
string
required
e.g.
CPM, CPC, CPV.string
required
e.g.
SPONSORED_UPDATES, TEXT_AD, DYNAMIC.string
Optional bid match type.
string
Advanced: a pre-built RestLi targetingCriteria fragment (passed verbatim).
{amount, currencyCode} money objects.
forecast_ad_supply
Forecast impressions, clicks, spend, reach, and leads for a hypothetical campaign’s targeting + competing bid over a time range.string
required
e.g.
SPONSORED_UPDATES.string
required
A pre-built RestLi targeting fragment (
target.includedTargetingFacets:...).integer
required
Forecast window start (epoch ms).
integer
required
Forecast window end (epoch ms).
string
Optional competing bid fragment.
get_organization_page_statistics
Organization page view and click statistics. Lifetime breakdown (by geo, country, function, industry, seniority, staffCountRange) is shown when no time interval is given. Returns HTTP 403 until the app is approved for the Community Management API.string
required
get_organization_follower_statistics
Follower demographics (lifetime, by 7 facets). The total count is not here. Useget_organization_follower_count for that. Returns HTTP 403 until Community
Management API approval.
string
required
get_organization_share_statistics
Organic engagement stats for an org’s posts: aggregate lifetime stats (impressions, clicks, likes, comments, shares, engagement rate). Organic only. For sponsored content useget_ad_analytics. Returns HTTP 403 until Community
Management API approval.
string
required
Audiences & targeting
get_audience_count
Estimate the reachable LinkedIn audience size (active + total) for a targetingCriteria expression. Validates the 300-member campaign minimum before launch. Returnstotal: 0 when the audience is below LinkedIn’s privacy floor.
string
required
A pre-built RestLi targetingCriteria fragment. Build facet URNs with the
targeting tools below.
list_targeting_facets
List all targeting facet categories (industries, titles, seniorities, skills, locations, jobFunctions, staffCountRanges, interests, etc.) and which entity finders each supports. The catalog you buildtargetingCriteria from.
No arguments.
list_targeting_entities
Enumerate all values for an enumerable facet (e.g. seniorities, genders, jobFunctions, ageRanges), resolving closed-list facets to URNs.string
required
The facet name (e.g.
seniorities) or a full adTargetingFacet URN.string
Optional locale, e.g.
en_US.integer
default:"100"
typeahead_targeting_entities
Free-text search for targeting entity URNs within a facet (find geo / skill / company / title / field-of-study URNs). The main way to turn natural-language words into targeting URNs.string
required
The facet name (e.g.
locations, skills) or a full adTargetingFacet URN.string
required
Free-text search, e.g.
Copenhagen or machine learning.string
Optional locale, e.g.
en_US.integer
default:"100"
similar_targeting_entities
Given seed entity URN(s) in a facet, return similar entities (lookalike companies / industries / skills / titles) for audience expansion.string
required
The facet name or a full adTargetingFacet URN.
string[]
required
Seed entity URNs (at least one).
integer
default:"100"
resolve_targeting_urns
Resolve a batch of entity URNs to human-readable names and facet membership (e.g.urn:li:geo:102095887 → "California, United States") to display a
campaign’s stored targeting or demographics.
string[]
required
Entity URNs to resolve (at least one).
Conversions & Insight Tag
list_conversion_rules
List all conversion rules for an ad account (includingconversionMethod=CONVERSIONS_API
and enabled flags). The value field is {currencyCode, amount} in major units.
string
required
integer
default:"100"
get_conversion_rule
Fetch one conversion rule by id: type, attribution windows, value, urlMatchRuleExpression, associated campaigns, imagePixelTag.string
required
string
required
Numeric conversion id (digits only).
get_insight_tag
Find the Insight Tag for an ad account and retrieve its tracking snippet and firstParty state.string
required
list_insight_tag_domains
List domains observed firing the account’s Insight Tag (most recent first) with blocked status and last-callback time. Verify tag installation.string
required
integer
default:"100"
list_campaign_conversions
List all conversion-rule associations for one or more campaigns (which campaigns attribute which conversions).string[]
required
Campaign ids to look up (at least one).
integer
default:"100"
Lead form definitions
These tools expose form structure only: questions, hidden fields,
consent text, post-submission CTA. Retrieving actual submitted lead PII requires
the separate LinkedIn Lead Sync API program (
r_marketing_leadgen_automation),
which is not part of this connector.list_lead_forms
List lead gen form definitions for an ad account.string
required
integer
default:"100"
get_lead_form
Fetch one lead gen form definition by id (full questions, hidden fields, consents, post-submission CTA).string
required
Numeric form id (digits only).
Organization pages & organic content (read)
These reads need org/social scopes that v1 does not request, so they return HTTP
403 under the current ad-scope access until Community Management API approval: the
org-profile, follower-count, feed, and page/follower/share statistics reads, the
individual post/social reads (
get_post, get_post_social_metadata,
list_post_comments, list_post_reactions), list_administered_organizations, and
find_organization_by_vanity_name.list_administered_organizations
List the organizations the connected member administers (org URN, role, state). The entry point for organization selection. Filter toADMINISTRATOR + APPROVED
for usable organizations. Returns HTTP 403 under the current ad-scope access,
until Community Management API approval.
string
default:"ADMINISTRATOR"
string
default:"APPROVED"
integer
default:"100"
get_organization
Fetch full admin-visible org profile by id (name, website, industries, locations, logo, staffCountRange). Returns HTTP 403 until Community Management API approval.string
required
find_organization_by_vanity_name
Resolve an organization by its vanityName (URL slug) to its URN and profile. Returns HTTP 403 under the current ad-scope access, until Community Management API approval.string
required
The URL slug, e.g.
microsoft.get_organization_follower_count
Total first-degree follower count for an organization (the headline number). Returns HTTP 403 until Community Management API approval.string
required
list_organization_posts
List organic posts authored by an organization (the page’s content feed), newest first. Returns HTTP 403 until Community Management API approval.string
required
string
default:"LAST_MODIFIED"
LAST_MODIFIED or CREATED.integer
default:"100"
get_post
Fetch a single organic post by its share/ugcPost URN (commentary, author, visibility, content). Returns HTTP 403 under the current ad-scope access, until Community Management API approval.string
required
urn:li:share:123 or urn:li:ugcPost:123.get_post_social_metadata
Reaction and comment summary for a post (commentsState, commentSummary, reactionSummaries by type). Returns HTTP 403 under the current ad-scope access, until Community Management API approval.string
required
The post/share/ugcPost URN.
list_post_comments
List comments on a post (or nested replies on a comment). Returns HTTP 403 under the current ad-scope access, until Community Management API approval.string
required
The post/share/ugcPost URN.
integer
default:"100"
list_post_reactions
List reactions on a post or comment withreactionType
(LIKE / PRAISE / EMPATHY / INTEREST / APPRECIATION / ENTERTAINMENT). Returns HTTP
403 under the current ad-scope access, until Community Management API approval.
string
required
The post/share/ugcPost URN.
integer
default:"100"
Member profile
Both member-profile reads use the profile scopes that v1 does not request, so they
return HTTP 403 until Community Management API approval.
get_my_profile still
doubles as a connect-confirmation once those scopes are granted.get_my_profile
The connected member’s own profile: id (person URN), name, headline, vanityName (public-URL slug), photo. Also useful as a connect-confirmation / whoami check. Returns HTTP 403 until Community Management API approval. No arguments.get_my_connections_count
The connected member’s number of first-degree connections (count only, not the list). The viewer is implied by the access token. Returns HTTP 403 until Community Management API approval. No arguments.integer
Number of first-degree connections.
Advanced: query (read escape-hatch)
query
GET any allow-listed LinkedIn REST or v2 path with a safelisted set of read parameters, for the long tail not covered by a dedicated tool. Read-only by construction (GET-only + path and param guard).string
required
A bare path under
/rest or /v2, e.g. /rest/adCampaigns/123 or /v2/me
(no scheme, no traversal).object
Read params as a string/number record. Only safelisted keys are forwarded;
others are dropped silently. Percent-encode URN values. Allowed keys include:
q, fields, projection, start, count, pageSize, pageToken,
search, pivot, pivots, timeGranularity, dateRange, facet,
query, urns, entities, ids, owner, account, organization,
sort, sortBy, sortOrder, edgeType.adAccounts, adAccountUsers,
adCampaignGroups, adCampaigns, creatives, adPreviews, adAnalytics,
adBudgetPricing, adSupplyForecasts, audienceCounts, adTargetingFacets,
adTargetingEntities, conversions, insightTags, insightTagDomains,
campaignConversions, leadForms, organizations, organizationAcls,
organizationPageStatistics, organizationalEntityFollowerStatistics,
organizationalEntityShareStatistics, networkSizes, posts,
socialMetadata, socialActions, reactions, me, connections, geo.
Ad-management write tools (11)
All 11 tools go through the guardrail described above. See Handlinger & guardrails for the full model.Campaign groups
create_campaign_group
Create a campaign group (the budget/status container above campaigns). Created DRAFT by default (no serving);status: "ACTIVE" requires confirm: true.
string
required
string
required
1–100 characters.
integer
required
runSchedule.start (epoch ms).
integer
runSchedule.end (epoch ms; required if totalBudget is set).
string
default:"DRAFT"
DRAFT | ACTIVE | PAUSED | ARCHIVED. ACTIVE requires confirm: true.string
Total budget as a decimal string (major units).
string
ISO 4217 code; required when a budget amount is provided.
boolean
Set
true to apply when confirmation is required.update_campaign_group
Edit a campaign group’s name, schedule, or total budget. A budget change always requiresconfirm: true.
string
required
string
required
string
string
string
integer
New runSchedule.end (epoch ms).
boolean
set_campaign_group_status
Set a campaign group to DRAFT / ACTIVE / PAUSED / ARCHIVED. PAUSED stops serving immediately and applies without confirmation. ACTIVE and ARCHIVED requireconfirm: true.
string
required
string
required
string
required
DRAFT | ACTIVE | PAUSED | ARCHIVED.boolean
Campaigns
create_campaign
Create a campaign under a group. Created DRAFT by default (no spend).status: "ACTIVE" requires confirm: true. Money is major units.
string
required
string
required
Parent campaign group id.
string
required
string
required
Campaign type, e.g.
SPONSORED_UPDATES, TEXT_AD, DYNAMIC.string
required
Bidding cost type:
CPM | CPC | CPV.string
default:"us"
locale.country (ISO 3166-1 alpha-2).
string
default:"en"
locale.language (ISO 639-1).
string
Daily budget (decimal string). Provide daily OR total.
string
Total budget (decimal string). Provide daily OR total.
string
Required when a budget amount is provided.
string
Bid (unitCost) amount (decimal string).
string
required
targetingCriteria as a JSON object string. Build URNs with the targeting read tools.
string
e.g.
WEBSITE_VISITS, LEAD_GENERATION, BRAND_AWARENESS.string
Required by LinkedIn (2025-08+) on create; set the value appropriate to your account/region.
string
default:"DRAFT"
DRAFT | ACTIVE | PAUSED | ARCHIVED. ACTIVE requires confirm: true.boolean
update_campaign
Edit a campaign’s name, budgets, bid (unitCost), or targetingCriteria. A budget or bid change always requiresconfirm: true.
string
required
string
required
string
string
string
string
string
string
New targetingCriteria as a JSON object string.
boolean
set_campaign_status
Set a campaign to DRAFT / ACTIVE / PAUSED / ARCHIVED. PAUSED stops spend immediately (no confirmation needed). ACTIVE and ARCHIVED requireconfirm: true.
string
required
string
required
string
required
DRAFT | ACTIVE | PAUSED | ARCHIVED.boolean
Creatives
set_creative_status
Set a creative (ad) to DRAFT / ACTIVE / PAUSED / ARCHIVED. PAUSED is immediate. ACTIVE (starts serving and spending) and ARCHIVED requireconfirm: true.
string
required
string
required
urn:li:sponsoredCreative:123.string
required
DRAFT | ACTIVE | PAUSED | ARCHIVED.boolean
Conversion tracking
create_conversion_rule
Create a conversion rule for an account (measurement setup; does not spend). Returns the new id and the imagePixelTag snippet. Applies withoutconfirm: true
by default (measurement only, no spend or publish).
string
required
string
required
string
required
e.g.
LEAD, PURCHASE, SIGN_UP, ADD_TO_CART, DOWNLOAD, KEY_PAGE_VIEW.string
default:"LAST_TOUCH_BY_CAMPAIGN"
LAST_TOUCH_BY_CAMPAIGN | LAST_TOUCH_BY_CONVERSION.integer
default:"30"
Post-click attribution window (days).
integer
default:"7"
View-through attribution window (days).
string
Optional fixed conversion value (decimal string, major units).
string
Required when
valueAmount is provided.boolean
update_conversion_rule
Edit a conversion rule’s name, enabled state, or value. Editing the value does not retroactively re-attribute past events. Applies withoutconfirm: true.
string
required
string
required
string
boolean
string
string
boolean
associate_campaign_conversion
Attach a conversion rule to a campaign so that campaign attributes that conversion. Use theurn:lla conversion URN form (e.g.
urn:lla:llaPartnerConversion:123). Applies without confirm: true.
string
required
string
required
urn:lla:llaPartnerConversion:123 (note the urn:lla namespace).boolean
remove_campaign_conversion
Detach a conversion rule from a campaign (stops conversion attribution for that campaign). Destructive to reporting and optimization. Requiresconfirm: true.
string
required
string
required
urn:lla:llaPartnerConversion:123.boolean
Organic-social write tools (8): requires Community Management API approval
When activated, the same guardrail applies: new posts default to DRAFT lifecycle (not publicly visible), and publishing public content (a published post, a comment, or a reaction) and deleting content requireconfirm: true.
Posts
create_organization_post
Publish an organic post authored by an organization (Company Page). Defaults toDRAFT lifecycle (not publicly visible); lifecycleState: "PUBLISHED" publishes
public content under the brand and requires confirm: true.
string
required
string
required
Post text (supports #hashtags).
string
default:"PUBLIC"
PUBLIC | CONNECTIONS | LOGGED_IN.string
default:"DRAFT"
DRAFT | PUBLISHED. PUBLISHED requires confirm: true.boolean
create_member_post
Publish an organic post authored by the connected member (person). Defaults toDRAFT; PUBLISHED posts public content under the member’s name and requires
confirm: true. The author is resolved from /v2/me and is never taken from tool input.
string
required
Post text.
string
default:"PUBLIC"
PUBLIC | CONNECTIONS | LOGGED_IN.string
default:"DRAFT"
DRAFT | PUBLISHED. PUBLISHED requires confirm: true.boolean
update_post
Edit a post’s commentary or lifecycleState. Editing the text of a (possibly public) post, or publishing a DRAFT (lifecycleState: "PUBLISHED"), mutates
public content and requires confirm: true.
string
required
urn:li:share:123 or urn:li:ugcPost:123.string
string
DRAFT | PUBLISHED.boolean
delete_post
Permanently delete a post. Irreversible removal of (possibly public) content. Requiresconfirm: true.
string
required
urn:li:share:123 or urn:li:ugcPost:123.boolean
Comments & reactions
create_comment
Post a public comment on a post, as the organization (passorganizationId) or
the connected member. Public content under the brand or member identity. Requires
confirm: true.
string
required
The post/share/ugcPost URN to comment on.
string
required
The comment text.
string
Comment AS this organization; omit to comment as the connected member.
boolean
delete_comment
Delete a comment on a post (your own, or moderating others’ comments on your post), as the organization or the connected member. Destructive. Requiresconfirm: true.
string
required
The post/share/ugcPost URN the comment is on.
string
required
The comment id (numeric id or full comment URN).
string
Acting AS this organization; omit to act as the connected member.
boolean
create_reaction
React (LIKE / PRAISE / EMPATHY / INTEREST / APPRECIATION / ENTERTAINMENT) to a post, as the organization or the connected member. A public brand or member action. Requiresconfirm: true.
string
required
The post/share/ugcPost URN to react to.
string
default:"LIKE"
LIKE | PRAISE | EMPATHY | INTEREST | APPRECIATION | ENTERTAINMENT.string
React AS this organization; omit to react as the connected member.
boolean
delete_reaction
Remove a reaction previously made (as the organization or the connected member) from a post. Low-stakes cleanup. Applies withoutconfirm: true.
string
required
The post/share/ugcPost URN the reaction is on.
string
The reaction’s actor was this organization; omit for the connected member.
boolean
Code examples
The token is refreshed transparently on the read path. A revoked token (or one
LinkedIn otherwise rejects) surfaces as HTTP 401 /
AccessTokenExpiredError;
re-authorize in the portal. See Errors & limits.