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

# Append Charts from Dashboard

> Copies all charts from a source dashboard and appends them to a target dashboard. Charts are deep-copied (new IDs) and positioned below existing charts in the target. Authenticate with a tenant JWT or an API key.



## OpenAPI

````yaml post /v1/api/dashboard/append-charts-from
openapi: 3.1.0
info:
  title: Upsolve API
  version: 1.4.1
servers:
  - url: https://api.upsolve.ai
security: []
tags: []
paths:
  /v1/api/dashboard/append-charts-from:
    post:
      summary: Append charts from another dashboard
      description: >-
        Copies all charts from a source dashboard and appends them to a target
        dashboard. Charts are deep-copied (new IDs) and positioned below
        existing charts in the target. Authenticate with a tenant JWT or an API
        key.
      operationId: PostV1ApiDashboardAppendChartsFrom
      requestBody:
        description: POST /v1/api/dashboard/append-charts-from 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
                sourceDashboardId:
                  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: ID of the source dashboard to copy charts from
                targetDashboardId:
                  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: ID of the target dashboard to append charts to
              required:
                - sourceDashboardId
                - targetDashboardId
        required: true
      responses:
        '200':
          description: POST /v1/api/dashboard/append-charts-from Positive response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: success
                  data:
                    type: object
                    properties:
                      message:
                        type: string
                      addedChartIds:
                        type: array
                        items:
                          type: string
                        description: >-
                          IDs of newly copied charts added to the target
                          dashboard
                      dashboardId:
                        type: string
                        description: ID of the updated target dashboard
                    required:
                      - message
                      - addedChartIds
                      - dashboardId
                    additionalProperties: false
                required:
                  - status
                  - data
                additionalProperties: false
        '400':
          description: POST /v1/api/dashboard/append-charts-from 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_2: []
components:
  securitySchemes:
    APIKEY_2:
      type: apiKey
      in: header
      name: authorization

````