Compliance Management API

The Compliance API allows you to archive all communication from Sales Navigator from the past 28 days of a regulated, authenticated member. It returns each monitored communication as an individual event record to provide ease of archive and remediation if necessary. Compliance Management APIs allows developers to onboard or opt-in a member to LinkedIn Compliance platform to start monitoring and archiving the member's communications on Sales Navigator.

Note

Only Compliance APIs for Sales Navigator uses the Versioned LinkedIn APIs. Please append the header LinkedIn-Version: 202310 while making the API requests.

Usage

You must use an access token to make an authenticated call on behalf of a user.

Permissions

Permission Description
r_compliance_sales_nav Required to retrieve communications from Sales Navigator Inbox for compliance monitoring and archiving.

To use the following APIs, you will need to know your application ID. This can be found in your Developer Application Setting page. Select your application and go to the Mobile section to view your application ID. Alternatively, you can find the ID from the URL as well (ie. https://www.linkedin.com/developer/apps/{applicationID}/auth).

Compliance Authorization

To begin monitoring a member's Sales Navigator Communications, you will need to opt in the member into our Compliance system by calling the following API:

POST https://api.linkedin.com/rest/memberComplianceAuthorizations
Request Body {}

Note

You will need to supply an empty JSON object, {} to the request body to successfully opt the member into compliance.

Once the member has been opted in, all the compliance events captured can be queried via the Compliance Events API. The API will not contain any preceding communications and will only capture communications performed following the authorization toggle. You can check the member's authorization status by requesting the following member FINDER API:

GET https://api.linkedin.com/rest/memberComplianceAuthorizations

sample GET response

{
  "elements": [
    {
      "memberComplianceAuthorizationKey": {
        "developerApplication": "urn:li:developerApplication:123456",
        "member": "urn:li:person:123ABC",
      },
      "regulatedAt": 1698382869085,
      "memberComplianceScopes": [
                "SALES_NAV"
      ],
    }
  ]
}

If the response contains your own developerApplicationUrn , then you are good to go!

memberComplianceAuthorization Response Schema

Field Name Description Data Type
regulatedAt Epoch timestamp since which the user's compliance activities are being monitored and archived long
memberComplianceAuthorizationKey.developerApplication developer application which is monitoring the user URN String
memberComplianceAuthorizationKey.member user whose compliance events are being archived (This the user whose token is being used) URN String
memberComplianceScopes Array of Compliance Products, the user has consented to. This would contain only be "SALES_NAV" for now Array of ENUM

Compliance De-Authorization

If you wish to have LinkedIn stop monitoring a regulated member's Sales Navigator communication i.e. opt out the member from our Compliance Platform, call the following and all subsequent communications will not be captured.

To allow developers to De-Authorize members for whom the access token might have expired, the following API can also be used with access tokens obtained via OAuth2.0 Client Credentials flow.

Here the values for the developerApplication and member request params should be same as in the response to the GET /memberComplianceAuthorizations?q=member&Application documented above.

DELETE https://api.linkedin.com/rest/memberComplianceAuthorizations/developerApplication={developerApplicationURN}&member={personURN}

Note

A member will not opt out of Compliance authorization due to access token expiration. The only ways an opt out can happen are:

  • Application invokes the DELETE API mentioned above
  • The regulated member removes the application's authorization through LinkedIn's Privacy Setting page. This can be found under the Third Parties section.

Therefore, it is always a good idea to periodically check the member's authorization status using the GET API.