Compliance Program Announcements & Release Notes

On this page, you will find links and information about each Compliance API program release.

September 6, 2021

Profile Cover Story

LinkedIn allows members to add a short introductory video as their Cover Story in addition to their profile pictures. The Profile API now has an additional field profileVideoInfo to provide details regarding the member's cover story. For more information on the Profile Video fields, please see here.

Contextual decoration of entities shared on messages

Compliance Events API for messages would now surface additional information for certain LinkedIn entities (e.g. Audio and Video messages) shared via messages. For more information, please see here.

Organization Entity ACL API Migration

/organizationalEntityAcls API will be deprecated on November 30 2021. Please use Organization Access Control API '/organizationAcls' to fetch a member's or an organization's access control information.

June 21, 2021

Messaging Events Backfilled on Compliance Events API

The Compliance Events API experienced an issue from March 08, 2021 to April 28, 2021. Due to this, Messaging events corresponding to messages sent without any text and only attachments were not captured. LinkedIn has completed backfilling the missing Messaging events during the affected time. All missing events would have funnelled into each member's Compliance Events API feed during June 16, 2021 and June 17, 2021

The capturedAt and processedAt timestamp will be the time of backfill, which would be during June 16, 2021 and June 17, 2021. The activity and processedActivity fields of the Messaging events will contain createdAt and deliveredAt that timestamp when the activity occurred, which will be between March 08,2021 to April 28, 2021.

May 28, 2021

Organization Search and Geo Typeahead API Migration

April 1, 2021

Messaging Events Backfill on Compliance Events API

Due to the recent outage in Compliance Events API, LinkedIn will begin backfilling the missing Messaging events during that time starting April 2, 10:00am PST. This means all the missing events will slowly funnel into each member's Compliance Events API feed after April 2.

The capturedAt and processedAt timestamp will be the present time, which will be on or after April 2. The activity and processedActivity fields of the Messaging events will contain createdAt and deliveredAt that timestamp when the activity occurred, which will be between March 17, 9:30am to March 19, 2:20pm PST.

Due to this backfill, you may experience some duplicate Messaging events, specifically around the start and end time of the outage.

March 19, 2021

Message Events Outage on Compliance Events API

The Compliance Events API experienced an outage from March 17, 9:30am to March 19, 2:20pm PST. Due to this outage, messaging activities that occurred during this time are not surfaced. New messaging activities are now surfacing as expected. We are investigating on possible remediation.

March 17, 2021

Duration Increase on Compliance Events API

The Compliance Events API now supports up to 30 days of past LinkedIn activities, up from the previously supported 15 days.

Providing Services

LinkedIn members can display services they provide for free on their profiles. The Compliance Events API now surfaces the Providing services activities for archiving.

Stories

LinkedIn members can share images and short videos using LinkedIn Stories. The Compliance Events API now surfaces the UGCPost Story activities for archiving.

December 17, 2020

To improve our network infrastructure and better serve API traffic globally, LinkedIn will begin rejecting API requests not meeting new criteria starting March 31, 2021. Check out the Query Tunneling Migration Guide for more information on how to ensure your LinkedIn API requests comply with the new maximum length requirements.

April 15, 2020

Profile Media Migration

LinkedIn recently released the Featured section to allow members to showcase samples of their work on their profiles. With this, LinkedIn is deprecating Member Rich Media APIand MemberRichMedia content on Compliance Events API on July, 13, 2020.

We are introducing Member Rich Content API that will replace this existing feature. For more information on migration, please see here.

February 26, 2020

UGC Post API Field Deprecation

ugcOrigin and origin field will be deprecated and removed from the UGC Post API on March 26, 2020.

Update - Social Action Image Comment Events

After evaluating the impact of the December 17, 2019 to January 7, 2020 outage, LinkedIn will not provide data to remediate the missing image url from the select comment activities.

Replayer Feature Release

The Replayer Feature in Compliance Events API is live! This feature is slowly ramping and will be enabled to all members using the Compliance Events API by March 3, 2020.

January 21, 2020

Messages API Release

The Messages API is now available! Please refer to the message attachment creation documentation for more information.

Replayer Feature Update

  • The Replayer release date has been updated from January 21, 2020 to February 26, 2020.
  • The activityStatus field is now available. This field was previously named as status in the Compliance Events API documentation.

Social Action Image Comment Events

From December 17, 2019 to January 7, 2020, we experienced an outage with all image comment creation from linkedin.com such that comments with images did not surface the url of the image in the content object. This issue has now been fixed but the existing images are still affected. We are making efforts to remediate this.

December 20, 2019

Messages API

LinkedIn is introducing the Messages API for connection-to-connection messages on January 15, 2020. This API allows members to create messages to one or more first-degree connections or reply to existing conversations.

V1 Message and Sales Navigator API Deprecation

With the upcoming release of the Messages API and the availability of the existing Messaging Activities on Compliance Events API, LinkedIn will deprecate and disable access to the remaining V1 APIs on April 1, 2020:

  • Mailbox APIs
    • Reading Member Mailbox
    • Messaging Between Connections: https://developer.linkedin.com/docs/v1/communications/messaging-between-connections-api
    • Other Messaging Functionalities: https://developer.linkedin.com/docs/v1/communications/message-api-calls
  • Sales Navigator Mailbox API: https://developer.linkedin.com/docs/v1/compliance/sales-navigator-mailbox-api

Social Actions Comment Events Outage on Compliance Events API

Social Actions Comment Events on the Compliance Events API experienced a lapse in data content from September 17, 2019 to December 16, 2019. Specifically, comments with images did not surface the url of the image in the content object.

Expected Response:

{
  "activity": {
    "content": [
      {
        "type": "IMAGE",
        "url": "https://sample-image-url.com/image/123456789"
      }
    ],
    "message" : {
      "text": "This is a sample comment with an image"
    },
    ...
  }
}

Actual Response where the content array does not include the type or url.

{
  "activity": {
    "content": [],
    "message" : {
      "text": "This is a sample comment with an image"
    },
    ...
  }
}

Deprecation of legacy location field for Marketplace Platform Opportunities

