> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upsolve.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Set Draft Default View

> Set the workspace draft's default view. Pass a canvasId to open that canvas for everyone who opens the workspace, or null to open the AI chat. The canvas must belong to this workspace and be shared with the whole workspace, or the call is refused with DEFAULT_VIEW_CANVAS_NOT_SHARED. Saved to the draft: end users get it once the draft is published to production, and the Playground shows it on the draft.



## OpenAPI

````yaml put /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/default-view
openapi: 3.1.0
info:
  title: Upsolve API
  version: 1.5.0
servers:
  - url: https://api.upsolve.ai
security: []
tags: []
paths:
  /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/default-view:
    put:
      summary: Set the workspace draft's default view. Pass a ca…
      description: >-
        Set the workspace draft's default view. Pass a canvasId to open that
        canvas for everyone who opens the workspace, or null to open the AI
        chat. The canvas must belong to this workspace and be shared with the
        whole workspace, or the call is refused with
        DEFAULT_VIEW_CANVAS_NOT_SHARED. Saved to the draft: end users get it
        once the draft is published to production, and the Playground shows it
        on the draft.
      operationId: PutV2ApiProjectsProjectIdWorkspacesWorkspaceIdDraftDefaultView
      parameters:
        - name: projectId
          in: path
          required: true
          description: The project the workspace belongs to.
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
            description: The project the workspace belongs to.
        - name: workspaceId
          in: path
          required: true
          description: The workspace (data model) id.
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
            description: The workspace (data model) id.
      requestBody:
        description: >-
          PUT
          /v2/api/projects/:projectId/workspaces/:workspaceId/draft/default-view
          Request body
        content:
          application/json:
            schema:
              type: object
              properties:
                apiKey:
                  type: string
                  minLength: 1
                  description: >-
                    Upsolve API key, generated under Account → Developer
                    settings in the Upsolve Hub. Keys are user-scoped: pass
                    organizationId alongside the key to select which org to act
                    on.
                  examples:
                    - up_embed_************
                organizationId:
                  description: >-
                    Your Upsolve organization's UUID — the org that owns the API
                    key and project. This is NOT a project organization: do not
                    pass a value registered via /projects/register-organization,
                    and do not pass an `externalId` (only
                    `projectOrganizationId` accepts those). Omit it when using
                    an org-bound API key — the org is read from the key and any
                    value sent here is ignored. Required only for user-scoped
                    API keys (created under Account → Developer settings) and
                    for the Supabase JWT path, where the org is ambiguous and
                    membership is verified against it.
                  examples:
                    - 123e4567-e89b-12d3-a456-426614174000
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
                canvasId:
                  type:
                    - string
                    - 'null'
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
                lockVersion:
                  description: >-
                    The lockVersion the default view was read at; a stale value
                    yields 412. Omit it only when the draft has never set a
                    default view.
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
              required:
                - canvasId
            examples:
              example1:
                value:
                  apiKey: up_embed_************
                  organizationId: 123e4567-e89b-12d3-a456-426614174000
        required: true
      responses:
        '200':
          description: >-
            PUT
            /v2/api/projects/:projectId/workspaces/:workspaceId/draft/default-view
            Positive response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: success
                  data:
                    type: object
                    properties:
                      canvasId:
                        type:
                          - string
                          - 'null'
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
                      canvas:
                        type:
                          - object
                          - 'null'
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
                            description: The canvas's id.
                          name:
                            type: string
                            description: The canvas's name.
                          visibility:
                            type: string
                            description: >-
                              Who the canvas is shared with. Only a canvas
                              shared with the whole workspace (`workspace`) is
                              opened for people; any other value means the view
                              falls back to the AI chat.
                        required:
                          - id
                          - name
                          - visibility
                        additionalProperties: false
                      lockVersion:
                        type:
                          - number
                          - 'null'
                    required:
                      - canvasId
                      - canvas
                      - lockVersion
                    additionalProperties: false
                required:
                  - status
                  - data
                additionalProperties: false
        '400':
          description: >-
            PUT
            /v2/api/projects/:projectId/workspaces/:workspaceId/draft/default-view
            Negative response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: error
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                      code:
                        type: string
                      details:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                    required:
                      - message
                    additionalProperties: false
                required:
                  - status
                  - error
                additionalProperties: false
      security:
        - APIKEY_1: []
components:
  securitySchemes:
    APIKEY_1:
      type: apiKey
      in: query
      name: apiKey
      x-in-actual: body
      description: apiKey MUST be supplied within the request body instead of query

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.