> ## 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.

# List Canvases

> List canvases



## OpenAPI

````yaml get /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases
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}/canvases:
    get:
      summary: List canvases
      description: List canvases
      operationId: GetV2ApiProjectsProjectIdWorkspacesWorkspaceIdCanvases
      parameters:
        - name: apiKey
          in: query
          required: false
          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.
          schema:
            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.
            type: string
            minLength: 1
        - name: organizationId
          in: query
          required: false
          description: >-
            The ID of the organization. Required when using Supabase JWT
            authentication.
          schema:
            type: string
            description: >-
              The ID of the organization. Required when using Supabase JWT
              authentication.
        - name: connectionId
          in: query
          required: false
          description: The ID of the connection a guest has access to
          schema:
            type: string
            description: The ID of the connection a guest has access to
        - name: projectId
          in: path
          required: true
          description: The project in the URL. The caller's project user is read from it.
          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 in the URL. The caller's project user is read from it.
        - name: workspaceId
          in: path
          required: true
          description: >-
            GET /v2/api/projects/:projectId/workspaces/:workspaceId/canvases
            Parameter
          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})$
        - name: forProjectUserId
          in: query
          required: false
          description: >-
            GET /v2/api/projects/:projectId/workspaces/:workspaceId/canvases
            Parameter
          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})$
      responses:
        '200':
          description: >-
            GET /v2/api/projects/:projectId/workspaces/:workspaceId/canvases
            Positive response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: success
                  data:
                    type: object
                    properties:
                      canvases:
                        type: array
                        items:
                          type: object
                          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})$
                            organization_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})$
                            name:
                              type: string
                            visibility:
                              type: string
                            created_by_project_user_id:
                              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})$
                            has_link:
                              description: >-
                                Whether the caller has their own link to this
                                canvas (`…/canvases/:canvasId/link`).
                              type: boolean
                            has_design_file:
                              description: >-
                                Whether the canvas has a design file: when true
                                it is drawn from that file rather than as a
                                plain grid.
                              type: boolean
                            design_rev:
                              description: >-
                                The design file's revision; 0 when it was never
                                written.
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            created_at: {}
                            updated_at: {}
                            workspace_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})$
                            is_starred:
                              type: boolean
                              description: >-
                                Whether the caller starred (favorited) this
                                canvas, which pins it to the top of their canvas
                                list. Personal to the caller; unrelated to
                                saved-chart favorites.
                            url:
                              type:
                                - string
                                - 'null'
                            role:
                              type: string
                              enum:
                                - viewer
                                - editor
                                - owner
                              description: >-
                                Your role on this canvas: owner (everything,
                                including sharing and deleting it), editor
                                (change it and save it), or viewer (read it, or
                                make a copy of your own).
                            live_only:
                              type: boolean
                              description: >-
                                True when you can open this canvas only because
                                it is shared with the whole workspace: it is
                                shown live, under your own access, never with
                                its owner's saved results.
                          required:
                            - id
                            - organization_id
                            - name
                            - created_at
                            - updated_at
                            - workspace_id
                            - is_starred
                            - url
                            - role
                            - live_only
                          additionalProperties: false
                    required:
                      - canvases
                    additionalProperties: false
                required:
                  - status
                  - data
                additionalProperties: false
        '400':
          description: >-
            GET /v2/api/projects/:projectId/workspaces/:workspaceId/canvases
            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_3: []
components:
  securitySchemes:
    APIKEY_3:
      type: apiKey
      in: header
      name: authorization

````

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