On November 26, 2019, we announced Marketplace Platform Opportunities will migrate to the new Bing Geo entity with the addition of the geo field. With this, we will deprecate and remove the legacy location field on April 1, 2020. After this date, geo field will be the only source of truth for this entity's geographical location display name.

Breaking API Change Policy Guideline

As our APIs evolve, LinkedIn will make reasonable efforts to notify you of breaking changes in advance with sufficient time to adapt to these changes. We may make changes without prior notice if the change is considered non-breaking, or if it is being made to address critical product, security or privacy bugs.

Please review this guide carefully to understand what kind of changes we consider non-breaking, and ensure that your application can adapt automatically to any change we categorize as non-breaking.

December 6, 2019

Permission w_fullprofile Deprecation

LinkedIn will deprecate and remove the legacy w_fullprofile permission from all Compliance applications on March 6, 2020. This permission provides access to the Profile Edit API and was used to maintain backward compatibility during the V1 to V2 migration. Access to the Profile Edit API has been and will continue to be from w_compliance going forward. Requests to Profile Edit API will not be affected if the access token has w_compliance granted.

If your application is currently requesting w_fullprofile during authorization, please remove it to prevent authorization error before March 6,2020.

Compliance Events API Replayer Feature Update

The Compliance Events API Replayer Feature will ramp on January 21, 2020 instead of the prior announcement date of December 6, 2019.

We will also introduce the following to help partners transition smoothly:

  • New status field to denote each event's process state.
    • Can be one of the following: SUCCESS, FAILURE, or SUCCESSFUL_REPLAY.
    • To prevent archiving duplicate events, partners can filter out reprocessed events by filtering out SUCCESSFUL_REPLAY events until they are ready to utilize this feature.
  • Reprocessed events will only appear in the API response if it's successfully reprocessed with no processing failures. This means the maximum number of Compliance Events for a unique activity is two.

November 26, 2019

Improvements to Messaging Activities on Compliance Events API

The following fixes have been made to the Messaging Activities on Compliance Events API:

  • Decoration of salesIdentity URN in to provide the Sales Navigator contract information.
  • Receive inbound messages for a Sales Navigator account.
  • All message attachments are now downloadable. See here for more information.
  • Updated fields and schema to all Messages events. See here on Compliance Events integration and here for updated message schema.

Bing Geo Migration - Profile

Note

All use of the Microsoft Bing Maps location data is subject to Microsoft Bing Maps and MapPoint Web Service End User Terms of Use and Embedded Maps Service Terms of Use and the Microsoft Privacy Statement. By accessing any Microsoft Bing Maps location data, you are agreeing to be bound by these Microsoft terms.

We are migrating our location taxonomy to Bing Geo. This location taxonomy relies on the Geo API and Geo Typeahead API which reference Geo URN entities.

Multiple APIs which make use of location taxonomy will experience differing migration timelines throughout the Bing Geo migration. Profile API is the first API to start the Bing Geo migration. The new and legacy Profile fields are outlined below:

To determine the location display name for a profile, refer here for more information.

To update a member's profile:

  • Refer to here for geoLocation.
  • Refer to here for positions.geoPositionLocation.

Compliance Events API processedActivity Decoration Updates

{
  "media": "urn:li:marketplacePlatformOpportunity:(123456789,SERVICE_MARKETPLACE)",
  "media~": {
    ...
    "location": {
      "region~": {
        "country": "urn:li:country:us",
        "name": {
          "locale": {
            "country": "US",
            "language": "en"
          },
          "value": "San Francisco Bay Area"
        },
        "id": 84,
        "$URN": "urn:li:region:84",
        "states": [
          "urn:li:state:(urn:li:country:us,CA)"
        ]
      },
      "region": "urn:li:region:84"
    },
    "geo": "urn:li:geo:103644278",
    "geo~": {
      "id": 103644278,
      "defaultLocalizedName": {
        "locale": {
          "country": "US",
          "language": "en"
        },
        "value": "San Francisco Bay Area"
      }
    }
  },
  ...
}
  • Bing Geo Targeting on UGC Post - Live Video posts and other UGC Posts have the ability to target to Bing Geo locations as well as legacy locations. Bing Geo locations will be classified under the geoLocations field whereas legacy location will be under locations field in targetAudience:
{
  ...
  "targetAudience": {
    "targetedEntities": [
      {
        "locations": [
          "urn:li:country:th"
        ],
        "locations~": [
          {
            "countryGroup": "urn:li:countryGroup:AS",
            "countryCode": "th",
            "name": {
              "locale": {
                "country": "US",
                "language": "en"
              },
              "value": "Thailand"
            },
            "$URN": "urn:li:country:th"
          }
        ],
        "geoLocations": [
          "urn:li:geo:90000084"
        ],
        "geoLocations~": [
          {
            "id": 103644278,
            "defaultLocalizedName": {
              "locale": {
                "country": "US",
                "language": "en"
              },
              "value": "Thailand"
            }
          }
        ],
      }
    ]
  }
}
  • Event Creation Timestamp of Shares - All posts, comments, and likes related to Events will return the event's timestamp creation. Below is a snippet sample response:
{
  "containerEntity": "urn:li:event:123456789",
  "containerEntity~": {
    "created": {
      "actor": "urn:li:person:2qXA98-mVk",
      "actor~": {...},
      "time": 1569542293839
    },
    ...
  }
}
  • Posts a group and social actions of these posts of a group are now decorated. Below is a snippet sample response:
{
  "media": "urn:li:group:112345",
  "media~": {
    "created": {
      "actor": "urn:li:person:123ABC",
      "actor~": {...},
      "time": 1522194788
    },
    "description": {
      "locale": {
        "country": "US",
        "language": "en"
      },
      "value": "group description"
    },
    "id": 112345,
    "lastModified": {
      "actor": "urn:li:person:123ABC",
      "actor~": {...},
      "time": 1522194788
    },
    "title": {
      "locale": {
        "country": "US",
        "language": "en"
      },
      "value": "Group Title"
    },
    "type": "STANDARD"
  },
  ...
}

November 13, 2019

LinkedIn Compliance Server powering the Compliance Events API experienced an outage on November 12, from 1:00pm to 6:00pm PST. Due to this outage, events during this time were delayed from being surfaced and some events were not processed.

November 6, 2019

Share URN decoration changes on Compliance Events API

