6.0 KiB
6.0 KiB
LinkedIn Routing Reference
App name: linkedin
Base URL proxied: api.linkedin.com
API Path Pattern
/linkedin/v2/{resource}
Required Headers
X-Restli-Protocol-Version: 2.0.0
Common Endpoints
Get User Info (OpenID Connect)
GET /linkedin/v2/userinfo
Get Current User Profile
GET /linkedin/v2/me
With projection:
GET /linkedin/v2/me?projection=(id,firstName,lastName)
Create Text Post
POST /linkedin/v2/ugcPosts
Content-Type: application/json
X-Restli-Protocol-Version: 2.0.0
{
"author": "urn:li:person:{personId}",
"lifecycleState": "PUBLISHED",
"specificContent": {
"com.linkedin.ugc.ShareContent": {
"shareCommentary": {"text": "Hello LinkedIn!"},
"shareMediaCategory": "NONE"
}
},
"visibility": {
"com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
}
}
Create Article/URL Share
POST /linkedin/v2/ugcPosts
Content-Type: application/json
X-Restli-Protocol-Version: 2.0.0
{
"author": "urn:li:person:{personId}",
"lifecycleState": "PUBLISHED",
"specificContent": {
"com.linkedin.ugc.ShareContent": {
"shareCommentary": {"text": "Check this out!"},
"shareMediaCategory": "ARTICLE",
"media": [{
"status": "READY",
"originalUrl": "https://example.com",
"title": {"text": "Title"},
"description": {"text": "Description"}
}]
}
},
"visibility": {
"com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
}
}
Register Image Upload
POST /linkedin/v2/assets?action=registerUpload
Content-Type: application/json
X-Restli-Protocol-Version: 2.0.0
{
"registerUploadRequest": {
"recipes": ["urn:li:digitalmediaRecipe:feedshare-image"],
"owner": "urn:li:person:{personId}",
"serviceRelationships": [{
"relationshipType": "OWNER",
"identifier": "urn:li:userGeneratedContent"
}]
}
}
Ad Library - Search Ads
GET /linkedin/rest/adLibrary?q=criteria&keyword=linkedin
Required headers:
LinkedIn-Version: 202502
Job Library - Search Jobs
GET /linkedin/rest/jobLibrary?q=criteria&keyword=software
Required headers:
LinkedIn-Version: 202506
Marketing API (Advertising)
Required headers for all Marketing API calls:
X-Restli-Protocol-Version: 2.0.0
LinkedIn-Version: 202502
List Ad Accounts
GET /linkedin/rest/adAccounts?q=search
Get Ad Account
GET /linkedin/rest/adAccounts/{adAccountId}
Create Ad Account
POST /linkedin/rest/adAccounts
Content-Type: application/json
{
"name": "Ad Account Name",
"currency": "USD",
"reference": "urn:li:organization:{orgId}",
"type": "BUSINESS"
}
List Campaign Groups
GET /linkedin/rest/adAccounts/{adAccountId}/adCampaignGroups
Create Campaign Group
POST /linkedin/rest/adAccounts/{adAccountId}/adCampaignGroups
Content-Type: application/json
{
"name": "Campaign Group Name",
"status": "DRAFT"
}
Get Campaign Group
GET /linkedin/rest/adAccounts/{adAccountId}/adCampaignGroups/{campaignGroupId}
List Campaigns
GET /linkedin/rest/adAccounts/{adAccountId}/adCampaigns
Create Campaign
POST /linkedin/rest/adAccounts/{adAccountId}/adCampaigns
Content-Type: application/json
{
"campaignGroup": "urn:li:sponsoredCampaignGroup:{groupId}",
"name": "Campaign Name",
"status": "DRAFT",
"objectiveType": "BRAND_AWARENESS"
}
Get Campaign
GET /linkedin/rest/adAccounts/{adAccountId}/adCampaigns/{campaignId}
List Organization ACLs
GET /linkedin/v2/organizationAcls?q=roleAssignee
Lookup Organization by Vanity Name
GET /linkedin/rest/organizations?q=vanityName&vanityName=microsoft
Get Organization Share Statistics
GET /linkedin/rest/organizationalEntityShareStatistics?q=organizationalEntity&organizationalEntity=urn:li:organization:12345
Get Organization Posts
GET /linkedin/rest/posts?q=author&author=urn:li:organization:12345
Media Upload (REST API)
Required headers:
LinkedIn-Version: 202502
Initialize Image Upload
POST /linkedin/rest/images?action=initializeUpload
Content-Type: application/json
{"initializeUploadRequest": {"owner": "urn:li:person:{personId}"}}
Initialize Video Upload
POST /linkedin/rest/videos?action=initializeUpload
Content-Type: application/json
{"initializeUploadRequest": {"owner": "urn:li:person:{personId}", "fileSizeBytes": 10000000}}
Initialize Document Upload
POST /linkedin/rest/documents?action=initializeUpload
Content-Type: application/json
{"initializeUploadRequest": {"owner": "urn:li:person:{personId}"}}
Ad Targeting
Get Targeting Facets
GET /linkedin/rest/adTargetingFacets
Returns 31 targeting facets (skills, industries, titles, locations, etc.)
Notes
- Authentication is automatic - the router injects the OAuth token
- Include
X-Restli-Protocol-Version: 2.0.0header for all v2 API calls - Author URN format:
urn:li:person:{personId} - Get person ID from
/v2/meendpoint - Image uploads are 3-step: register, upload binary, create post
- Rate limits: 150 requests/day per member, 100K/day per app
Visibility Options
PUBLIC- Viewable by anyoneCONNECTIONS- 1st-degree connections only
Share Media Categories
NONE- Text onlyARTICLE- URL shareIMAGE- Image postVIDEO- Video post