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

# Restore Canvas Version

> Restore a saved version of a canvas: the canvas is made to match it (its tiles, design file, filters and time zone) and saved again as the newest version. Versions saved since stay in the history. Tiles whose chart no longer exists are left out.



## OpenAPI

````yaml post /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/versions/{version}/restore
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/{canvasId}/versions/{version}/restore:
    post:
      summary: 'Restore a saved version of a canvas: the canvas i…'
      description: >-
        Restore a saved version of a canvas: the canvas is made to match it (its
        tiles, design file, filters and time zone) and saved again as the newest
        version. Versions saved since stay in the history. Tiles whose chart no
        longer exists are left out.
      operationId: >-
        PostV2ApiProjectsProjectIdWorkspacesWorkspaceIdCanvasesCanvasIdVersionsVersionRestore
      parameters:
        - 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: >-
            POST
            /v2/api/projects/:projectId/workspaces/:workspaceId/canvases/:canvasId/versions/:version/restore
            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: canvasId
          in: path
          required: true
          description: The canvas to restore a saved version of.
          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 canvas to restore a saved version of.
        - name: version
          in: path
          required: true
          description: >-
            POST
            /v2/api/projects/:projectId/workspaces/:workspaceId/canvases/:canvasId/versions/:version/restore
            Parameter
          schema:
            exclusiveMinimum: 0
            maximum: 9007199254740991
            format: integer (preprocessed)
      requestBody:
        description: >-
          POST
          /v2/api/projects/:projectId/workspaces/:workspaceId/canvases/:canvasId/versions/:version/restore
          Request body
        content:
          application/json:
            schema:
              type: object
              properties:
                apiKey:
                  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
                organizationId:
                  type: string
                  description: >-
                    The ID of the organization. Required when using Supabase JWT
                    authentication.
                connectionId:
                  type: string
                  description: The ID of the connection a guest has access to
                created_by:
                  description: The name to record as the new version's author.
                  type:
                    - string
                    - 'null'
              required: []
      responses:
        '201':
          description: >-
            POST
            /v2/api/projects/:projectId/workspaces/:workspaceId/canvases/:canvasId/versions/:version/restore
            Positive response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: success
                  data:
                    type: object
                    properties:
                      version:
                        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})$
                          canvas_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})$
                          version:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          display_mode:
                            type: string
                            enum:
                              - live
                              - snapshot
                          created_by:
                            type:
                              - string
                              - 'null'
                          created_at: {}
                          design_file:
                            description: >-
                              The canvas's design file as it was when this
                              version was saved, or null.
                            type:
                              - string
                              - 'null'
                          items:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                favorite_id:
                                  type: string
                                x:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                'y':
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                w:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                h:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                favorite:
                                  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})$
                                    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})$
                                    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})$
                                    type:
                                      type: string
                                      enum:
                                        - sql
                                        - chart
                                        - tool
                                    name:
                                      type: string
                                    thread_id:
                                      type:
                                        - string
                                        - 'null'
                                    chart_config:
                                      type:
                                        - object
                                        - 'null'
                                      propertyNames:
                                        type: string
                                      additionalProperties: {}
                                    chart:
                                      type: object
                                      properties:
                                        v:
                                          type: number
                                          const: 3
                                      required:
                                        - v
                                      additionalProperties: {}
                                      description: >-
                                        The chart as v3 (query, shape, render):
                                        its stored v3 chart, or its chartsV2
                                        config converted
                                    connection_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})$
                                    thumbnail_url:
                                      type:
                                        - string
                                        - 'null'
                                    sql:
                                      type:
                                        - string
                                        - 'null'
                                    snapshot_data:
                                      type:
                                        - array
                                        - 'null'
                                      items:
                                        type: object
                                        propertyNames:
                                          type: string
                                        additionalProperties: {}
                                    is_archived:
                                      type: boolean
                                    copied_from_favorite_id:
                                      description: >-
                                        For a canvas tile's own chart: the saved
                                        favorite it was copied from, if any
                                      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})$
                                    tool_call:
                                      description: >-
                                        For a tool tile (type tool): the API
                                        connector operation it calls
                                        (connectorKind, connectorId, toolName,
                                        pinnedArgs)
                                      type:
                                        - object
                                        - 'null'
                                      properties:
                                        connectorKind:
                                          type: string
                                          enum:
                                            - mcp
                                            - api
                                        toolName:
                                          type: string
                                      required:
                                        - connectorKind
                                        - toolName
                                      additionalProperties: {}
                                    row_transform:
                                      description: >-
                                        For a tool tile: the BODY of the
                                        JavaScript function `transform(payload)`
                                        that turns the API's response into the
                                        tile's rows (a complete `function
                                        transform(payload) { ... }` is accepted
                                        too)
                                      type:
                                        - string
                                        - 'null'
                                    row_columns:
                                      description: >-
                                        For a tool tile: the columns its
                                        transform returns
                                      type:
                                        - array
                                        - 'null'
                                      items:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                          type:
                                            type: string
                                        required:
                                          - name
                                          - type
                                        additionalProperties: {}
                                    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})$
                                  required:
                                    - id
                                    - organization_id
                                    - created_by_project_user_id
                                    - type
                                    - name
                                    - thread_id
                                    - chart_config
                                    - chart
                                    - connection_id
                                    - thumbnail_url
                                    - sql
                                    - snapshot_data
                                    - is_archived
                                    - created_at
                                    - updated_at
                                    - workspace_id
                                  additionalProperties: false
                              required:
                                - id
                                - favorite_id
                                - x
                                - 'y'
                                - w
                                - h
                              additionalProperties: false
                          filters:
                            type:
                              - array
                              - 'null'
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                filter_config:
                                  allOf:
                                    - oneOf:
                                        - type: object
                                          properties:
                                            filterType:
                                              type: string
                                              const: Input
                                            filterSubType:
                                              type: string
                                              enum:
                                                - Input Equals
                                                - Input Starts with
                                                - Input Ends with
                                                - Input Contains
                                              description: Subtype of the input filter.
                                            filterRestrictions:
                                              type: 'null'
                                              description: >-
                                                No specific restrictions for the input
                                                filter.
                                            displayName:
                                              type: string
                                              description: User-driven display name for the filter.
                                            controlKey:
                                              description: >-
                                                User-driven key to identify the filter
                                                when controlled externally.
                                              type: string
                                            layout:
                                              type: object
                                              properties:
                                                i:
                                                  type: string
                                                  description: >-
                                                    Component key or uses the index of
                                                    components if not provided.
                                                x:
                                                  type: number
                                                  description: X position in grid units.
                                                'y':
                                                  type: number
                                                  description: Y position in grid units.
                                                w:
                                                  type: number
                                                  description: Width in grid units.
                                                h:
                                                  type: number
                                                  description: Height in grid units.
                                                minW:
                                                  description: Minimum width in grid units.
                                                  type: number
                                                maxW:
                                                  description: Maximum width in grid units.
                                                  type: number
                                                minH:
                                                  description: Minimum height in grid units.
                                                  type: number
                                                maxH:
                                                  description: Maximum height in grid units.
                                                  type: number
                                                moved:
                                                  description: Set by DragEvents and ResizeEvents.
                                                  type: boolean
                                                static:
                                                  description: >-
                                                    If true, equal to `isDraggable: false`
                                                    and `isResizable: false`.
                                                  type: boolean
                                                isDraggable:
                                                  description: >-
                                                    If false, will not be draggable.
                                                    Overrides `static`.
                                                  type: boolean
                                                isResizable:
                                                  description: >-
                                                    If false, will not be resizable.
                                                    Overrides `static`.
                                                  type: boolean
                                                resizeHandles:
                                                  description: Array of resize handles.
                                                  type: array
                                                  items:
                                                    type: string
                                                    enum:
                                                      - s
                                                      - w
                                                      - e
                                                      - 'n'
                                                      - sw
                                                      - nw
                                                      - se
                                                      - ne
                                                isBounded:
                                                  description: >-
                                                    If true and draggable, item will be
                                                    moved only within the grid.
                                                  type: boolean
                                              required:
                                                - i
                                                - x
                                                - 'y'
                                                - w
                                                - h
                                              additionalProperties: false
                                              description: >-
                                                User-driven layout configuration for the
                                                filter.
                                          required:
                                            - filterType
                                            - filterSubType
                                            - filterRestrictions
                                            - displayName
                                            - layout
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            filterType:
                                              type: string
                                              const: Select
                                            filterSubType:
                                              type: string
                                              enum:
                                                - Select Single
                                                - Select Multi
                                              description: Subtype of the select filter.
                                            filterRestrictions:
                                              description: Allowed values for the select filter.
                                              type:
                                                - object
                                                - 'null'
                                              properties:
                                                values:
                                                  type: array
                                                  items:
                                                    type: string
                                                  description: An array of allowed string values.
                                              required:
                                                - values
                                              additionalProperties: false
                                            filterRestrictionMethod:
                                              description: >-
                                                Method to compute the restrictions for
                                                this Select filter. Defaults to
                                                {filterType: 'Scan'} to scan the column
                                                it is pointing at
                                              oneOf:
                                                - type: object
                                                  properties:
                                                    filterType:
                                                      type: string
                                                      const: Manual
                                                    options:
                                                      type: array
                                                      items:
                                                        type: string
                                                      description: >-
                                                        User provided options for this select
                                                        filter
                                                  required:
                                                    - filterType
                                                    - options
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    filterType:
                                                      type: string
                                                      const: Query
                                                    query:
                                                      type: string
                                                      description: >-
                                                        Query to run to populate this select
                                                        filter
                                                  required:
                                                    - filterType
                                                    - query
                                                  additionalProperties: false
                                                - type: object
                                                  properties:
                                                    filterType:
                                                      type: string
                                                      const: Scan
                                                  required:
                                                    - filterType
                                                  additionalProperties: false
                                              discriminator:
                                                propertyName: filterType
                                            defaultValue:
                                              description: The default value for the filter.
                                              type: string
                                            displayName:
                                              type: string
                                              description: User-driven display name for the filter.
                                            controlKey:
                                              description: >-
                                                User-driven key to identify the filter
                                                when controlled externally.
                                              type: string
                                            layout:
                                              type: object
                                              properties:
                                                i:
                                                  type: string
                                                  description: >-
                                                    Component key or uses the index of
                                                    components if not provided.
                                                x:
                                                  type: number
                                                  description: X position in grid units.
                                                'y':
                                                  type: number
                                                  description: Y position in grid units.
                                                w:
                                                  type: number
                                                  description: Width in grid units.
                                                h:
                                                  type: number
                                                  description: Height in grid units.
                                                minW:
                                                  description: Minimum width in grid units.
                                                  type: number
                                                maxW:
                                                  description: Maximum width in grid units.
                                                  type: number
                                                minH:
                                                  description: Minimum height in grid units.
                                                  type: number
                                                maxH:
                                                  description: Maximum height in grid units.
                                                  type: number
                                                moved:
                                                  description: Set by DragEvents and ResizeEvents.
                                                  type: boolean
                                                static:
                                                  description: >-
                                                    If true, equal to `isDraggable: false`
                                                    and `isResizable: false`.
                                                  type: boolean
                                                isDraggable:
                                                  description: >-
                                                    If false, will not be draggable.
                                                    Overrides `static`.
                                                  type: boolean
                                                isResizable:
                                                  description: >-
                                                    If false, will not be resizable.
                                                    Overrides `static`.
                                                  type: boolean
                                                resizeHandles:
                                                  description: Array of resize handles.
                                                  type: array
                                                  items:
                                                    type: string
                                                    enum:
                                                      - s
                                                      - w
                                                      - e
                                                      - 'n'
                                                      - sw
                                                      - nw
                                                      - se
                                                      - ne
                                                isBounded:
                                                  description: >-
                                                    If true and draggable, item will be
                                                    moved only within the grid.
                                                  type: boolean
                                              required:
                                                - i
                                                - x
                                                - 'y'
                                                - w
                                                - h
                                              additionalProperties: false
                                              description: >-
                                                User-driven layout configuration for the
                                                filter.
                                          required:
                                            - filterType
                                            - filterSubType
                                            - displayName
                                            - layout
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            filterType:
                                              type: string
                                              const: Number
                                            filterSubType:
                                              type: string
                                              enum:
                                                - Number Greater than
                                                - Number Greater than or equal to
                                                - Number Less than
                                                - Number Less than or equal to
                                                - Number Equal to
                                              description: Subtype of the number filter.
                                            filterRestrictions:
                                              description: >-
                                                Allowed numeric range for the number
                                                filter.
                                              type:
                                                - object
                                                - 'null'
                                              properties:
                                                min:
                                                  type: number
                                                  description: The minimum allowed number.
                                                max:
                                                  type: number
                                                  description: The maximum allowed number.
                                              required:
                                                - min
                                                - max
                                              additionalProperties: false
                                            displayName:
                                              type: string
                                              description: User-driven display name for the filter.
                                            controlKey:
                                              description: >-
                                                User-driven key to identify the filter
                                                when controlled externally.
                                              type: string
                                            layout:
                                              type: object
                                              properties:
                                                i:
                                                  type: string
                                                  description: >-
                                                    Component key or uses the index of
                                                    components if not provided.
                                                x:
                                                  type: number
                                                  description: X position in grid units.
                                                'y':
                                                  type: number
                                                  description: Y position in grid units.
                                                w:
                                                  type: number
                                                  description: Width in grid units.
                                                h:
                                                  type: number
                                                  description: Height in grid units.
                                                minW:
                                                  description: Minimum width in grid units.
                                                  type: number
                                                maxW:
                                                  description: Maximum width in grid units.
                                                  type: number
                                                minH:
                                                  description: Minimum height in grid units.
                                                  type: number
                                                maxH:
                                                  description: Maximum height in grid units.
                                                  type: number
                                                moved:
                                                  description: Set by DragEvents and ResizeEvents.
                                                  type: boolean
                                                static:
                                                  description: >-
                                                    If true, equal to `isDraggable: false`
                                                    and `isResizable: false`.
                                                  type: boolean
                                                isDraggable:
                                                  description: >-
                                                    If false, will not be draggable.
                                                    Overrides `static`.
                                                  type: boolean
                                                isResizable:
                                                  description: >-
                                                    If false, will not be resizable.
                                                    Overrides `static`.
                                                  type: boolean
                                                resizeHandles:
                                                  description: Array of resize handles.
                                                  type: array
                                                  items:
                                                    type: string
                                                    enum:
                                                      - s
                                                      - w
                                                      - e
                                                      - 'n'
                                                      - sw
                                                      - nw
                                                      - se
                                                      - ne
                                                isBounded:
                                                  description: >-
                                                    If true and draggable, item will be
                                                    moved only within the grid.
                                                  type: boolean
                                              required:
                                                - i
                                                - x
                                                - 'y'
                                                - w
                                                - h
                                              additionalProperties: false
                                              description: >-
                                                User-driven layout configuration for the
                                                filter.
                                          required:
                                            - filterType
                                            - filterSubType
                                            - displayName
                                            - layout
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            filterType:
                                              type: string
                                              const: Date
                                            filterSubType:
                                              type: string
                                              enum:
                                                - Date Single
                                                - Date Range
                                                - Date Range (No Timestamp)
                                                - Date After
                                                - Date Before
                                              description: Subtype of the date filter.
                                            filterRestrictions:
                                              description: Allowed date range for the date filter.
                                              type:
                                                - object
                                                - 'null'
                                              properties:
                                                min:
                                                  type: string
                                                  description: The minimum allowed date.
                                                max:
                                                  type: string
                                                  description: The maximum allowed date.
                                              required:
                                                - min
                                                - max
                                              additionalProperties: false
                                            displayName:
                                              type: string
                                              description: User-driven display name for the filter.
                                            controlKey:
                                              description: >-
                                                User-driven key to identify the filter
                                                when controlled externally.
                                              type: string
                                            layout:
                                              type: object
                                              properties:
                                                i:
                                                  type: string
                                                  description: >-
                                                    Component key or uses the index of
                                                    components if not provided.
                                                x:
                                                  type: number
                                                  description: X position in grid units.
                                                'y':
                                                  type: number
                                                  description: Y position in grid units.
                                                w:
                                                  type: number
                                                  description: Width in grid units.
                                                h:
                                                  type: number
                                                  description: Height in grid units.
                                                minW:
                                                  description: Minimum width in grid units.
                                                  type: number
                                                maxW:
                                                  description: Maximum width in grid units.
                                                  type: number
                                                minH:
                                                  description: Minimum height in grid units.
                                                  type: number
                                                maxH:
                                                  description: Maximum height in grid units.
                                                  type: number
                                                moved:
                                                  description: Set by DragEvents and ResizeEvents.
                                                  type: boolean
                                                static:
                                                  description: >-
                                                    If true, equal to `isDraggable: false`
                                                    and `isResizable: false`.
                                                  type: boolean
                                                isDraggable:
                                                  description: >-
                                                    If false, will not be draggable.
                                                    Overrides `static`.
                                                  type: boolean
                                                isResizable:
                                                  description: >-
                                                    If false, will not be resizable.
                                                    Overrides `static`.
                                                  type: boolean
                                                resizeHandles:
                                                  description: Array of resize handles.
                                                  type: array
                                                  items:
                                                    type: string
                                                    enum:
                                                      - s
                                                      - w
                                                      - e
                                                      - 'n'
                                                      - sw
                                                      - nw
                                                      - se
                                                      - ne
                                                isBounded:
                                                  description: >-
                                                    If true and draggable, item will be
                                                    moved only within the grid.
                                                  type: boolean
                                              required:
                                                - i
                                                - x
                                                - 'y'
                                                - w
                                                - h
                                              additionalProperties: false
                                              description: >-
                                                User-driven layout configuration for the
                                                filter.
                                          required:
                                            - filterType
                                            - filterSubType
                                            - displayName
                                            - layout
                                          additionalProperties: false
                                        - type: object
                                          properties:
                                            filterType:
                                              type: string
                                              const: Toggle
                                            filterSubType:
                                              type: 'null'
                                              description: >-
                                                No specific subtype for the toggle
                                                filter.
                                            filterRestrictions:
                                              type: 'null'
                                              description: >-
                                                No specific restrictions for the toggle
                                                filter.
                                            displayName:
                                              type: string
                                              description: User-driven display name for the filter.
                                            controlKey:
                                              description: >-
                                                User-driven key to identify the filter
                                                when controlled externally.
                                              type: string
                                            layout:
                                              type: object
                                              properties:
                                                i:
                                                  type: string
                                                  description: >-
                                                    Component key or uses the index of
                                                    components if not provided.
                                                x:
                                                  type: number
                                                  description: X position in grid units.
                                                'y':
                                                  type: number
                                                  description: Y position in grid units.
                                                w:
                                                  type: number
                                                  description: Width in grid units.
                                                h:
                                                  type: number
                                                  description: Height in grid units.
                                                minW:
                                                  description: Minimum width in grid units.
                                                  type: number
                                                maxW:
                                                  description: Maximum width in grid units.
                                                  type: number
                                                minH:
                                                  description: Minimum height in grid units.
                                                  type: number
                                                maxH:
                                                  description: Maximum height in grid units.
                                                  type: number
                                                moved:
                                                  description: Set by DragEvents and ResizeEvents.
                                                  type: boolean
                                                static:
                                                  description: >-
                                                    If true, equal to `isDraggable: false`
                                                    and `isResizable: false`.
                                                  type: boolean
                                                isDraggable:
                                                  description: >-
                                                    If false, will not be draggable.
                                                    Overrides `static`.
                                                  type: boolean
                                                isResizable:
                                                  description: >-
                                                    If false, will not be resizable.
                                                    Overrides `static`.
                                                  type: boolean
                                                resizeHandles:
                                                  description: Array of resize handles.
                                                  type: array
                                                  items:
                                                    type: string
                                                    enum:
                                                      - s
                                                      - w
                                                      - e
                                                      - 'n'
                                                      - sw
                                                      - nw
                                                      - se
                                                      - ne
                                                isBounded:
                                                  description: >-
                                                    If true and draggable, item will be
                                                    moved only within the grid.
                                                  type: boolean
                                              required:
                                                - i
                                                - x
                                                - 'y'
                                                - w
                                                - h
                                              additionalProperties: false
                                              description: >-
                                                User-driven layout configuration for the
                                                filter.
                                          required:
                                            - filterType
                                            - filterSubType
                                            - filterRestrictions
                                            - displayName
                                            - layout
                                          additionalProperties: false
                                      discriminator:
                                        propertyName: filterType
                                    - type: object
                                      properties:
                                        globalFilterColumns:
                                          description: Array of targeted filter configurations.
                                          type: array
                                          items:
                                            type: string
                                            description: Global column name to filter on
                                        filterTargets:
                                          type: array
                                          items:
                                            allOf:
                                              - oneOf:
                                                  - type: object
                                                    properties:
                                                      type:
                                                        type: string
                                                        const: Before logic
                                                      columns:
                                                        type: array
                                                        items:
                                                          type: object
                                                          properties:
                                                            type:
                                                              type: string
                                                              enum:
                                                                - string
                                                                - number
                                                                - boolean
                                                                - date
                                                                - mixed
                                                                - json
                                                              description: The data type of the column.
                                                            columnName:
                                                              type: string
                                                              description: The name of the column.
                                                            columnMetadata:
                                                              description: >-
                                                                The description of the column used for
                                                                AI.
                                                              type: string
                                                            columnSummary:
                                                              description: >-
                                                                An object that summarizes the data in
                                                                the column. Is only ever provided if
                                                                dataIsVisibleToAi is set to true.
                                                              type: object
                                                              properties:
                                                                values:
                                                                  type: array
                                                                  items: {}
                                                                  description: >-
                                                                    An array of example values summarizing
                                                                    the contents of the column
                                                                isExhaustive:
                                                                  type: boolean
                                                                  description: >-
                                                                    This is set to true if the values array
                                                                    is an exhaustive summary of the
                                                                    available values in the column. If it's
                                                                    set to false it represents just some
                                                                    examples.
                                                              required:
                                                                - values
                                                                - isExhaustive
                                                              additionalProperties: false
                                                          required:
                                                            - type
                                                            - columnName
                                                          additionalProperties: false
                                                        description: >-
                                                          List of simple columns for 'Before
                                                          logic'.
                                                      targetTable:
                                                        description: Name of the target table.
                                                        type: string
                                                      chartId:
                                                        type: string
                                                        description: Identifier of the target chart.
                                                    required:
                                                      - type
                                                      - columns
                                                      - chartId
                                                    additionalProperties: false
                                                  - type: object
                                                    properties:
                                                      type:
                                                        type: string
                                                        const: After logic
                                                      columns:
                                                        type: array
                                                        items:
                                                          type: object
                                                          properties:
                                                            type:
                                                              type: string
                                                              enum:
                                                                - string
                                                                - number
                                                                - boolean
                                                                - date
                                                                - mixed
                                                                - json
                                                              description: The data type of the column.
                                                            columnName:
                                                              type: string
                                                              description: The name of the column.
                                                            columnMetadata:
                                                              description: >-
                                                                The description of the column used for
                                                                AI.
                                                              type: string
                                                            columnSummary:
                                                              description: >-
                                                                An object that summarizes the data in
                                                                the column. Is only ever provided if
                                                                dataIsVisibleToAi is set to true.
                                                              type: object
                                                              properties:
                                                                values:
                                                                  type: array
                                                                  items: {}
                                                                  description: >-
                                                                    An array of example values summarizing
                                                                    the contents of the column
                                                                isExhaustive:
                                                                  type: boolean
                                                                  description: >-
                                                                    This is set to true if the values array
                                                                    is an exhaustive summary of the
                                                                    available values in the column. If it's
                                                                    set to false it represents just some
                                                                    examples.
                                                              required:
                                                                - values
                                                                - isExhaustive
                                                              additionalProperties: false
                                                          required:
                                                            - type
                                                            - columnName
                                                          additionalProperties: false
                                                        description: >-
                                                          List of simple columns for 'After
                                                          logic'.
                                                      targetTable:
                                                        type: 'null'
                                                        description: >-
                                                          No target table needed for filters after
                                                          logic.
                                                      chartId:
                                                        type: string
                                                        description: Identifier of the target chart.
                                                    required:
                                                      - type
                                                      - columns
                                                      - targetTable
                                                      - chartId
                                                    additionalProperties: false
                                                discriminator:
                                                  propertyName: type
                                              - type: object
                                                properties:
                                                  targetColumn:
                                                    description: >-
                                                      User-driven target column for the
                                                      filter.
                                                    type: string
                                                additionalProperties: false
                                          description: Array of targeted filter configurations.
                                        selectedValue:
                                          anyOf:
                                            - anyOf:
                                                - type: string
                                                - type: number
                                                - {}
                                                - type: boolean
                                                - type: 'null'
                                            - type: array
                                              items:
                                                anyOf:
                                                  - type: string
                                                  - type: number
                                                  - {}
                                                  - type: boolean
                                                  - type: 'null'
                                              description: >-
                                                An array is used when multiple values
                                                are selected, as with the date range
                                                filter, or with a multi-select filter.
                                      required:
                                        - filterTargets
                                      additionalProperties: false
                                    - type: object
                                      properties:
                                        fieldKey:
                                          description: >-
                                            The catalog field this filter was
                                            created from.
                                          type: string
                                        fieldRef:
                                          description: >-
                                            On a filter whose fieldKey is not a
                                            `col:` key: the one table column ('raw')
                                            or tile result column ('output') it
                                            filters. Ignore it on a `col:` key.
                                          type: object
                                          properties:
                                            kind:
                                              type: string
                                              enum:
                                                - raw
                                                - output
                                            table:
                                              type:
                                                - string
                                                - 'null'
                                            column:
                                              type: string
                                            columnType:
                                              type: string
                                              enum:
                                                - string
                                                - number
                                                - date
                                                - boolean
                                              description: >-
                                                The column's data type, which decides
                                                the filter types it accepts.
                                          required:
                                            - kind
                                            - table
                                            - column
                                          additionalProperties: false
                                        itemIds:
                                          description: >-
                                            Tiles the filter is restricted to, when
                                            it was restricted.
                                          type: array
                                          items:
                                            type: string
                                        fieldKeys:
                                          description: >-
                                            On a filter made from a custom filter:
                                            its columns, in order. Each tile filters
                                            on the first that applies there. With
                                            filtersEveryTable, tables picked under
                                            one name, each tile filtered on every
                                            one it reads.
                                          type: array
                                          items:
                                            type: string
                                        tileColumns:
                                          description: >-
                                            On a filter made from a custom filter:
                                            the tiles given columns of their own,
                                            each filtered on every one of them.
                                          type: object
                                          propertyNames:
                                            type: string
                                          additionalProperties:
                                            type: array
                                            items:
                                              type: string
                                        customFilterId:
                                          description: >-
                                            The custom filter this filter was made
                                            from. Its columns, tiles and name follow
                                            that custom filter.
                                          type: string
                                        filtersEveryTable:
                                          description: >-
                                            True on a filter over tables picked
                                            under one column name (`fieldKeys`):
                                            each tile is filtered on every one of
                                            them it reads, or not at all.
                                          type: boolean
                                      additionalProperties: false
                                sort_order:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                              required:
                                - id
                                - filter_config
                                - sort_order
                              additionalProperties: false
                        required:
                          - id
                          - canvas_id
                          - version
                          - display_mode
                          - created_by
                          - created_at
                          - items
                        additionalProperties: false
                        description: >-
                          The new latest version: the restored one, saved again
                          as it now stands on the canvas.
                      restoredFrom:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                        description: The saved version that was restored.
                      missingItemCount:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                        description: >-
                          How many of the restored version's tiles were left out
                          because their chart no longer exists.
                    required:
                      - version
                      - restoredFrom
                      - missingItemCount
                    additionalProperties: false
                required:
                  - status
                  - data
                additionalProperties: false
        '400':
          description: >-
            POST
            /v2/api/projects/:projectId/workspaces/:workspaceId/canvases/:canvasId/versions/:version/restore
            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.