Compliance Events API is now returning UGCPost schema decoration for all new share URNs. Old activities with share URNs will continue to return the legacy share schema decoration. For more information, see here. This change was deployed today at 4:45 PM PST.

Compliance Events API Replayer Feature

Compliance Events API is introducing the Replayer Feature on December 6, 2019. This feature provides the ability to reprocess events that have already occurred and surfaced in the API response. It will provide more information on past events that were not previously available during the initial compliance capture and process.

Rich Media Upload Deprecation and Migration

LinkedIn launched the Media Assets API to host media types such as images and videos to replace the Rich Media Upload API. We are deprecating the existing Rich Media Upload API on January 30, 2020.

September 13, 2019

From August 22 to September 12, Compliance Events API experienced an outage with resourceName ugcPosts activities. Specifically, the majority of resourceName ugcPosts with share Urn activities are missing (see below for an example). Since 3:20PM PST on September, 12, the API has recovered and is now returning share Urn entities on resourceName ugcPosts.

{
  "resourceId": "urn:li:share:<id>",
  "method": "CREATE", //can be UPDATE or DELETE as well
  "resourceName": "ugcPosts",
  "resourceUri": "/ugcPosts/urn:li:share:<id>",
  "activity": {...},
  "processedActivity": {...},
  ...
}

Fortunately, these shares were and still are being surfaced on resourceName shares activities. If you are using resourceName shares activities on Compliance Events API, you are NOT affected by this outage. Back on March 13, 2018, we mentioned that there are share activity duplication under both resourceName shares and ugcPosts, and all posts will appear as ugcPosts. As a result, we are aware that some partners have proactively stopped archiving for any resourceName shares and you are impacted by this outage.

Unfortunately, these activities cannot resurface on the Compliance Events API. If you are impacted, the only way to remediate and retrieve these shares are to use either:

You will need to traverse through the API response back to August 22 to capture all possible missing share posts.

September 10, 2019

There was a V1 API outage today from 11:30 AM to 2:10 PM PST. During this time, any V1 API requests may have returned 410 with a message of This resource is no longer available under v1 APIs. This has since been resolved.

September 9, 2019

Upcoming Release and Deprecation Timeline

Please see here for all the upcoming release and deprecation timeline dates.

Changes to Share URN decoration on Compliance Events API on November 6, 2019

Please see here for additional information regarding this upcoming change.

August 7, 2019

Compliance Events API - Social Actions of Work Anniversary and Job Change Update

Compliance Events API now surfaces all Social Actions (comments and likes) activities performed by other members on a regulated member's work anniversary and job change update.

July 26, 2019

Changes to Profile Picture on Compliance Events API

Compliance Events API events are now only returning the largest profile picture size (800x800). The information contained within the profile picture displayImage~ object remains the same.

Share URN decoration changes on Compliance Events API on November 6, 2019

Compliance Events API is currently returning this specific schema for all decorations to share URNs:

{
  "domainEntity": "urn:li:share:123456",
  "domainEntity~": {
    "owner": ...,
    "created": {...},
    "serviceProvider": ...,
    "text": {...},
    "lastModified": {...},
    "distribution": {...},
    ...
  }
}

On November 6, 2019, the schema will change to that of UGCPost for all share URNs:

{
  "domainEntity": "urn:li:share:123456",
  "domainEntity~": {
    "lifecycleState": ...,
    "visibility": {...},
    "specificContent": {...},
    "author": ...,
    "id": ...,
    "lastModified": {...},
    "created": {...},
    "ugcOrigin": ...,
    "responseContext": {...},
    ...
  }
}

June 10, 2019

Update on Profile IM Deprecation

On January 30, 2019, we announced LinkedIn will be deprecating certain IM providers on March 1, 2019. Below is the latest update for these IM providers deprecation.

Starting June 17, 2019, LinkedIn will begin deprecating IM providers (AIM, MSN, and YAHOO) from linkedin.com. Profiles will stop displaying IMs with these providers and members will not be able to create or update them. This deprecation will apply to all LinkedIn profiles by June 30, 2019.

Both the Profile APIs (/me and /people) and the Profile Edit API will continue surfacing and allowing updates of these IM providers until July 10, 2019.

Clarification on schoolName vs school fields in educations object

On October 19, 2018, we informed of the upcoming changes to school and schoolName. Below are other clarifications to the changes:

  • The school display name on a member profile will take schoolName field as the primary source of truth.
  • If the schoolName field is missing, it will fall back to the display name of the organizationUrn decoration in school field.
  • If the school field exists:
    • The school display name will hyperlink to the school standardized page referenced by the organizationUrn in the school field.
    • The logo image will be from the organizationUrn in the school field.
  • When there is a mismatch of display name between the schoolName and decoration of organizationUrn from the school field, it is intended. It is a LinkedIn product feature that allows a member to customize the display name on his or her profile.

May 22, 2019

Compliance Events API - Decoration Error on Groups Social Actions Activities

From May 1, 5:00pm PST to May 7, 4:00pm PST, all Groups Social Action (comments and likes) activities experienced decoration errors that resulted in an error message on the processedActivity field.

To archive the processed content, we recommend using the resourceUri field from each activity and making additional Social Actions API requests to retrieve the content.

New Content Type in UGCPost - Events

LinkedIn is introducing Events to provide members with an easy way to create and join professional events that interest them. Currently, we will only surface feed experience (posts, comments, and likes) related to events. LinkedIn Compliance API program is NOT providing direct API access to events' information or events' attendees. For more information on the feed experience related to events, please see below:

GET

https://api.linkedin.com/v2/ugcPosts/{urn}?projection=(author,clientApplication,created,distribution,lastModified,lifecycleState,permalinkSuffix,ugcOrigin,visibility,specificContent(*(shareMediaCategory,shareFeatures,media(*(media~event(name,localizedName,organizer~member(vanityName,profilePicture(displayImage~:playableStreams),localizedFirstName,localizedLastName,localizedHeadline,localizedName,firstName,lastName,headline)~organization(name,localizedName),timeRange,address,venueDetails,id,logo~:playableStreams,description,localizedDescription,backgroundImage~:playableStreams),thumbnails,description,landingPage,originalUrl,title,status)),primaryLandingPageUrl,shareCategorization(skills*),shareCommentary(attributes*(length,start,value(*(*~))),inferredLocale,text))))
  • Sample UGCPost API request on a share on an event page:
