OpenAPI Specification
openapi: 3.1.0
info:
title: Bluebeam Studio Documents Sessions 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.
version: 1.0.0
contact:
name: Bluebeam Developer Portal
url: https://developers.bluebeam.com/
servers:
- url: https://api.bluebeam.com
description: Bluebeam Studio API
security:
- oauth2: []
tags:
- name: Sessions
description: Studio Session management
paths:
/studio/v1/sessions:
get:
operationId: listSessions
summary: List sessions
description: Retrieve a list of Studio Sessions the authenticated user has access to.
tags:
- Sessions
parameters:
- name: status
in: query
description: Filter by session status
schema:
type: string
enum:
- Active
- Finished
- Pending
- name: limit
in: query
schema:
type: integer
default: 25
- name: offset
in: query
schema:
type: integer
default: 0
responses:
'200':
description: List of sessions
content:
application/json:
schema:
$ref: '#/components/schemas/SessionList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createSession
summary: Create a Studio Session
description: Create a new Bluebeam Studio Session for collaborative document review and markup. Sessions can be configured with attendees, invitation settings, and file upload permissions.
tags:
- Sessions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SessionRequest'
responses:
'201':
description: Session created
content:
application/json:
schema:
$ref: '#/components/schemas/Session'
'400':
$ref: '#/components/responses/BadRequest'
/studio/v1/sessions/{sessionId}:
get:
operationId: getSession
summary: Get session by ID
description: Retrieve full details for a specific Studio Session.
tags:
- Sessions
parameters:
- name: sessionId
in: path
required: true
schema:
type: string
responses:
'200':
description: Session details
content:
application/json:
schema:
$ref: '#/components/schemas/Session'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateSession
summary: Update session
description: Update session settings such as name, status, or invitation permissions.
tags:
- Sessions
parameters:
- name: sessionId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SessionUpdate'
responses:
'200':
description: Session updated
content:
application/json:
schema:
$ref: '#/components/schemas/Session'
/studio/v1/sessions/{sessionId}/finish:
post:
operationId: finishSession
summary: Finish/close a session
description: Close a Studio Session, preventing further markups from attendees.
tags:
- Sessions
parameters:
- name: sessionId
in: path
required: true
schema:
type: string
responses:
'200':
description: Session finished
content:
application/json:
schema:
$ref: '#/components/schemas/Session'
components:
schemas:
SessionRequest:
type: object
required:
- name
properties:
name:
type: string
description:
type: string
defaultPermission:
type: string
enum:
- ReadOnly
- MarkupOnly
- FullAccess
default: MarkupOnly
allowInvitations:
type: boolean
default: true
restricted:
type: boolean
default: false
invitees:
type: array
items:
type: object
properties:
email:
type: string
format: email
permission:
type: string
enum:
- ReadOnly
- MarkupOnly
- FullAccess
SessionUpdate:
type: object
properties:
name:
type: string
description:
type: string
defaultPermission:
type: string
enum:
- ReadOnly
- MarkupOnly
- FullAccess
allowInvitations:
type: boolean
Session:
type: object
properties:
id:
type: string
description: Studio Session ID
name:
type: string
description:
type: string
status:
type: string
enum:
- Active
- Finished
- Pending
inviteUrl:
type: string
format: uri
description: URL for users to join the session
defaultPermission:
type: string
enum:
- ReadOnly
- MarkupOnly
- FullAccess
allowInvitations:
type: boolean
restricted:
type: boolean
createdBy:
type: string
createdAt:
type: string
format: date-time
finishedAt:
type: string
format: date-time
documentCount:
type: integer
userCount:
type: integer
SessionList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Session'
total:
type: integer
offset:
type: integer
Error:
type: object
properties:
code:
type: string
message:
type: string
responses:
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://authserver.bluebeam.com/auth/oauth/authorize
tokenUrl: https://authserver.bluebeam.com/auth/oauth/token
scopes:
full: Full access to Bluebeam Studio API
jobs.read: Read session data
jobs.create: Create and manage sessions