openapi: 3.1.0 info: title: PandaDoc REST API Logs Workspaces API description: The PandaDoc REST API provides programmatic access to PandaDoc's document automation platform, enabling developers to create, send, track, and manage documents within their own applications. The API supports the full document lifecycle including generating documents from templates with dynamic data, collecting e-signatures, managing recipients, and tracking document status. Authentication is handled via API keys or OAuth 2.0, and a free sandbox environment is available for testing integrations before moving to production. An active Enterprise plan is required to access the production API. version: 7.18.0 contact: name: PandaDoc API Support url: https://developers.pandadoc.com/ email: api-track@pandadoc.com termsOfService: https://www.pandadoc.com/master-services-agreement/ servers: - url: https://api.pandadoc.com/public/v1 description: Production Server security: - apiKey: [] - oauth2: [] tags: - name: Workspaces description: Operations for managing organization workspaces, including listing, creating, and deactivating workspaces. paths: /workspaces: get: operationId: listWorkspaces summary: List Workspaces description: Returns a paginated list of all active workspaces in the organization. Requires organization administrator privileges. tags: - Workspaces parameters: - $ref: '#/components/parameters/QueryCount' - $ref: '#/components/parameters/QueryPage' responses: '200': description: List of workspaces. content: application/json: schema: $ref: '#/components/schemas/WorkspaceListResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' post: operationId: createWorkspace summary: Create Workspace description: Creates a new workspace in the organization. Requires organization administrator privileges. The authenticated user is automatically added as an administrator of the new workspace. tags: - Workspaces requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WorkspaceCreateRequest' responses: '201': description: Workspace created. content: application/json: schema: $ref: '#/components/schemas/Workspace' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' components: schemas: WorkspaceListResponse: type: object description: Paginated list of workspaces. properties: results: type: array description: Array of workspace records. items: $ref: '#/components/schemas/Workspace' total: type: integer description: Total number of workspaces matching the query. ErrorResponse: type: object description: Standard error response body. properties: type: type: string description: Error type identifier. detail: type: string description: Human-readable description of the error. Workspace: type: object description: A PandaDoc workspace belonging to an organization. properties: id: type: string description: Unique identifier of the workspace. name: type: string description: Display name of the workspace. owner: type: string format: email description: Email address of the workspace owner. date_created: type: string format: date-time description: Timestamp when the workspace was created. WorkspaceCreateRequest: type: object description: Request body for creating a workspace. required: - name properties: name: type: string description: Display name for the new workspace. parameters: QueryCount: name: count in: query description: Number of results to return per page. schema: type: integer format: int32 minimum: 1 maximum: 100 default: 50 QueryPage: name: page in: query description: Page number to retrieve, starting from 1. schema: type: integer format: int32 minimum: 1 default: 1 responses: Unauthorized: description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: The request was malformed or contained invalid parameters. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' TooManyRequests: description: Rate limit exceeded. Retry after the indicated delay. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Forbidden: description: The authenticated user does not have permission for this action. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' securitySchemes: apiKey: type: apiKey in: header name: Authorization description: API Key authentication. Include the key in the Authorization header as "API-Key YOUR_API_KEY". Generate keys from the PandaDoc Developer Dashboard. oauth2: type: oauth2 description: OAuth 2.0 authentication. Use the authorization code flow to obtain user-scoped access tokens. Tokens expire after approximately one year. flows: authorizationCode: authorizationUrl: https://app.pandadoc.com/oauth2/authorize tokenUrl: https://api.pandadoc.com/oauth2/access_token scopes: read: Read access to documents, templates, contacts, and workspace data. write: Write access to create and modify documents, templates, and contacts. externalDocs: description: PandaDoc API Reference url: https://developers.pandadoc.com/reference/about