LinkedIn · Capability

Content APIs — Use Cases > Document Ad

Content APIs — Use Cases > Document Ad. 6 operations. Lead operation: LinkedIn Upload the Document File (select a Document File in the Body for Postman to Use). Self-contained Naftiko capability covering one Linkedin business surface.

Run with Naftiko LinkedinUse Cases > Document Ad

What You Can Do

PUT
Putuploadthedocumentfile — LinkedIn Upload the Document File (select a Document File in the Body for Postman to Use)
/v1
GET
Getgetasingledocument — LinkedIn Get a Single Document
/v1/documents/{document-asset-id}
POST
Postinitializedocumentupload — LinkedIn Initialize Document Upload
/v1/documents
POST
Postcreatedocumentcontent — LinkedIn Create Document Content
/v1/posts
GET
Getfetchmultipledocumentcontent — LinkedIn Fetch Multiple Document Content
/v1/posts
GET
Getgetmultipledocuments — LinkedIn Get Multiple Documents
/v1/images

MCP Tools

linkedin-upload-document-file-select

LinkedIn Upload the Document File (select a Document File in the Body for Postman to Use)

idempotent
linkedin-get-single-document

LinkedIn Get a Single Document

read-only idempotent
linkedin-initialize-document-upload

LinkedIn Initialize Document Upload

linkedin-create-document-content

LinkedIn Create Document Content

linkedin-fetch-multiple-document-content

LinkedIn Fetch Multiple Document Content

read-only idempotent
linkedin-get-multiple-documents

LinkedIn Get Multiple Documents

read-only idempotent

Capability Spec

marketing-content-use-cases-document-ad.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Content APIs — Use Cases > Document Ad
  description: 'Content APIs — Use Cases > Document Ad. 6 operations. Lead operation: LinkedIn Upload the Document File (select
    a Document File in the Body for Postman to Use). Self-contained Naftiko capability covering one Linkedin business surface.'
  tags:
  - Linkedin
  - Use Cases > Document Ad
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    LINKEDIN_API_KEY: LINKEDIN_API_KEY
capability:
  consumes:
  - type: http
    namespace: marketing-content-use-cases-document-ad
    baseUri: https://api.linkedin.com
    description: Content APIs — Use Cases > Document Ad business capability. Self-contained, no shared references.
    resources:
    - name: root
      path: /
      operations:
      - name: putuploadthedocumentfile
        method: PUT
        description: LinkedIn Upload the Document File (select a Document File in the Body for Postman to Use)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: documents-document_asset_id
      path: //documents/{document_asset_id}
      operations:
      - name: getgetasingledocument
        method: GET
        description: LinkedIn Get a Single Document
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: document_asset_id
          in: path
          type: string
          required: true
    - name: documents
      path: /documents
      operations:
      - name: postinitializedocumentupload
        method: POST
        description: LinkedIn Initialize Document Upload
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: action
          in: query
          type: string
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: posts
      path: /posts
      operations:
      - name: postcreatedocumentcontent
        method: POST
        description: LinkedIn Create Document Content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: getfetchmultipledocumentcontent
        method: GET
        description: LinkedIn Fetch Multiple Document Content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: ids
          in: query
          type: string
    - name: rest-images
      path: /rest/images
      operations:
      - name: getgetmultipledocuments
        method: GET
        description: LinkedIn Get Multiple Documents
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: ids
          in: query
          type: string
  exposes:
  - type: rest
    namespace: marketing-content-use-cases-document-ad-rest
    port: 8080
    description: REST adapter for Content APIs — Use Cases > Document Ad. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1
      name: root
      description: REST surface for root.
      operations:
      - method: PUT
        name: putuploadthedocumentfile
        description: LinkedIn Upload the Document File (select a Document File in the Body for Postman to Use)
        call: marketing-content-use-cases-document-ad.putuploadthedocumentfile
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/documents/{document-asset-id}
      name: documents-document-asset-id
      description: REST surface for documents-document_asset_id.
      operations:
      - method: GET
        name: getgetasingledocument
        description: LinkedIn Get a Single Document
        call: marketing-content-use-cases-document-ad.getgetasingledocument
        with:
          document_asset_id: rest.document_asset_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/documents
      name: documents
      description: REST surface for documents.
      operations:
      - method: POST
        name: postinitializedocumentupload
        description: LinkedIn Initialize Document Upload
        call: marketing-content-use-cases-document-ad.postinitializedocumentupload
        with:
          action: rest.action
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/posts
      name: posts
      description: REST surface for posts.
      operations:
      - method: POST
        name: postcreatedocumentcontent
        description: LinkedIn Create Document Content
        call: marketing-content-use-cases-document-ad.postcreatedocumentcontent
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getfetchmultipledocumentcontent
        description: LinkedIn Fetch Multiple Document Content
        call: marketing-content-use-cases-document-ad.getfetchmultipledocumentcontent
        with:
          ids: rest.ids
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/images
      name: rest-images
      description: REST surface for rest-images.
      operations:
      - method: GET
        name: getgetmultipledocuments
        description: LinkedIn Get Multiple Documents
        call: marketing-content-use-cases-document-ad.getgetmultipledocuments
        with:
          ids: rest.ids
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: marketing-content-use-cases-document-ad-mcp
    port: 9090
    transport: http
    description: MCP adapter for Content APIs — Use Cases > Document Ad. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: linkedin-upload-document-file-select
      description: LinkedIn Upload the Document File (select a Document File in the Body for Postman to Use)
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: marketing-content-use-cases-document-ad.putuploadthedocumentfile
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: linkedin-get-single-document
      description: LinkedIn Get a Single Document
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: marketing-content-use-cases-document-ad.getgetasingledocument
      with:
        document_asset_id: tools.document_asset_id
      outputParameters:
      - type: object
        mapping: $.
    - name: linkedin-initialize-document-upload
      description: LinkedIn Initialize Document Upload
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: marketing-content-use-cases-document-ad.postinitializedocumentupload
      with:
        action: tools.action
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: linkedin-create-document-content
      description: LinkedIn Create Document Content
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: marketing-content-use-cases-document-ad.postcreatedocumentcontent
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: linkedin-fetch-multiple-document-content
      description: LinkedIn Fetch Multiple Document Content
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: marketing-content-use-cases-document-ad.getfetchmultipledocumentcontent
      with:
        ids: tools.ids
      outputParameters:
      - type: object
        mapping: $.
    - name: linkedin-get-multiple-documents
      description: LinkedIn Get Multiple Documents
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: marketing-content-use-cases-document-ad.getgetmultipledocuments
      with:
        ids: tools.ids
      outputParameters:
      - type: object
        mapping: $.