Linkedin

Learn how to use Linkedin with Composio

Overview

SLUG: LINKEDIN

Description

LinkedIn is a professional networking platform enabling job seekers, companies, and thought leaders to connect, share content, and discover business opportunities

Authentication Details

client_id
stringRequired
client_secret
stringRequired
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to openid,profile,w_member_social,email

Connecting to Linkedin

Create an auth config

Use the dashboard to create an auth config for the Linkedin toolkit. This allows you to connect multiple Linkedin accounts to Composio for agents to use.

1

Select App

Navigate to Linkedin.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Linkedin Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4linkedin_auth_config_id = "ac_YOUR_LINKEDIN_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Linkedin: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, linkedin_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Linkedin toolkit’s playground

For code examples, see the Tool calling guide and Provider examples.

Tool List

Tool Name: Create comment on LinkedIn post

Description

Tool to create a first-level or nested comment on a LinkedIn share, UGC post, or parent comment via the Social Actions Comments API. Use when you need to engage with posts by adding comments or replying to existing comments. Supports text comments with optional @-mentions and image attachments.

Action Parameters

actor
stringRequired
content
message
objectRequired
object
stringRequired
parentComment
target_urn
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Create a LinkedIn post

Description

Creates a new post on LinkedIn for the authenticated user or an organization they manage; ensure the user has necessary permissions if posting for an organization.

Action Parameters

author
stringRequired
commentary
stringRequired
distribution
object
isReshareDisabledByAuthor
boolean
lifecycleState
stringDefaults to PUBLISHED
visibility
stringDefaults to PUBLIC

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Delete LinkedIn Post

Description

Deletes a specific LinkedIn post (share) by its unique `share_id`, which must correspond to an existing share.

Action Parameters

share_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Delete UGC Post (Legacy)

Description

Delete a UGC post using the legacy UGC Post API endpoint. Use when you need to delete a post using the v2/ugcPosts endpoint. Deletion is idempotent - previously deleted posts also return success.

Action Parameters

ugc_post_urn
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Delete UGC Post

Description

Deletes a UGC post by its URN identifier. Use when you need to remove a UGC post from LinkedIn.

Action Parameters

ugc_post_urn
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get company info

Description

Retrieves organizations where the authenticated user has specific roles (ACLs), to determine their management or content posting capabilities for LinkedIn company pages.

Action Parameters

count
integerDefaults to 10
role
stringDefaults to ADMINISTRATOR
start
integer
state
stringDefaults to APPROVED

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get images

Description

Tool to retrieve image metadata including download URLs, status, and dimensions from LinkedIn's Images API. Use when you need to access image details for posts, profiles, or media library assets.

Action Parameters

ids
arrayRequired
linkedin_version
Defaults to 202511

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get my info

Description

Fetches the authenticated LinkedIn user's profile information including name, headline, profile picture, and other profile details.

Action Parameters

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get video details

Description

Tool to retrieve details of a LinkedIn video using its URN. Use when you need to check video status, get download URLs, or access video metadata.

Action Parameters

video_urn
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get videos

Description

Retrieves video metadata from LinkedIn Marketing API. Supports single video retrieval, batch retrieval (multiple videos), and finding videos by associated account with pagination. Use when you need to get video details including duration, dimensions, status, download URLs, and media library information.

Action Parameters

associated_account
count
media_library_status
start
video_ids
video_urn

Action Response

data
objectRequired
error
successful
booleanRequired