LinkedIn User Access API

APIs to manage ad account user access and roles

Operations 6

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

PUT /adAccountUsers/(account:urn:li:sponsoredAccount:{SponsoredAccountId},user:urn:li:person:{PersonId}) Grant a member access to an ad account · LinkedIn Create Ad Account User #
Ask an LLM
“Can I give a colleague access to my ad account with a chosen role?”
“Which role do I need to specify when adding someone to an ad account?”
Tell an agent
Grant person {PersonId} the {role} role on ad account {SponsoredAccountId}.
Add member {user} to account {account} as {role}.
GET /adAccountUsers/(account:urn:li:sponsoredAccount:{SponsoredAccountId},user:urn:li:person:{PersonId}) Fetch a member's access on an ad account · LinkedIn Fetch Ad Account User #
Ask an LLM
“What role does a specific person have on one ad account?”
“Can I look up a single ad account user by account and member?”
Tell an agent
Fetch the access of person {PersonId} on ad account {SponsoredAccountId}.
Show which role member {PersonId} holds on account {SponsoredAccountId}.
POST /adAccountUsers/(account:urn:li:sponsoredAccount:{SponsoredAccountId},user:urn:li:person:{PersonId}) Change a member's role on an ad account · LinkedIn Update Ad Account User #
Ask an LLM
“Can I change someone's existing role on an ad account?”
“Is it possible to promote an ad account viewer to campaign manager?”
Tell an agent
Change the role of person {PersonId} on account {SponsoredAccountId}.
Apply patch {patch} to member {PersonId} on ad account {SponsoredAccountId}.
DELETE /adAccountUsers/(account:urn:li:sponsoredAccount:{SponsoredAccountId},user:urn:li:person:{PersonId}) Remove a member from an ad account · LinkedIn Delete Ad Account User #
Ask an LLM
“Can I revoke a person's access to my ad account?”
“What happens when I remove a user from an ad account?”
Tell an agent destructive · confirm first
Remove person {PersonId} from ad account {SponsoredAccountId}.
Revoke member {PersonId}'s access to account {SponsoredAccountId}.
GET /adAccountUsers List ad accounts the current user can access · LinkedIn Fetch Authenticated User Ad Accounts #
Ask an LLM
“Which ad accounts do I personally have access to?”
“Can I see every ad account my token's member belongs to?”
Tell an agent
List all ad accounts I have access to using API version {version}.
Show the ad accounts the authenticated member is a user on.
GET /organizationAcls List the current user's organization roles · LinkedIn Fetch Authenticated User Organization Roles #
Ask an LLM
“Which company pages am I an administrator of?”
“Can I retrieve my own roles across organizations on LinkedIn?”
Tell an agent
List my organization roles using API version {version}.
Show which organizations the authenticated user manages.

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

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/linkedin:linkedin-user-access-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

linkedin-user-access-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LinkedIn Marketing Campaign Management User Access API
  description: 'Campaign Manager is LinkedIn''s online tool for creating and managing ad accounts and campaigns. This API provides capabilities for account management, campaign group management, campaign management, creative management, ad targeting, and forecasting.

    You must apply for access to the Marketing Developer Platform to use these APIs.'
  version: 1.0.0
  contact:
    name: LinkedIn Marketing API Support
    url: https://developer.linkedin.com/product-catalog/marketing/campaign-management
servers:
- url: https://api.linkedin.com/rest
  description: LinkedIn REST API Server
security:
- OAuth2Auth:
  - rw_ads
tags:
- name: User Access
  description: APIs to manage ad account user access and roles
