Grafana Upload API

The Upload API from Grafana — 1 operation(s) for upload.

OpenAPI Specification

grafana-upload-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Grafana HTTP Access Upload API
  description: The Grafana HTTP API provides programmatic access to Grafana's core functionality including dashboards, data sources, alerts, users, organizations, folders, annotations, and teams. Authentication is handled via API keys, basic auth, or OAuth tokens passed in the Authorization header.
  version: 11.0.0
  contact:
    name: Grafana Labs
    url: https://grafana.com
  license:
    name: AGPL-3.0
    url: https://www.gnu.org/licenses/agpl-3.0.html
servers:
- url: https://{instance}.grafana.net/api
  description: Grafana Cloud
  variables:
    instance:
      default: your-instance
- url: http://localhost:3000/api
  description: Local Grafana instance
security:
- BearerAuth: []
- BasicAuth: []
- ApiKeyAuth: []
tags:
- name: Upload
paths:
  /cloudmigration/migration/{uid}/snapshot/{snapshotUid}/upload:
    parameters: []
    post:
      tags:
      - Upload
      summary: Grafana Upload Snapshot
      description: This API operation uploads a previously created snapshot to Grafana Cloud as part of a cloud migration process. It requires both a migration UID and a snapshot UID to identify which migration job and specific snapshot are being uploaded. The POST request initiates the transfer of the snapshot data from the source Grafana instance to the target cloud environment, enabling users to migrate their dashboards, data sources, and other configurations. This endpoint is typically used after creating a snapshot through the migration API and is a crucial step in the overall cloud migration workflow for moving Grafana instances to a cloud-hosted environment.
      operationId: uploadSnapshot
      parameters:
      - name: uid
        in: path
        description: Session UID of a session
        required: true
        schema:
          type: string
      - name: snapshotUid
        in: path
        description: UID of a snapshot
        required: true
        schema:
          type: string
      responses:
        '200':
          description: (empty)
          headers: {}
          content: {}
        '400':
          description: BadRequestError is returned when the request is invalid and it cannot be processed.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '401':
          description: UnauthorizedError is returned when the request is not authenticated.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '403':
          description: ForbiddenError is returned if the user/token has insufficient permissions to access the requested resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
        '500':
          description: InternalServerError is a general error indicating something went wrong internally.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody'
      deprecated: false
      x-api-evangelist-processing:
        SplitPascalCaseOperationSummaries: true
        CaselCaseOperationIds: true
        WriteDescription: true
        ChooseTags: true
components:
  schemas:
    ErrorResponseBody:
      title: ErrorResponseBody
      required:
      - message
      type: object
      properties:
        error:
          type: string
          description: Error An optional detailed description of the actual error. Only included if running in developer mode.
        message:
          type: string
          description: a human readable version of the error
        status:
          type: string
          description: 'Status An optional status to denote the cause of the error.


            For example, a 412 Precondition Failed error may include additional information of why that error happened.'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Service account token or API key
    BasicAuth:
      type: http
      scheme: basic
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Format: Bearer <api-key>'