Organization Access Control by Role

Warning

Deprecation Notice
The Marketing version 202303 (Marketing March 2023) and below has been sunset and the unversioned APIs are going to be sunset soon. We recommend that you migrate to the versioned APIs as well as migrate to the new Content and Community Management APIs to avoid disruptions. See the Migration page for more details. If you haven’t yet migrated and have questions, submit a request on the LinkedIn Developer Support Portal.

A role defines the privileges that a member has within the organization. You must be an authenticated member with role type ADMINISTRATOR for an organization to use many of the Organization APIs.

Organization Access Control

Search for access control information by member or organizational entity URNs.

host: api.linkedin.com
basePath: /rest
scheme: https
endpoint: /organizationAcls
methods: PUT, roleAssignee FINDER, organization FINDER

host: api.linkedin.com
basePath: /v2
scheme: https
endpoint: /organizationAcls
methods: PUT, roleAssignee FINDER, organization FINDER

FINDER requests must include a header for Restli Protocol 2.0.0:

X-Restli-Protocol-Version: 2.0.0

Permissions

Permission Description
rw_organization_admin Manage organizations pages and retrieve reporting data.
Restricted to organizations in which the authenticated member has the role type ADMINISTRATOR
r_organization_admin Retrieve your organization's pages and their reporting data (including follower, visitor and content analytics).

Organization Roles

Role Type Description
ADMINISTRATOR Access to administer an organizational entity.
An administrator can post updates, edit the organization's page, add other admins, view analytics, and view notifications.
DIRECT_SPONSORED_CONTENT_POSTER Access to read and create direct sponsored content (DSC) for an organizational entity.
RECRUITING_POSTER Access to post to an organizational entity.
LEAD_CAPTURE_ADMINISTRATOR Access to view and manage landing pages for the company, create new landing pages, and edit existing ones.
LEAD_GEN_FORMS_MANAGER Access to retrieve leads that belong to a specific account which is associated with a company page.
ANALYST Access to view an organization's private administrative data that relates to its social presence on LinkedIn, access limited to analytics tab to monitor the Page’s performance to help drive goals. Can edit the competitors of a page.
CURATOR Access to broadcast content to employees of the organization, view Content Suggestions, create recommended content, and view and export Page analytics. Can edit the competitors of a page.
CONTENT_ADMINISTRATOR Access to create and manage Page content, including updates, pinned posts, boosting updates, events, jobs etc.

Role State

Role State Description
APPROVED Role is approved.
REJECTED Role was requested, but then rejected.
REQUESTED Role is requested.
REVOKED Role was previously approved, but then revoked.

Find a Member's Organization Access Control Information

Tip

All requests must include a header for Restli Protocol 2.0.0 as
X-Restli-Protocol-Version: 2.0.0

Sample Request

GET https://api.linkedin.com/rest/organizationAcls?q=roleAssignee
Header: X-Restli-Protocol-Version: 2.0.0
GET https://api.linkedin.com/v2/organizationAcls?q=roleAssignee

Parameters

Field Description Format Required
role Limit results to specific roles, such as ADMINISTRATOR or DIRECT_SPONSORED_CONTENT_POSTER string No
state Limit results to specific role states, such as APPROVED or REQUESTED. string No

Sample Response

{
    "elements": [
        {
            "role": "DIRECT_SPONSORED_CONTENT_POSTER",
            "organization": "urn:li:organization:1234123",
            "roleAssignee": "urn:li:person:abCdEf",
            "state": "REQUESTED"
        }
    ],
    "paging": {
        "count": 10,
        "start": 0,
        "links": []
    }
}

Find Organization Administrators

Sample Request

GET https://api.linkedin.com/rest/organizationAcls?q=organization&organization={encoded organization URN}&role=ADMINISTRATOR&state=APPROVED
GET https://api.linkedin.com/v2/organizationAcls?q=organization&organization={encoded organization URN}&role=ADMINISTRATOR&state=APPROVED
Header: X-Restli-Protocol-Version: 2.0.0

A successful response returns a 200 OK HTTP status code.

A failed response returns one of the following status codes:

Code Description
401 Malformed requests. Typically, the Access Control fields are invalid.
403 A viewer is not present, or the user is not authorized to modify the Access Control.
404 The Access Control does not exist.

Sample Response

{
    "elements": [
        {
            "role": "ADMINISTRATOR",
            "organization": "urn:li:organization:2414183",
            "roleAssignee": "urn:li:person:abCdEf",
            "state": "APPROVED"
        }
    ],
    "paging": {
        "count": 10,
        "start": 0,
        "links": []
    }
}

Note

You can fetch the next set of results using the pagination as shown in the following sample:

