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