Microsoft LinkedIn AdCampaigns API

Manage campaigns

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/microsoft-linkedin-adcampaigns-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 email required.

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

OpenAPI Specification

microsoft-linkedin-adcampaigns-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: LinkedIn Marketing AdAccounts AdCampaigns API
  description: 'REST API for managing LinkedIn advertising - ad accounts, ad account

    users, ad campaign groups, ad campaigns, and ad creatives. The

    versioned API requires the Linkedin-Version header (YYYYMM format)

    and the X-Restli-Protocol-Version: 2.0.0 header for most endpoints.

    Authentication uses an OAuth 2.0 bearer token with scopes such as

    rw_ads (read/write) or r_ads (read-only).

    '
  version: '202605'
  contact:
    name: Kin Lane
    email: kin@apievangelist.com
  license:
    name: LinkedIn API Terms of Use
    url: https://www.linkedin.com/legal/l/api-terms-of-use
servers:
- url: https://api.linkedin.com
  description: LinkedIn API production
security:
- oauth2:
  - rw_ads
tags:
- name: AdCampaigns
  description: Manage campaigns
paths:
  /rest/adAccounts/{adAccountID}/adCampaigns:
    get:
      tags:
      - AdCampaigns
      summary: Search campaigns under an ad account
      operationId: adCampaigns_search
      parameters:
      - $ref: '#/components/parameters/adAccountID'
      - name: q
        in: query
        schema:
          type: string
          enum:
          - search
      - $ref: '#/components/parameters/linkedinVersion'
      - $ref: '#/components/parameters/restliProtocol'
      responses:
        '200':
          description: OK
    post:
      tags:
      - AdCampaigns
      summary: Create a campaign
      operationId: adCampaigns_create
      parameters:
      - $ref: '#/components/parameters/adAccountID'
      - $ref: '#/components/parameters/linkedinVersion'
      - $ref: '#/components/parameters/restliProtocol'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdCampaign'
      responses:
        '201':
          description: Created
  /rest/adAccounts/{adAccountID}/adCampaigns/{adCampaignID}:
    get:
      tags:
      - AdCampaigns
      summary: Get a campaign
      operationId: adCampaigns_get
      parameters:
      - $ref: '#/components/parameters/adAccountID'
      - name: adCampaignID
        in: path
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/linkedinVersion'
      - $ref: '#/components/parameters/restliProtocol'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdCampaign'
    post:
      tags:
      - AdCampaigns
      summary: Update a campaign (partial update)
      operationId: adCampaigns_update
      parameters:
      - $ref: '#/components/parameters/adAccountID'
      - name: adCampaignID
        in: path
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/linkedinVersion'
      - $ref: '#/components/parameters/restliProtocol'
      - name: X-RestLi-Method
        in: header
        schema:
          type: string
          enum:
          - PARTIAL_UPDATE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '204':
          description: No Content
components:
  parameters:
    adAccountID:
      name: adAccountID
      in: path
      required: true
      schema:
        type: string
    linkedinVersion:
      name: Linkedin-Version
      in: header
      required: true
      description: LinkedIn API version in YYYYMM format
      schema:
        type: string
        example: '202605'
    restliProtocol:
      name: X-Restli-Protocol-Version
      in: header
      required: true
      schema:
        type: string
        enum:
        - 2.0.0
  schemas:
    AdCampaign:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        account:
          type: string
          description: urn:li:sponsoredAccount:{id}
        status:
          type: string
          enum:
          - ACTIVE
          - PAUSED
          - ARCHIVED
          - COMPLETED
          - CANCELED
          - DRAFT
          - PENDING_DELETION
          - REMOVED
        type:
          type: string
          enum:
          - TEXT_AD
          - SPONSORED_UPDATES
          - SPONSORED_INMAILS
          - DYNAMIC
        costType:
          type: string
          enum:
          - CPC
          - CPM
          - CPV
        dailyBudget:
          type: object
          properties:
            amount:
              type: string
            currencyCode:
              type: string
        associatedEntity:
          type: string
          description: urn:li:organization:{id}
        audienceExpansionEnabled:
          type: boolean
        locale:
          type: object
        targetingCriteria:
          type: object
        test:
          type: boolean
  securitySchemes:
    oauth2:
      type: oauth2
      description: LinkedIn OAuth 2.0 (3-legged or 2-legged)
      flows:
        authorizationCode:
          authorizationUrl: https://www.linkedin.com/oauth/v2/authorization
          tokenUrl: https://www.linkedin.com/oauth/v2/accessToken
          scopes:
            rw_ads: Read and write LinkedIn ads data
            r_ads: Read LinkedIn ads data
            r_ads_reporting: Read LinkedIn ads reporting
            r_organization_social: Read organization social actions
            w_organization_social: Write organization social actions