GET https://api.linkedin.com/rest/organizationAcls?q=roleAssignee&role=ADMINISTRATOR&state=APPROVED&count=10&start=0
   {
       "paging": {
           "start": 0,
           "count": 10,
           "links": [
               {
                   "type": "application/json",
                   "rel": "next",
                   "href": "/rest/organizationAcls?count=10&q=roleAssignee&role=ADMINISTRATOR&start=10&state=APPROVED"
               }
           ]
       },
       "elements": [       {
         "state": "APPROVED",
         "role": "ADMINISTRATOR",
         "roleAssignee": "urn:li:person:A839rocZ",
         "organizationTarget": "urn:li:organization:2414183"
       },
       {
         "state": "APPROVED",
         "role": "ADMINISTRATOR",
         "roleAssignee": "urn:li:person:pwo82E2v",
         "organizationTarget": "urn:li:organization:2414183"
       },
       {
         "state": "APPROVED",
         "role": "ADMINISTRATOR",
         "roleAssignee": "urn:li:person:vQpe2J8",
         "organizationTarget": "urn:li:organization:2414183"
       },
       {
         "state": "APPROVED",
         "role": "ADMINISTRATOR",
         "roleAssignee": "urn:li:person:J2foLx4",
         "organizationTarget": "urn:li:organization:2414183"
       }
     ]
   }
   ```

Find Organization Access Control

Sample Request

GET https://api.linkedin.com/rest/organizationAcls?q=organization&organization={encoded organization URN}
Header: 'X-Restli-Protocol-Version` 'value': `2.0.0`
GET https://api.linkedin.com/v2/organizationAcls?q=organization&organization={encoded organization URN}
Header: 'X-Restli-Protocol-Version` 'value': `2.0.0`

Sample Response

{
  "paging": {
    "count": 10,
    "start": 0
  },
  "elements": [
    {
      "state": "APPROVED",
      "role": "ADMINISTRATOR",
      "roleAssignee": "urn:li:person:A839rocZ",
      "organizationTarget": "urn:li:organization:2414183"
    },
    {
      "state": "APPROVED",
      "role": "ADMINISTRATOR",
      "roleAssignee": "urn:li:person:pwo82E2v",
      "organizationTarget": "urn:li:organization:2414183"
    },
    {
      "state": "APPROVED",
      "role": "ADMINISTRATOR",
      "roleAssignee": "urn:li:person:vQpe2J8",
      "organizationTarget": "urn:li:organization:2414183"
    },
    {
      "state": "APPROVED",
      "role": "ADMINISTRATOR",
      "roleAssignee": "urn:li:person:J2foLx4",
      "organizationTarget": "urn:li:organization:2414183"
    }
  ]
}

Parameters

Field Description Format Required
role Limit results to specific roles, such as ADMINISTRATOR or DIRECT_SPONSORED_CONTENT_POSTER string No
state Limit results to specific role states, such as APPROVED or REQUESTED. string No

Using Projections

Use projections to get more information, such as the member's first and last name or the organization name. See here for more information on how projections work.

Sample Request

GET https://api.linkedin.com/rest/organizationAcls?q=roleAssignee&role=ADMINISTRATOR&projection=(elements*(*,roleAssignee~(localizedFirstName, localizedLastName), organization~(localizedName)))
GET https://api.linkedin.com/v2/organizationAcls?q=roleAssignee&role=ADMINISTRATOR&projection=(elements*(*,roleAssignee~(localizedFirstName, localizedLastName), organization~(localizedName)))

Sample Response

{
  "elements": [
    {
      "organization~": {
        "localizedName": "TestCompany"
      },
      "role": "ADMINISTRATOR",
      "roleAssignee": "urn:li:person:pE3vIq7yK6",
      "state": "APPROVED",
      "roleAssignee~": {
        "localizedLastName": "Smith",
        "localizedFirstName": "John"
      },
      "organization": "urn:li:organization:18062654"
    }
    {
      "organization~": {
        "localizedName": "TestCompanyShowcase"
      },
      "role": "ADMINISTRATOR",
      "roleAssignee": "urn:li:person:pE3vIq7yK6",
      "state": "APPROVED",
      "roleAssignee~": {
        "localizedLastName": "Smith",
        "localizedFirstName": "John"
      },
      "organization": "urn:li:organizationBrand:18085185"
    },
    {
      "organization~": {
        "localizedName": "DevTestCo \"Quote\""
      },
      "role": "ADMINISTRATOR",
      "roleAssignee": "urn:li:person:pE3vIq7yK6",
      "state": "APPROVED",
      "roleAssignee~": {
        "localizedLastName": "Smith",
        "localizedFirstName": "John"
      },
      "organization": "urn:li:organization:2414183"
    }
  ]
}

Request Direct Sponsored Content Poster Role

Request DIRECT_SPONSORED_CONTENT_POSTER role to an organization:

Sample Request

PUT https://api.linkedin.com/rest/organizationAcls/(organization:{encoded organization URN},role:DIRECT_SPONSORED_CONTENT_POSTER,roleAssignee:{person URN})
Header: X-Restli-Protocol-Version: 2.0.0
{
    "state": "REQUESTED",
    "role": "DIRECT_SPONSORED_CONTENT_POSTER",
    "roleAssignee": "urn:li:person:abCdEf",
    "organization": "urn:li:organization:2414183"
}
PUT https://api.linkedin.com/v2/organizationAcls/(organization:{encoded organization URN},role:DIRECT_SPONSORED_CONTENT_POSTER,roleAssignee:{person URN})
Header: X-Restli-Protocol-Version: 2.0.0
{
    "state": "REQUESTED",
    "role": "DIRECT_SPONSORED_CONTENT_POSTER",
    "roleAssignee": "urn:li:person:abCdEf",
    "organization": "urn:li:organization:2414183"
}

Request Body Fields

Field Description Format Required
role The role to add. Only the value DIRECT_SPONSORED_CONTENT_POSTER is supported. string Yes
state The role state to add. Only the value REQUESTED is supported. string Yes
roleAssignee The person URN of the member being added. Must be in the format urn:li:person{id}. string Yes
organization The organizational entity for which access control information is being added.
Must either be in the format urn:li:organization:{id} or urn:li:organizationBrand:{id}
string Yes

A successful response returns a 204 OK status code.