GET

https://api.linkedin.com/v2/ugcPosts/{urn}?projection=(author,containerEntity~,clientApplication,created,distribution,lastModified,lifecycleState,permalinkSuffix,ugcOrigin,visibility,specificContent(*(shareMediaCategory,shareFeatures,media,primaryLandingPageUrl,shareCategorization(skills*),shareCommentary(attributes*(length,start,value(*(*~))),inferredLocale,text))))

Upcoming changes to profile picture on July 23, 2019

To minimize the response size and provide necessary information to partners, we will update profile picture information within all Compliance Events API events to only return the largest size (800x800). Currently, there are 4 sizes of the same image returned - 100x100, 200x200, 400x400 and 800x800. The information contained within the profile picture displayImage~ object will be the same as it is today, only the number of elements will be restricted.

May 2, 2019

LinkedIn Reactions

LinkedIn recently introduced Reactions to provide members more ways to quickly and constructively communicate with one another. As of right now, the Compliance API program does not have any plans to surface these Reactions. Currently, all Reactions are attributed and aggregated as Likes on Social Actions API and Compliance Events API.

The only new feature we are surfacing is when a member updates from one Reaction type to another. It is surfaced in Compliance Events API as a PARTIAL_UPDATE with an empty activity field:

{
  "resourceId": "urn:li:ugcPost:123456789",
  "method": "PARTIAL_UPDATE",
  "activity": {},
  "resourceName": "socialActions/likes",
  "resourceUri": "/socialActions/urn:li:ugcPost:123456789/likes/urn:li:person:yrZCpj2ZYQ",
  "processedActivity": {},
  ...
}

Reminder on Past Announcement Changes

April 17, 2019

LinkedIn Publishing Article Changes

On June 17, 2019, LinkedIn will begin changing how LinkedIn Publishing Articles are surfaced through the APIs. See the migration guide for more information on the changes to the API workflows, and how to successfully continue satisfying your Publishing Articles use cases.

This change will NOT affect third party article shares on LinkedIn.com.

Decoration enhancements in Compliance Events API

  • logoUrn field for Group posts and social actions on group posts - Compliance Events API for Group Posts and Social Actions on Group posts events will now include expansion of the logoUrn field for group information. This field is a DigitalMediaAsset Urn.

  • Decoration of Job Urn - Compliance Events API will now include basic job post information when a job is shared in a post, or when a social action is performed on a shared job post. See below for example processedActivity for a job share. The media~ field contains the job information.

{
  "processedActivity": {
    "lifecycleState": "PUBLISHED",
    "specificContent": {
      "com.linkedin.ugc.ShareContent": {
        "shareMediaCategory": "JOB",
        "shareFeatures": {
          "hashtags": []
        },
        "shareCommentary": {
          "text": "job-share"
        },
        "media": [
          {
            "media~": {
              "closeDate": 1540837498000,
              "listDate": 1535932815000,
              "companyName": "abcd",
              "jobState": "CLOSED",
              "locationDescription": "300 ABC St, San Francisco, CA 94015, US",
              "company": "urn:li:company:1000",
              "id": 8271424,
              "title": "Software Engineer",
              "expirationDate": 1540745342000
            },
            "media": "urn:li:job:8271424",
            "status": "READY"
          }
        ],
        "shareCategorization": {}
      }
    },
    "visibility": {
      "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
    },
    "author": "urn:li:person:ABCDEF",
    ...
  }
}

April 1, 2019

New Content Type in UGCPost - Marketplace Platform Opportunity

LinkedIn is introducing a new content type post, Marketplace Platform Opportunity. A marketplace platform opportunity is defined as a request created by a member who needs some service or help. For example, a mentee looking for a mentor or a member looking for a plumber.

See below for a sample UGCPost API request and response:

GET

https://api.linkedin.com/v2/ugcPosts/{urn}?projection=(author,clientApplication,created,distribution,lastModified,lifecycleState,permalinkSuffix,ugcOrigin,visibility,specificContent(*(shareMediaCategory,shareFeatures,media(*(media~marketplacePlatformOpportunity(requester~(localizedFirstName,localizedLastName),opportunityType(skill~;localeLanguage=en_US;localeCountry=US),location(region~region:standardization,state~,place~)),thumbnails,description,landingPage,originalUrl,title,status)),primaryLandingPageUrl,shareCategorization(skills*),shareCommentary(attributes*(length,start,value(*(*~))),inferredLocale,text))))
{
  "lifecycleState": "PUBLISHED",
  "visibility": {
    "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
  },
  "specificContent": {
    "com.linkedin.ugc.ShareContent": {
      "shareMediaCategory": "URN_REFERENCE",
      "shareCommentary": {
        "inferredLocale": "en_US",
        "text": "Looking for a plumber!"
      },
      "media": [
        {
          "media~": {
            "requester": "urn:li:person:yrZCpj2ZYQ",
            "opportunityType": {
              "skill": "urn:li:skill:123",
              "skill~": {
                "standardizedName": "Plumbing",
                "id": 123,
                "locale": {
                  "country": "US",
                  "language": "en"
                }
              }
            },
            "requester~": {
              "localizedLastName": "Mario",
              "localizedFirstName": "Mario"
            },
            "region~": {
              "country": "urn:li:country:us",
              "name": {
                "locale": {
                  "country": "US",
                  "language": "en"
                },
                "value": "San Francisco Bay Area"
              },
              "id": 84,
              "$URN": "urn:li:region:84",
              "states": [
                "urn:li:state:(urn:li:country:us,CA)"
              ]
            },
            "region": "urn:li:region:84"
          },
          "media": "urn:li:marketplacePlatformOpportunity:(123456789,SERVICE_MARKETPLACE)",
          "thumbnails": [],
          "status": "READY"
        }
      ]
    }
  },
  "author": "urn:li:person:yrZCpj2ZYQ",
  ...
}

For Compliance Events API, please see here for UGCPost activity or here for Social Action activity on a UGCPost of a Marketplace Platform Opportunity.

