LinkedIn Access Control API

Manage entity ACLs and assignees

Documentation

📖
Documentation
https://learn.microsoft.com/en-us/linkedin/marketing/
📖
GettingStarted
https://learn.microsoft.com/en-us/linkedin/marketing/getting-started
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/learning/
📖
GettingStarted
https://learn.microsoft.com/en-us/linkedin/learning/getting-started
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/learning/getting-started/terminology
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/learning/integrations/xapi
📖
APIReference
https://learn.microsoft.com/en-us/linkedin/learning/reporting/reporting-docs/reporting-api
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/talent/
📖
GettingStarted
https://learn.microsoft.com/en-us/linkedin/talent/getting-started
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/talent/versioning
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/compliance/
📖
GettingStarted
https://learn.microsoft.com/en-us/linkedin/compliance/getting-started
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/compliance/compliance-api/overview
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/sales/
📖
APIReference
https://learn.microsoft.com/en-us/linkedin/sales/display-services/
📖
APIReference
https://learn.microsoft.com/en-us/linkedin/sales/analytics-services/
📖
APIReference
https://learn.microsoft.com/en-us/linkedin/sales/sync-services/
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/dma/
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/dma/member-data-portability/
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/dma/pages-data-portability-overview
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/dma/transparency/advertiser-transparency

Specifications

Other Resources

OpenAPI Specification

linkedin-access-control-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: LinkedIn Compliance Events Access Control API
  description: LinkedIn provides Compliance API Guides for monitoring, archiving, and management of communications for enterprises in regulated industries. The Compliance Events API allows applications to archive all LinkedIn activities from the past 30 days of a regulated, authenticated member.
  version: 1.0.0
  contact:
    name: LinkedIn API Support
    url: https://docs.microsoft.com/en-us/linkedin/compliance/
servers:
- url: https://api.linkedin.com
  description: LinkedIn Production API Server
security:
- OAuth2Auth:
  - r_compliance
tags:
- name: Access Control
  description: Manage entity ACLs and assignees
paths:
  /v2/atsEntityAcls:
    put:
      operationId: upsertEntityAcl
      tags:
      - Access Control
      summary: LinkedIn Upsert Entity ACL
      description: 'Creates or updates entity ACLs that control visibility of synced entities within LinkedIn products.

        For more information, refer to the [Sync ACLs documentation](https://docs.microsoft.com/en-us/linkedin/talent/middleware-platform/sync-acls#sync-entity-acls).'
      x-microcks-operation:
        dispatcher: FALLBACK
        dispatcherRules: "{\n  \"dispatcher\": \"FALLBACK\",\n  \"dispatcherRules\": \"\"\n}\n"
        delay: 100
      parameters:
      - $ref: '#/components/parameters/RestliMethodHeader'
      - $ref: '#/components/parameters/ContentTypeHeader'
      - name: ids[0].atsEntityAclId
        in: query
        required: true
        schema:
          type: string
        example: ACL-001
      - name: ids[0].dataProvider
        in: query
        required: true
        schema:
          type: string
        example: ATS
      - name: ids[0].integrationContext
        in: query
        required: true
        schema:
          type: string
        example: urn:li:organization:12345
      - name: ids[0].atsEntityType
        in: query
        required: true
        schema:
          type: string
          enum:
          - JOB_POSTING
          - CANDIDATE
        example: JOB_POSTING
      - name: ids[0].atsEntityId
        in: query
        required: true
        schema:
          type: string
        example: JOB-2024-001
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityAclRequest'
      responses:
        '200':
          description: Successfully upserted entity ACL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
              examples:
                SuccessResponse:
                  $ref: '#/components/examples/SuccessResponseExample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    get:
      operationId: getEntityAcl
      tags:
      - Access Control
      summary: LinkedIn Retrieve Entity ACL
      description: 'Retrieves details of previously synced entity ACLs.

        For more information, refer to the [Retrieve Entity ACLs documentation](https://docs.microsoft.com/en-us/linkedin/talent/middleware-platform/sync-acls#retrieve-entity-acls).'
      x-microcks-operation:
        dispatcher: FALLBACK
        dispatcherRules: "{\n  \"dispatcher\": \"FALLBACK\",\n  \"dispatcherRules\": \"\"\n}\n"
        delay: 100
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
        example: criteria
      - name: atsEntityId
        in: query
        required: true
        schema:
          type: string
        example: JOB-2024-001
      - name: atsEntityType
        in: query
        required: true
        schema:
          type: string
        example: JOB_POSTING
      - name: dataProvider
        in: query
        required: true
        schema:
          type: string
        example: ATS
      - name: integrationContext
        in: query
        required: true
        schema:
          type: string
        example: urn:li:organization:12345
      - name: start
        in: query
        required: false
        schema:
          type: integer
        example: 0
      - name: count
        in: query
        required: false
        schema:
          type: integer
        example: 100
      responses:
        '200':
          description: Successfully retrieved entity ACL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '404':
          description: ACL not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    delete:
      operationId: deleteEntityAcl
      tags:
      - Access Control
      summary: LinkedIn Delete Entity ACL
      description: 'Deletes previously synced entity ACLs.

        For more information, refer to the [Delete Entity ACLs documentation](https://docs.microsoft.com/en-us/linkedin/talent/middleware-platform/sync-acls#delete-entity-acls).'
      x-microcks-operation:
        dispatcher: FALLBACK
        dispatcherRules: "{\n  \"dispatcher\": \"FALLBACK\",\n  \"dispatcherRules\": \"\"\n}\n"
        delay: 100
      parameters:
      - name: ids[0].atsEntityAclId
        in: query
        required: true
        schema:
          type: string
        example: ACL-001
      - name: ids[0].dataProvider
        in: query
        required: true
        schema:
          type: string
        example: ATS
      - name: ids[0].integrationContext
        in: query
        required: true
        schema:
          type: string
        example: urn:li:organization:12345
      - name: ids[0].atsEntityId
        in: query
        required: true
        schema:
          type: string
        example: JOB-2024-001
      - name: ids[0].atsEntityType
        in: query
        required: true
        schema:
          type: string
        example: JOB_POSTING
      responses:
        '200':
          description: Successfully deleted entity ACL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '404':
          description: ACL not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    EntityAclRequest:
      type: object
      description: Request for upserting entity ACLs
      properties:
        entities:
          type: object
    ErrorResponse:
      type: object
      properties:
        status:
          type: integer
          example: 400
        message:
          type: string
          example: Invalid request parameters
        serviceErrorCode:
          type: integer
          example: 100
    SuccessResponse:
      type: object
      properties:
        status:
          type: string
          example: SUCCESS
  examples:
    SuccessResponseExample:
      summary: Successful operation response
      value:
        status: SUCCESS
  parameters:
    ContentTypeHeader:
      name: Content-Type
      in: header
      required: true
      description: Content type of request body
      schema:
        type: string
      example: application/json
    RestliMethodHeader:
      name: x-restli-method
      in: header
      required: true
      description: Rest.li method type
      schema:
        type: string
        enum:
        - batch_update
        - batch_partial_update
        - batch_create
      example: batch_update
  securitySchemes:
    OAuth2Auth:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://www.linkedin.com/oauth/v2/authorization
          tokenUrl: https://www.linkedin.com/oauth/v2/accessToken
          scopes:
            r_compliance: Read compliance data