bluebeam · Capability

Bluebeam Studio API

The Bluebeam Studio API enables programmatic access to Studio Sessions for document collaboration, markup management, and PDF review workflows. OAuth 2.0 REST APIs allow third-party applications to create and manage studio sessions, retrieve markup data, and integrate document annotations into AEC construction workflows.

Run with Naftiko BluebeamAPI

What You Can Do

GET
Listsessions — List sessions
/studio/v1/sessions
POST
Createsession — Create a Studio Session
/studio/v1/sessions
GET
Getsession — Get session by ID
/studio/v1/sessions/{sessionId}
PATCH
Updatesession — Update session
/studio/v1/sessions/{sessionId}
POST
Finishsession — Finish/close a session
/studio/v1/sessions/{sessionId}/finish
GET
Listsessiondocuments — List session documents
/studio/v1/sessions/{sessionId}/documents
POST
Uploadsessiondocument — Upload document to session
/studio/v1/sessions/{sessionId}/documents
GET
Getdocumentmarkups — Get document markups
/studio/v1/sessions/{sessionId}/documents/{documentId}/markups
GET
Listsessionusers — List session users/attendees
/studio/v1/sessions/{sessionId}/users
POST
Invitesessionuser — Invite user to session
/studio/v1/sessions/{sessionId}/users

MCP Tools

listsessions

List sessions

read-only idempotent
createsession

Create a Studio Session

getsession

Get session by ID

read-only idempotent
updatesession

Update session

finishsession

Finish/close a session

listsessiondocuments

List session documents

read-only idempotent
uploadsessiondocument

Upload document to session

getdocumentmarkups

Get document markups

read-only idempotent
listsessionusers

List session users/attendees

read-only idempotent
invitesessionuser

Invite user to session

Capability Spec