Invitations HTTP Status Code Change

If there is an existing invitation and the user is trying to create another invitation to the same invitee, LinkedIn regards this as a resend use case. In this scenario, LinkedIn Invitations API currently returns 409.

We are changing this to 202 to reflect that the request has been accepted for processing, but the processing has not been completed. The request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place. This change will take place on April 2, 2019 and be fully in effect by April 22, 2019.

March 20, 2019

Changes to school Urn and schoolName Fields

The earlier announced changes on Oct 19 2018 to the school and schoolName fields will now be implemented on May 1st, 2019. The schoolName field will be continue to be automatically populated until May 15, 2019, for cases where the school field is populated. This is to allow partners to test the changes to retrieve the school name by decorating the Organization URN. After May 15, 2019, schoolName will only be populated for cases where the school field is not present.

Changes to article schema in socialActions activities within Compliance Events API to include authors field

Previously, commenting or liking an article would not include the authors field within Compliance Events API. This is now returned, but due to this change, the link to the article is now present in the resolvedUrl field, instead of the url field.

See below for sample response from a comment on an article

{
  "object~": {
    "urn": "urn:li:ingestedContent:XXXXXXX",
    "specificContent": {
      "com.linkedin.ingestedcontent.ArticleSpecificContent": {
        "images": [
          {
            "imageSpecificContent": {
              "width": 744,
              "height": 400
            },
            "resolvedUrl": "https://media.licdn.com/dms/image/xxxxxxx...."
          }
        ],
        "fullText": "abcd"
      }
    },
    "provider": {
      "url": "linkedin.com"
    },
    "publishedAt": 1509599385000,
    "description": "abcd",
    "mediaType": "text/html",
    "id": "123456789",
    "resolvedUrl": "https://www.linkedin.com/pulse/test-article",
    "locale": {
      "language": "en"
    },
    "title": "def",
    "authors": []
  },
  "object": "urn:li:article:123456789"
}

March 11, 2019

Look up Profile by VanityName API

Retrieving Profile by vanityName is now available on V2 API.

Upcoming Changes to UGCPost with Kudos

On April 30, 2019, UGCPost entities of Kudos will no longer return the Kudos image via thumbnails.url. Instead, it will only be surfaced through media field in media as an AppreciationUrn. Currently both fields are being returned.

See below for a sample UGCPost API request and response:

GET

https://api.linkedin.com/v2/ugcPosts/{urn}?projection=(author,clientApplication,created,distribution,lastModified,lifecycleState,permalinkSuffix,ugcOrigin,visibility,specificContent(*(shareMediaCategory,shareFeatures,media(*(media~appreciation(created,creator~(vanityName,profilePicture(displayImage~:playableStreams),localizedFirstName,localizedLastName, localizedHeadline),deleted,id,lastModified,media*~:playableStreams,reason,recipients*~(vanityName,profilePicture(displayImage~:playableStreams),localizedFirstName,localizedLastName,localizedHeadline),source),thumbnails,description,landingPage,originalUrl,title,status)),primaryLandingPageUrl,shareCategorization(skills*),shareCommentary(attributes*(length,start,value(*(*~))),inferredLocale,text))))
{
  "lifecycleState": "PUBLISHED",
  "visibility": {
    "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
  },
  "specificContent": {
    "com.linkedin.ugc.ShareContent": {
      "shareMediaCategory": "URN_REFERENCE",
      "shareFeatures": {
        "hashtags": [
          "urn:li:hashtag:kudos",
          "urn:li:hashtag:thankyou"
        ]
      },
      "shareCommentary": {
        "attributes": [
          {
            "length": 16,
            "start": 0,
            "value": {
              "com.linkedin.common.MemberAttributedEntity": {
                "member": "urn:li:person:2SqvgON4PZ",
                "member~": {...}
              }
            }
          },
          {
            "length": 6,
            "start": 17,
            "value": {
              "com.linkedin.common.HashtagAttributedEntity": {
                "hashtag": "urn:li:hashtag:kudos"
              }
            }
          },
          {
            "length": 9,
            "start": 45,
            "value": {
              "com.linkedin.common.HashtagAttributedEntity": {
                "hashtag": "urn:li:hashtag:thankyou"
              }
            }
          }
        ],
        "text": "Partners, #Kudos I just wanted to say #ThankYou "
      },
      "media": [
        {
          "media~": {
            "reason": "THANK_YOU",
            "creator": "urn:li:person:yrZCpj2ZYQ",
            "creator~": {...},
            "media~": [
              {...}
            ],
            "created": 1551990436449,
            "recipients": [
              "urn:li:person:2SqvgON4PZ"
            ],
            "recipients~": [
              {...}
            ],
            "id": 123456789,
            "lastModified": 1551990437838,
            "media": [
              "urn:li:digitalmediaAsset:C4D22AQE7o2HSehnd9Q"
            ],
            "source": "urn:li:ugcPost:123456789"
          },
          "media": "urn:li:appreciation:123456789",
          "thumbnails": [
            {
              "url": "https://media.licdn.com/dms/image/..."
            }
          ],
          "status": "READY"
        }
      ]
    }
  },
  "author": "urn:li:person:yrZCpj2ZYQ",
  "created": {...},
  "ugcOrigin": "DESKTOP",
  "lastModified": {...},
  "distribution": {
    "feedDistribution": "MAIN_FEED",
    "externalDistributionChannels": [],
    "distributedViaFollowFeed": true
  }
}

For Compliance Events API, please see here for UGCPost activity or here for Social Action activity on a UGCPost of Kudos. Currently, Compliance Events API does not track Kudos given to regulated members.

Social Action Activities on Compliance Events API

All of the decoration and missing content issues surfaced on February 11th with Social Action activities on Compliance Events API have been resolved as of Friday evening, March 8th.

These fixes only resolve the new activities being surfaced, not the previous activities. To capture the loss of content, partners are advised to take the resourceUri and call the Social Action APIs to capture the unprocessed content.

February 22, 2019

Profile picture field changes within Compliance Events API

Due to the previously announced Media Migration to new fields, the pictureInfo field within member information in various objects in Compliance Events API is no longer available. We are now including profilePicture for this information, and the Digital Media Asset URN is expanded to return the downloadable url.