paths:
  /adAccountUsers/(account:urn:li:sponsoredAccount:{SponsoredAccountId},user:urn:li:person:{PersonId}):
    put:
      tags:
      - User Access
      summary: LinkedIn Create Ad Account User
      description: Grant a member access to an ad account with a specified role.
      operationId: createAdAccountUser
      x-microcks-operation:
        dispatcher: FALLBACK
        dispatcherRules: ''
      parameters:
      - name: LinkedIn-Version
        in: header
        required: true
        schema:
          type: string
        example: '202401'
      - name: X-Restli-Protocol-Version
        in: header
        required: true
        schema:
          type: string
        example: 2.0.0
      - name: SponsoredAccountId
        in: path
        required: true
        schema:
          type: string
        example: '123456'
      - name: PersonId
        in: path
        required: true
        schema:
          type: string
        example: ABC123def
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdAccountUserCreateRequest'
            examples:
              CreateUser:
                $ref: '#/components/examples/AdAccountUserCreateExample'
      responses:
        '201':
          description: Ad account user created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdAccountUser'
              examples:
                SuccessResponse:
                  value:
                    account: urn:li:sponsoredAccount:123456
                    role: VIEWER
                    user: urn:li:person:ABC123def
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    get:
      tags:
      - User Access
      summary: LinkedIn Fetch Ad Account User
      description: Retrieve an ad account user by account and user identifiers.
      operationId: getAdAccountUser
      x-microcks-operation:
        dispatcher: FALLBACK
        dispatcherRules: ''
      parameters:
      - name: LinkedIn-Version
        in: header
        required: true
        schema:
          type: string
        example: '202401'
      - name: X-Restli-Protocol-Version
        in: header
        required: true
        schema:
          type: string
        example: 2.0.0
      - name: SponsoredAccountId
        in: path
        required: true
        schema:
          type: string
        example: '123456'
      - name: PersonId
        in: path
        required: true
        schema:
          type: string
        example: ABC123def
      responses:
        '200':
          description: Ad account user retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdAccountUser'
              examples:
                SuccessResponse:
                  value:
                    account: urn:li:sponsoredAccount:123456
                    role: VIEWER
                    user: urn:li:person:ABC123def
        '404':
          description: User not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - User Access
      summary: LinkedIn Update Ad Account User
      description: Update an ad account user's role.
      operationId: updateAdAccountUser
      x-microcks-operation:
        dispatcher: FALLBACK
        dispatcherRules: ''
      parameters:
      - name: X-Restli-Protocol-Version
        in: header
        required: true
        schema:
          type: string
        example: 2.0.0
      - name: LinkedIn-Version
        in: header
        required: true
        schema:
          type: string
        example: '202401'
      - name: SponsoredAccountId
        in: path
        required: true
        schema:
          type: string
        example: '123456'
      - name: PersonId
        in: path
        required: true
        schema:
          type: string
        example: ABC123def
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdAccountUserUpdateRequest'
      responses:
        '200':
          description: Ad account user updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdAccountUser'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    delete:
      tags:
      - User Access
      summary: LinkedIn Delete Ad Account User
      description: Remove a member from ad account access.
      operationId: deleteAdAccountUser
      x-microcks-operation:
        dispatcher: FALLBACK
        dispatcherRules: ''
      parameters:
      - name: X-Restli-Protocol-Version
        in: header
        required: true
        schema:
          type: string
        example: 2.0.0
      - name: LinkedIn-Version
        in: header
        required: true
        schema:
          type: string
        example: '202401'
      - name: SponsoredAccountId
        in: path
        required: true
        schema:
          type: string
        example: '123456'
      - name: PersonId
        in: path
        required: true
        schema:
          type: string
        example: ABC123def
      responses:
        '204':
          description: Ad account user deleted successfully
        '404':
          description: User not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /adAccountUsers:
    get:
      tags:
      - User Access
      summary: LinkedIn Fetch Authenticated User Ad Accounts
      description: Retrieve all ad accounts the authenticated user has access to.
      operationId: getAuthenticatedUserAdAccounts
      x-microcks-operation:
        dispatcher: FALLBACK
        dispatcherRules: ''
      parameters:
      - name: X-Restli-Protocol-Version
        in: header
        required: true
        schema:
          type: string
        example: 2.0.0
      - name: LinkedIn-Version
        in: header
        required: true
        schema:
          type: string
        example: '202401'
      - name: q
        in: query
        required: true
        schema:
          type: string
          enum:
          - authenticatedUser
        example: authenticatedUser
      responses:
        '200':
          description: Successfully retrieved user's ad accounts
          content:
            application/json:
              schema:
                type: object
                properties:
                  elements:
                    type: array
                    items:
                      $ref: '#/components/schemas/AdAccountUser'
                  paging:
                    $ref: '#/components/schemas/Paging'
              examples:
                SuccessResponse:
                  value:
                    elements:
                    - account: urn:li:sponsoredAccount:123456
                      role: ACCOUNT_MANAGER
                      user: urn:li:person:ABC123def
                    - account: urn:li:sponsoredAccount:789012
                      role: VIEWER
                      user: urn:li:person:ABC123def
                    paging:
                      start: 0
                      count: 10
                      total: 2
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /organizationAcls:
    get:
      tags:
      - User Access
      summary: LinkedIn Fetch Authenticated User Organization Roles
      description: Retrieve organization roles for the authenticated user.
      operationId: getOrganizationAcls
      x-microcks-operation:
        dispatcher: FALLBACK
        dispatcherRules: ''
      parameters:
      - name: X-Restli-Protocol-Version
        in: header
        required: true
        schema:
          type: string
        example: 2.0.0
      - name: LinkedIn-Version
        in: header
        required: true
        schema:
          type: string
        example: '202401'
      - name: q
        in: query
        required: true
        schema:
          type: string
          enum:
          - roleAssignee
        example: roleAssignee
      responses:
        '200':
          description: Successfully retrieved organization roles
          content:
            application/json:
              schema:
                type: object
                properties:
                  elements:
                    type: array
                    items:
                      $ref: '#/components/schemas/OrganizationAcl'
                  paging:
                    $ref: '#/components/schemas/Paging'
              examples:
                SuccessResponse:
                  value:
                    elements:
                    - organization: urn:li:organization:12345678
                      role: ADMINISTRATOR
                      state: APPROVED
                    paging:
                      start: 0
                      count: 10
                      total: 1
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        status:
          type: integer
          example: 400
        message:
          type: string
          example: Invalid request parameters
        code:
          type: string
          example: INVALID_PARAMS
    AdAccountUserUpdateRequest:
      type: object
      properties:
        patch:
          type: object
          properties:
            $set:
              $ref: '#/components/schemas/AdAccountUser'
    OrganizationAcl:
      type: object
      properties:
        organization:
          type: string
          description: Organization URN
          example: urn:li:organization:12345678
        role:
          type: string
          enum:
          - ADMINISTRATOR
          - DIRECT_SPONSORED_CONTENT_POSTER
          - RECRUITING_POSTER
          - LEAD_GEN_FORMS_MANAGER
          description: Role in the organization
          example: ADMINISTRATOR
        state:
          type: string
          enum:
          - APPROVED
          - REVOKED
          - REQUESTED
          description: State of the role assignment
          example: APPROVED
    Paging:
      type: object
      properties:
        start:
          type: integer
          example: 0
        count:
          type: integer
          example: 10
        total:
          type: integer
          example: 100
        links:
          type: array
          items:
            type: string
    AdAccountUserCreateRequest:
      type: object
      properties:
        account:
          type: string
          description: URN of the sponsored account
          example: urn:li:sponsoredAccount:123456
        user:
          type: string
          description: URN of the person
          example: urn:li:person:ABC123def
        role:
          type: string
          enum:
          - ACCOUNT_BILLING_ADMIN
          - ACCOUNT_MANAGER
          - CAMPAIGN_MANAGER
          - CREATIVE_MANAGER
          - VIEWER
          description: Role to assign
          example: VIEWER
      required:
      - account
      - user
      - role
    AdAccountUser:
      type: object
      properties:
        account:
          type: string
          description: URN of the sponsored account
          example: urn:li:sponsoredAccount:123456
        user:
          type: string
          description: URN of the person
          example: urn:li:person:ABC123def
        role:
          type: string
          enum:
          - ACCOUNT_BILLING_ADMIN
          - ACCOUNT_MANAGER
          - CAMPAIGN_MANAGER
          - CREATIVE_MANAGER
          - VIEWER
          description: Role of the user in the account
          example: VIEWER
      required:
      - account
      - user
      - role
  examples:
    AdAccountUserCreateExample:
      summary: Create ad account user
      value:
        account: urn:li:sponsoredAccount:123456
        role: VIEWER
        user: urn:li:person:ABC123def
  securitySchemes:
    OAuth2Auth:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://www.linkedin.com/oauth/v2/authorization
          tokenUrl: https://www.linkedin.com/oauth/v2/accessToken
          scopes:
            rw_ads: Read and write advertising data
            r_ads: Read advertising data