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