Sample Response

"processedActivity": {
    "actor": "urn:li:person:12345",
    "actor~": {
      "localizedLastName": "User",
      "vanityName": "user-test-66514738",
      "profilePicture": {
        "displayImage": "urn:li:digitalmediaAsset:C5503AQEnuoJzDXmX_g",
        "displayImage~": {
          "elements": [
            {
              "identifiers": [
                {
                  "identifier": "https://api.linkedin.com/mediaDownload/C5503AQEnuoJzDXmX_g/profile-displayphoto-shrink_100_100/0?app=1838494&m=AQIH1djulo_yGQAAAWkRaelfnepCbK-JW-JSRsak2UDiVFLvWCtBrHi2AQ&e=1552071347&v=beta&t=7YX6MXFidN48oKy5hhYGik8stv30_-nT3Tzvr3BzWoY",
                  "file": "urn:li:digitalmediaFile:(urn:li:digitalmediaAsset:C5503AQEnuoJzDXmX_g,urn:li:digitalmediaMediaArtifactClass:profile-displayphoto-shrink_100_100,0)",
                  "index": 0,
                  "mediaType": "image/jpeg",
                  "identifierType": "EXTERNAL_URL",
                  "identifierExpiresInSeconds": 1552071347
                }
              ]
            },
            {
              "identifiers": [
                {
                  "identifier": "https://api.linkedin.com/mediaDownload/C5503AQEnuoJzDXmX_g/profile-displayphoto-shrink_200_200/0?app=1838494&m=AQIqc2LxkcIRfAAAAWkRaelghJb7C5tsAc3PQycypIQt5BRVPMECJvm1fg&e=1552071347&v=beta&t=w8QNI8cvy5DIqOSttWDF4CIcSBirAjUXC3KgurIw9rA",
                  "file": "urn:li:digitalmediaFile:(urn:li:digitalmediaAsset:C5503AQEnuoJzDXmX_g,urn:li:digitalmediaMediaArtifactClass:profile-displayphoto-shrink_200_200,0)",
                  "index": 0,
                  "mediaType": "image/jpeg",
                  "identifierType": "EXTERNAL_URL",
                  "identifierExpiresInSeconds": 1552071347
                }
              ]
            },
            {
              "identifiers": [
                {
                  "identifier": "https://api.linkedin.com/mediaDownload/C5503AQEnuoJzDXmX_g/profile-displayphoto-shrink_400_400/0?app=1838494&m=AQIYQo4erRbqHQAAAWkRaelgK5XIxx6svCJrZtlEWj0fhbUH_7PA2LQvFg&e=1552071347&v=beta&t=VuPoSwOrJYagzUUy3loLq5C4g5KYeL9Hip-DaqPM3ZU",
                  "file": "urn:li:digitalmediaFile:(urn:li:digitalmediaAsset:C5503AQEnuoJzDXmX_g,urn:li:digitalmediaMediaArtifactClass:profile-displayphoto-shrink_400_400,0)",
                  "index": 0,
                  "mediaType": "image/jpeg",
                  "identifierType": "EXTERNAL_URL",
                  "identifierExpiresInSeconds": 1552071347
                }
              ]
            }
          ]
        }
      }
    }
  }

Decoration Addition for Social Actions on reshare of ugcPost

When a member performs a social action on a reshare of an ugcPost, the ugcPost is attributed in the responseContext


    "responseContext": {
        "parent": "urn:li:ugcPost:123456789",
        "root": "urn:li:ugcPost:123456789"
    }

We will now decorate both parent and root to provide more context on the original post

    "responseContext": {
        "parent": "urn:li:ugcPost:123456789",
        "parent~": {...},
        "root": "urn:li:ugcPost:123456789",
        "root~": {...},
    }

January 30, 2019

V2 Compliance API Documentation

Please see here for all V2 API documentation for the Compliance Partner Program.

Profile IM Deprecation

Starting March 1, 2019, LinkedIn will begin deprecating certain IM providers: AIM, MSN and YAHOO. We will no longer allow IM creation for these providers via API and linkedin.com. In addition, we will be removing all IMs associated with these providers after March 1, 2019.

V2 APIs now available for Profile Picture and Background Picture uploads

Documentation for uploading Background Picture and Profile Picture using V2 APIs is now available. Please note that w_compliance permission is required for this functionality.

January 7, 2019

Changes to school and schoolName fields in educations object

The earlier announced changes on Oct 19 2018 to the school and schoolName fields is postponed. An updated timeframe will be communicated later.

Media Migration Timeline changes for Articles API

The displayImage and coverImage fields in Articles API will return information in the format mentioned here, in the "Existing Field Changes" format till March 31, 2019, due to a delay in the migration of the underlying service.

October 26, 2018

V1 Groups API Deprecation

LinkedIn will deprecate V1 Groups APIs on November 26, 2018. We advise our partners to integrate with the V2 Group API Solution as soon as possible.

V2 Compliance Events API Decoration

Decoration of original share in reshare activities involving videos (UGC Posts) are now being shown. See below for an example:

processedActivity decoration for reshare of ugcPost URN