bluebeam-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Bluebeam Studio API
  description: The Bluebeam Studio API enables programmatic access to Studio Sessions for document collaboration, markup management,
    and PDF review workflows. OAuth 2.0 REST APIs allow third-party applications to create and manage studio sessions, retrieve
    markup data, and integrate document annotations into AEC construction workflows.
  tags:
  - Bluebeam
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: bluebeam
    baseUri: https://api.bluebeam.com
    description: Bluebeam Studio API HTTP API.
    authentication:
      type: bearer
      token: '{{BLUEBEAM_TOKEN}}'
    resources:
    - name: studio-v1-sessions
      path: /studio/v1/sessions
      operations:
      - name: listsessions
        method: GET
        description: List sessions
        inputParameters:
        - name: status
          in: query
          type: string
          description: Filter by session status
        - name: limit
          in: query
          type: integer
        - name: offset
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createsession
        method: POST
        description: Create a Studio Session
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: studio-v1-sessions-sessionid
      path: /studio/v1/sessions/{sessionId}
      operations:
      - name: getsession
        method: GET
        description: Get session by ID
        inputParameters:
        - name: sessionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatesession
        method: PATCH
        description: Update session
        inputParameters:
        - name: sessionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: studio-v1-sessions-sessionid-finish
      path: /studio/v1/sessions/{sessionId}/finish
      operations:
      - name: finishsession
        method: POST
        description: Finish/close a session
        inputParameters:
        - name: sessionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: studio-v1-sessions-sessionid-documents
      path: /studio/v1/sessions/{sessionId}/documents
      operations:
      - name: listsessiondocuments
        method: GET
        description: List session documents
        inputParameters:
        - name: sessionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: uploadsessiondocument
        method: POST
        description: Upload document to session
        inputParameters:
        - name: sessionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: studio-v1-sessions-sessionid-documents-documenti
      path: /studio/v1/sessions/{sessionId}/documents/{documentId}/markups
      operations:
      - name: getdocumentmarkups
        method: GET
        description: Get document markups
        inputParameters:
        - name: sessionId
          in: path
          type: string
          required: true
        - name: documentId
          in: path
          type: string
          required: true
        - name: pageNumber
          in: query
          type: integer
          description: Filter markups by page number
        - name: markupType
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: studio-v1-sessions-sessionid-users
      path: /studio/v1/sessions/{sessionId}/users
      operations:
      - name: listsessionusers
        method: GET
        description: List session users/attendees
        inputParameters:
        - name: sessionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: invitesessionuser
        method: POST
        description: Invite user to session
        inputParameters:
        - name: sessionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: bluebeam-rest
    description: REST adapter for Bluebeam Studio API.
    resources:
    - path: /studio/v1/sessions
      name: listsessions
      operations:
      - method: GET
        name: listsessions
        description: List sessions
        call: bluebeam.listsessions
        outputParameters:
        - type: object
          mapping: $.
    - path: /studio/v1/sessions
      name: createsession
      operations:
      - method: POST
        name: createsession
        description: Create a Studio Session
        call: bluebeam.createsession
        outputParameters:
        - type: object
          mapping: $.
    - path: /studio/v1/sessions/{sessionId}
      name: getsession
      operations:
      - method: GET
        name: getsession
        description: Get session by ID
        call: bluebeam.getsession
        with:
          sessionId: rest.sessionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /studio/v1/sessions/{sessionId}
      name: updatesession
      operations:
      - method: PATCH
        name: updatesession
        description: Update session
        call: bluebeam.updatesession
        with:
          sessionId: rest.sessionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /studio/v1/sessions/{sessionId}/finish
      name: finishsession
      operations:
      - method: POST
        name: finishsession
        description: Finish/close a session
        call: bluebeam.finishsession
        with:
          sessionId: rest.sessionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /studio/v1/sessions/{sessionId}/documents
      name: listsessiondocuments
      operations:
      - method: GET
        name: listsessiondocuments
        description: List session documents
        call: bluebeam.listsessiondocuments
        with:
          sessionId: rest.sessionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /studio/v1/sessions/{sessionId}/documents
      name: uploadsessiondocument
      operations:
      - method: POST
        name: uploadsessiondocument
        description: Upload document to session
        call: bluebeam.uploadsessiondocument
        with:
          sessionId: rest.sessionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /studio/v1/sessions/{sessionId}/documents/{documentId}/markups
      name: getdocumentmarkups
      operations:
      - method: GET
        name: getdocumentmarkups
        description: Get document markups
        call: bluebeam.getdocumentmarkups
        with:
          sessionId: rest.sessionId
          documentId: rest.documentId
        outputParameters:
        - type: object
          mapping: $.
    - path: /studio/v1/sessions/{sessionId}/users
      name: listsessionusers
      operations:
      - method: GET
        name: listsessionusers
        description: List session users/attendees
        call: bluebeam.listsessionusers
        with:
          sessionId: rest.sessionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /studio/v1/sessions/{sessionId}/users
      name: invitesessionuser
      operations:
      - method: POST
        name: invitesessionuser
        description: Invite user to session
        call: bluebeam.invitesessionuser
        with:
          sessionId: rest.sessionId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: bluebeam-mcp
    transport: http
    description: MCP adapter for Bluebeam Studio API for AI agent use.
    tools:
    - name: listsessions
      description: List sessions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluebeam.listsessions
      with:
        status: tools.status
        limit: tools.limit
        offset: tools.offset
      inputParameters:
      - name: status
        type: string
        description: Filter by session status
      - name: limit
        type: integer
        description: limit
      - name: offset
        type: integer
        description: offset
      outputParameters:
      - type: object
        mapping: $.
    - name: createsession
      description: Create a Studio Session
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: bluebeam.createsession
      outputParameters:
      - type: object
        mapping: $.
    - name: getsession
      description: Get session by ID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluebeam.getsession
      with:
        sessionId: tools.sessionId
      inputParameters:
      - name: sessionId
        type: string
        description: sessionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updatesession
      description: Update session
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: bluebeam.updatesession
      with:
        sessionId: tools.sessionId
      inputParameters:
      - name: sessionId
        type: string
        description: sessionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: finishsession
      description: Finish/close a session
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: bluebeam.finishsession
      with:
        sessionId: tools.sessionId
      inputParameters:
      - name: sessionId
        type: string
        description: sessionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listsessiondocuments
      description: List session documents
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluebeam.listsessiondocuments
      with:
        sessionId: tools.sessionId
      inputParameters:
      - name: sessionId
        type: string
        description: sessionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: uploadsessiondocument
      description: Upload document to session
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: bluebeam.uploadsessiondocument
      with:
        sessionId: tools.sessionId
      inputParameters:
      - name: sessionId
        type: string
        description: sessionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getdocumentmarkups
      description: Get document markups
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluebeam.getdocumentmarkups
      with:
        sessionId: tools.sessionId
        documentId: tools.documentId
        pageNumber: tools.pageNumber
        markupType: tools.markupType
      inputParameters:
      - name: sessionId
        type: string
        description: sessionId
        required: true
      - name: documentId
        type: string
        description: documentId
        required: true
      - name: pageNumber
        type: integer
        description: Filter markups by page number
      - name: markupType
        type: string
        description: markupType
      outputParameters:
      - type: object
        mapping: $.
    - name: listsessionusers
      description: List session users/attendees
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluebeam.listsessionusers
      with:
        sessionId: tools.sessionId
      inputParameters:
      - name: sessionId
        type: string
        description: sessionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: invitesessionuser
      description: Invite user to session
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: bluebeam.invitesessionuser
      with:
        sessionId: tools.sessionId
      inputParameters:
      - name: sessionId
        type: string
        description: sessionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    BLUEBEAM_TOKEN: BLUEBEAM_TOKEN