{
"processedActivity": {
  "lifecycleState": "PUBLISHED",
  "author~": {...},
  "specificContent": {
    "com.linkedin.ugc.ShareContent": {
      "shareMediaCategory": "NONE",
      "shareFeatures": {
        "hashtags": []
      },
      "shareCommentary": {
        "text": "wow!"
      },
      "media": [],
      "shareCategorization": {}
    }
  },
  "visibility": {
    "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
  },
  "author": "urn:li:person:Ylpq-RobP9",
  "created": {
    "actor": "urn:li:person:Ylpq-RobP9",
    "actor~": {...},
    "time": 1540586029111
  },
  "responseContext": {
    "parent": "urn:li:ugcPost:6461684238709202944",
    "parent~": {
      "lifecycleState": "PUBLISHED",
      "author~": {...},
      "specificContent": {
        "com.linkedin.ugc.ShareContent": {
          "shareMediaCategory": "VIDEO",
          "shareCommentary": {
            "inferredLocale": "en_US",
            "text": "hello"
          },
          "media": [
            {
              "media~": {
                "elements": [
                  {
                    "identifiers": [
                      {
                        "identifier": "https://api.linkedin.com/mediaDownload/..",
                        "file": "urn:li:digitalmediaFile:(urn:li:digitalmediaAsset:123ABC,urn:li:digitalmediaMediaArtifactClass:feedshare-hls_200_3300_low-captions-thumbnails,0)",
                        "size": 1530,
                        "index": 0,
                        "mediaType": "application/vnd.apple.mpegurl",
                        "identifierType": "EXTERNAL_URL",
                        "identifierExpiresInSeconds": 1541882059,
                        "slug": "masterplaylist.m3u8"
                      }
                    ]
                  }
                ]
              },
              "media": "urn:li:digitalmediaAsset:C5405AQHJk0950D6fcQ"
            }
          ],
          "shareCategorization": {}
        }
      },
      "visibility": {
        "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
      },
      "author": "urn:li:person:Ylpq-RobP9",
      "created": {
        "actor": "urn:li:person:Ylpq-RobP9",
        "actor~": {...},
        "time": 1540585574799
      },
      "origin": "DESKTOP",
      "firstPublishedAt": 1540585644517,
      "id": "urn:li:ugcPost:6461684238709202944",
      "lastModified": {
        "actor": "urn:li:csUser:7",
        "time": 1540585645395
      }
    },
    "root~": {...},
    "root": "urn:li:ugcPost:6461684238709202944"
  },
  "firstPublishedAt": 1540586029111,
  "id": "urn:li:ugcPost:6461686144219262976",
  "lastModified": {
    "actor": "urn:li:csUser:2",
    "time": 1540586029180
  }
}

October 19, 2018

Upcoming Release Reminders

[Update] Upcoming Changes to Profile API

The upcoming changes for profile fields limitations on October 31, 2018 has been postponed until further notice.

school and schoolName fields changes in educations object

On May 1, 2019, the following changes will be made -

  • The school field will change from a school URN ( urn:li:school:XXX ) to an organization URN ( urn:li:organization:XXX ). The school field can then be expanded using decoration to get the name of the school, and other information.

  • The schoolName field will no longer be populated by default within the educations object. It will only be present if the user chose to type in or overwrite a school name in the UI, that is not recognized as a school URN.

Note: The school field may not be present in all cases, for example, if the user chooses to manually enter the information through LinkedIn, instead of choosing from the drop-down list.

October 5, 2018

Background Image & Picture Decoration

If the media-typed URN starts with urn:li:scds: , then you will need to replace that with https://static.licdn.com/scds/common/u/ . For more information, see here.

Developer Application URN Decoration

Developer Application URN can now be decorated to see name .

In Compliance Events API, the processedActivity field will display developer application name if available. It will appear in UGC Post or Social Action activities.

You can also decorate API request to UGC Post and Social Action to retrieve the name of the developerApplication URN.

MemberRichMedia on Compliance Events API

We now capture activities for profile updates containing member rich media. For more information, see here.

September 7, 2018

V2 Group APIs Release

Compliance applications now have V2 Group API capabilities. Please see here for detailed documentation.

Changes to UGC Posts API

Starting today, we will expose authors as a query parameter to enable finding ugcPost by an organization. On October 8, 2018 , this field will be marked as required and will start accepting organizationURN . Please plan this breaking change accordingly.

For example:

GET

https://api.linkedin.com/v2/ugcPosts?q=authors&authors=List({encoded personURN|organizationURN})

Action Required: If you are making UGC Post API requests (see below) today, then modify the API with the newly exposed required authors field as shown above. Please let us know if you have any questions or concerns.

GET

https://api.linkedin.com/v2/ugcPosts?q=authors

Deprecations of imsOrder in Profile Fields

We are deprecating imsOrder . Please refer to ims as the only source of truth for displaying IMs. LinkedIn user interface will not have a sorting order for IMs.

Changes to VanityName in Profile API

We are changing the vanityName rule in Profile Edit API to "Your custom URL must contain 3-100 letters or numbers. Please do not use spaces, symbols, or special characters."

While we discourage members from using special characters, LinkedIn.com will now accept certain special characters to align with our backend API validation.

Upcoming Changes to Profile API

On October 31, 2018 , LinkedIn will be limiting profile fields of members other than the authenticated member. This means that:

  • V2 Profile API (/v2/people) will only return id , firstName , lastName , localizedFirstName , localizedLastName , pictureInfo , profilePicture , vanityName , headline , localizedHeadline , and positions .
  • Decoration of person URN will only return the same above profile fields.

Personal Profile API (/v2/me) will remain the same.

Action Required: If you are making Profile API or decoration of person URN in other API requests involving other fields than the ones listed above, you will need to update your application to only specify these fields. If you specify more than what is allowed, you will receive a 403 HTTP code with an error code of not enough permissions to access field ___ for GET /people .

August 2, 2018

Release

  • ContentTopic on Compliance Events API - The API now shows information about the ContentTopic Urn that was either shared, liked or commented on from the "What people are talking about now" section on LinkedIn.com.

July 20, 2018

Release

  • Messaging Events on Compliance Events API - the API now shows both inbound and outbound messages for a regulated member. The messages include personal mailbox such as direct messages and InMails, Recruiter and Sales Navigator mailbox.

Upcoming

  • OAuth 2.0 Redirects- BeginningJuly 23, 2018, we will start performing OAuth 2.0 redirects for applications still using the legacy OAuth 2.0 flow to the new OAuth 2.0 flow. This change will happen gradually for select users and will affect all members by August 6, 2018. With this redirect, the member will experience a new UI flow and a slight delay in the authorization due to the redirects. If you haven't already, LinkedIn recommends all partners to migrate to the new OAuth 2.0 flow for a better member experience. We will eventually deprecate the legacy flow but the date is yet to be determined.

  • Decoration Changes to Activity URN in Compliance Events API- On October 20, 2018, we will be changing the activity URN decoration schema on Compliance Events API. Please update your application accordingly to handle the current and new activity schema*. The new schema is subject to change pending discovery of any issues before release.

June 29, 2018

Release

Upcoming

  • Messaging Events on Compliance Events API - The API now shows both inbound and outbound messages for a regulated member. The messages include personal mailbox such as direct messages and InMails, Recruiter and Sales Navigator mailbox. ETA - July 16, 2018.
  • Groups and Group Membership APIs -The APIs will allow you to retrieve groups, group memberships and their activities such as posts, comments and likes. ETA - July 23, 2018.

May 30, 2018

Known V1 Issues

API Description Suggested workaround
v1/network/updates Sharing a pulse article returns update-type for that article in the api response as SHAR instead of ARTC The link to the article contains "/pulse/" which can be used to identify the item as an article.
v1/people/~/mailbox Attachments are not returned in the API response for messages that include them None

May 22, 2018

  • Compliance Events API now captures all Elevate shares and their subsequent comments and likes since 12:00pm PST, May 22, 2018. Previous Elevate shares and their social actions are retrievable via the snapshot APIs mentioned in the May 10, 2018 section.
  • The following Profile fields are no longer supported by LinkedIn and will NOT appear on any LinkedIn UI platforms starting today. Partners are advised to stop retrieving and updating these fields. The Profile Edit API for these fields will still return 200 but will not perform the update action.
V1 V2
/people/~/interests interests - /people/id={ID}
/people/~/proposal-comments contactInstructions - /people/id={ID}
/people/~/volunteer/supported-organizations volunteeringInterests.supportedNonprofits - /people/id={ID}
/people/~/volunteer/opportunities associations - /people/id={ID}
legacyHonors - /people/id={ID}
specialties - /people/id={ID}

May 10, 2018

  • We recently identified shares generated from LinkedIn Elevate and their subsequent comments and likes are NOT captured from Compliance Events API. We are actively fixing this issue. Please utilize Share API (filtering by "serviceProvider": "ELEVATE") or UGC Post API (filtering by "ugcOrigin": "ELEVATE") to retrieve the missing share content that has not been captured. After identifying the missing shares, please use the Social Actions API to retrieve all subsequent comments and likes of those shares. See Examples below. Use these APIs to capture shares from LinkedIn Elevate and their subsequent comments and likes that have been missed from the time of using Compliance Events API.
GET

https://api.linkedin.com/v2/shares?q=owners&owners={URN}&sharesPerOwner=100

Shares API Sample Response for Elevate Shares

{
   ......
   "serviceProvider": "ELEVATE",
}
GET

https://api.linkedin.com/v2/ugcPosts?q=authors

UGC Post API Sample Response for Elevate Shares

{
   ......
   "ugcOrigin": "ELEVATE",
}
GET

https://api.linkedin.com/v2/socialActions/{shareUrn}
GET

https://api.linkedin.com/v2/socialActions/{shareUrn}/comments
GET

https://api.linkedin.com/v2/socialActions/{shareUrn}/likes

April 11, 2018

Effective May 18th, 2018, V1 Company Pages API will no longer work with OAuth 1.0. We recommend all apps switch over to OAuth 2.0 authentication

March 13, 2018

  • Common URNs & Namespace - reference page to help partners migrate from V1 to V2 API by identifying different types of urns and what they correspond to.
  • LinkedIn internal migration with Share services - Due to internal migration, you might experience duplicate share activities in Compliance Events API under both resourceName shares and ugcPosts . The duplication is caused by dual writes to both services and will stop when the migration is completed on March 22. Once migration is done, all posts will appear as ugcPosts , even the Share API creation. See below for an example:

same share and ugc activities

{
  "owner": "urn:li:person:V9W_L_bioc",
  "resourceId": "6379484686464481234",
  "configVersion": 6,
  "method": "CREATE",
  "activity": {...},
  "resourceName": "shares",
  "resourceUri": "/shares/6379484686464481234",
  "actor": "urn:li:person:V9W_L_bioc",
  "activityId": "39027022-9b4e-46bb-9248-dfa3ac859107",
  "processedAt": 1520987704675,
  "capturedAt": 1520987674553,
  "processedActivity": {...},
  "id": 105171548
},
{
  "owner": "urn:li:person:V9W_L_bioc",
  "resourceId": "urn:li:share:6379484686464481234",
  "configVersion": 8,
  "method": "CREATE",
  "activity": {...},
  "resourceName": "ugcPosts",
  "resourceUri": "/ugcPosts/urn:li:share:6379484686464481234",
  "actor": "urn:li:person:V9W_L_bioc",
  "activityId": "41b5c280-541f-4746-9d3d-997ffe7adfd8",
  "processedAt": 1520987704686,
  "capturedAt": 1520987674535,
  "processedActivity": {...},
  "id": 105171556
}

From the example above, the id of the share will be the same but represented in different format, id vs urn. The activityId , processedAt and capturedAt will be slightly different as well. The activity and processedActivity payload will retain its own respective schema.

March 5, 2018

  • ComplianceEvents - Compliance events API will now capture comment edits made by a regulated member on a share or article.

Note : Comment edits made by a non-regulated member will not be captured.

February 28, 2018

  • Media Changes & Migration - Changes and upcoming releases on media changes on V2.
  • V1 Media Changes - V1 API will return different image URLs for picture-url and picture-urls . The URLs will be dynamic and can change from request to request even though the content image is the same. The change started ramping earlier this week and will be ramped to 100% at the end of the week. In addition, the dimension size will be either 100x100, 200x200, 300x300, or 400x400. We will round to the nearest correct dimension when an incorrect size is requested. See examples below:

old photo URL format

{
    "pictureUrl": "https://media.licdn.com/mpr/mpr/shrink_80_80/AAMAAgBpAAIAAQAAAAAA.png"
}

new photo URL format

{
    "pictureUrl": "https://media.licdn.com/dms/image/C5603AQG2aht_l8r_0A/profile-displayphoto-shrink_100_100/0?e=1525050000&v=alpha&t=fqCXyA31"
}

January 30, 2018

September 28, 2017

  • Compliance Events API - new feature enhancements
  • Member Rich Media API - allows for retrieval of rich media content on member's profile
  • UGC Posts API - retrieval and deletion of video posts and all other shares. Currently does not support retrieval of actual video content.
  • Rich Media Summary API - provides an url to resolve the image of a richMediaSummaryUrn
  • Activity Feeds API - provides a share feed of the member's first degree connections
  • Invitations API - ability to invite a raw email address (urn:li:email:{raw_email_string})