Cube Dashboard API

Access the underlying Dashboards of Cube

Business capability
Management Reporting BC-230.30

Operations 7

GET /dashboard List all dashboards #
POST /dashboard Create a dashboard #
GET /dashboard/{dashboard_id}/embed Retrieve Embedded URL for the requested Cube Dashboard #
GET /dashboard/{id} Retrieve a dashboard by ID #
PATCH /dashboard/{id} Update a dashboard by ID #
DELETE /dashboard/{id} #
PATCH /dashboard/{id}/default Set the default dashboard #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cubesoftware-dashboard-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cubesoftware-dashboard-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cube Agents Dashboard API
  version: 1.0.0 (1.0)
  description: "#### General Description\nAn API to access underlying Cube functionality. These endpoints are the same endpoints\nthat support Cube's universal add-ons and a plethora of integrations meaning you'll be able to interact with your\nCube data in many powerful ways. Visit the API section of Cube's [Help Center](https://help.cubesoftware.com/hc/en-us/sections/18205290556180-Custom-Integrations)\nfor more usage guides on how you can use this API to integrate with Cube to accomplish various tasks!\n\n#### Versioning\nAll requests to the API require a version to be configured via an `Accept` Header. The value of this Header should look like this:\n```\nAccept: application/json; version=1.0\n```\nNote that the version number may differ depending on which version of the endpoint is needed.\n\n#### Response Structure\nThe general response structure of Cube's API endpoints will contain a `\"data\"` and `\"metadata\"` root level key:\n```json\n{\n    \"data\": { ... object data or list of objects ... },\n    \"metadata\": {\n        \"status\": 200,\n        \"message\": \"Potential message with additional context\",\n        \"error\": false,\n        \"code\": \"\"\n    }\n}\n```\n\n#### Rate Limiting\nAll endpoints have a rate limit configured, most of them default to 5/s.\nWhen the rate limit is encountered, a 429 HTTP code will be returned.\n\n#### Error Handling\nIn the event an error occurs, the response will typically look like this:\n```json\n{\n    \"data\": {},\n    \"metadata\": {\n        \"status\": 400,\n        \"message\": \"Some error message\",\n        \"error\": true,\n        \"code\": \"SOME_ERROR_CODE\"\n    }\n}\n```\n"
  termsOfService: https://www.cubesoftware.com/terms-of-service
servers:
- url: https://api.cubesoftware.com
  description: Production API URL
tags:
- name: Dashboard
  description: Access the underlying Dashboards of Cube
paths:
  /dashboard:
    get:
      operationId: dashboard_list
      description: List all dashboards
      summary: List all dashboards
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      tags:
      - Dashboard
      security:
      - OAuth2: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Dashboard'
          description: ''
    post:
      operationId: dashboard_create
      description: Create a dashboard
      summary: Create a dashboard
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      tags:
      - Dashboard
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDashboard'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateDashboard'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateDashboard'
        required: true
      security:
      - OAuth2: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDashboard'
          description: ''
  /dashboard/{dashboard_id}/embed:
    get:
      operationId: dashboard_embed_retrieve
      description: Retrieve the embed URL for Cube Dashboards by Dashboard ID
      summary: Retrieve Embedded URL for the requested Cube Dashboard
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      - in: path
        name: dashboard_id
        schema:
          type: string
          format: uuid
        description: The dashboard UUID
        required: true
      tags:
      - Dashboard
      security:
      - OAuth2: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/data'
          description: The embed URL with the required token is generated.
  /dashboard/{id}:
    get:
      operationId: dashboard_retrieve
      description: Retrieve a dashboard by ID
      summary: Retrieve a dashboard by ID
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Dashboard
      security:
      - OAuth2: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dashboard'
          description: ''
    patch:
      operationId: dashboard_partial_update
      description: Update writable dashboard fields
      summary: Update a dashboard by ID
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Dashboard
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDashboard'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedDashboard'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedDashboard'
      security:
      - OAuth2: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dashboard'
          description: ''
    delete:
      operationId: dashboard_destroy
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Dashboard
      security:
      - OAuth2: []
      responses:
        '204':
          description: No response body
  /dashboard/{id}/default:
    patch:
      operationId: dashboard_default_partial_update
      description: DEPRECATED. Use the more general PATCH method instead.
      summary: Set the default dashboard
      parameters:
      - in: header
        name: X-Company-ID
        schema:
          type: string
        description: Associates request with company
        required: true
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Dashboard
      security:
      - OAuth2: []
      deprecated: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dashboard'
          description: ''
components:
  schemas:
    PatchedDashboard:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        external_id:
          type:
          - string
          - 'null'
          readOnly: true
        source:
          allOf:
          - $ref: '#/components/schemas/Source402Enum'
          readOnly: true
        edit_url:
          type:
          - string
          - 'null'
          description: "Returns a url in the third party system for editing the dashboard.\n\nReturns:\n    str url in the external system where one can edit the dashboard."
          readOnly: true
        external:
          type:
          - object
          - 'null'
          additionalProperties: {}
          description: "Returns an up to date representation of the dashboard provided by the external system.\n\nReturns:\n    A dictionary representation of the dashboard in the external system or None if this dashboard is\n        not a metabase dashboard.\n\nRaises:\n    MBNotFoundError: raised if the dashboard is not found in the external system."
          readOnly: true
        default:
          type: boolean
        publish_status:
          $ref: '#/components/schemas/PublishStatusEnum'
        sharing_scheme:
          $ref: '#/components/schemas/SharingSchemeF41Enum'
        sharing_users: {}
    Dashboard:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        external_id:
          type:
          - string
          - 'null'
          readOnly: true
        source:
          allOf:
          - $ref: '#/components/schemas/Source402Enum'
          readOnly: true
        edit_url:
          type:
          - string
          - 'null'
          description: "Returns a url in the third party system for editing the dashboard.\n\nReturns:\n    str url in the external system where one can edit the dashboard."
          readOnly: true
        external:
          type:
          - object
          - 'null'
          additionalProperties: {}
          description: "Returns an up to date representation of the dashboard provided by the external system.\n\nReturns:\n    A dictionary representation of the dashboard in the external system or None if this dashboard is\n        not a metabase dashboard.\n\nRaises:\n    MBNotFoundError: raised if the dashboard is not found in the external system."
          readOnly: true
        default:
          type: boolean
        publish_status:
          $ref: '#/components/schemas/PublishStatusEnum'
        sharing_scheme:
          $ref: '#/components/schemas/SharingSchemeF41Enum'
        sharing_users: {}
      required:
      - created_at
      - edit_url
      - external
      - external_id
      - id
      - name
      - sharing_users
      - source
    SharingSchemeF41Enum:
      enum:
      - ALL
      - ADMINS
      - SPECIFIC
      type: string
      description: '* `ALL` - All Team Members

        * `ADMINS` - Only Admins

        * `SPECIFIC` - Specific Team Members'
    CreateDashboard:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type:
          - string
          - 'null'
          writeOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        external_id:
          type:
          - string
          - 'null'
          readOnly: true
        source:
          allOf:
          - $ref: '#/components/schemas/Source402Enum'
          readOnly: true
        edit_url:
          type:
          - string
          - 'null'
          description: "Returns a url in the third party system for editing the dashboard.\n\nReturns:\n    str url in the external system where one can edit the dashboard."
          readOnly: true
        external:
          type:
          - object
          - 'null'
          additionalProperties: {}
          description: "Returns an up to date representation of the dashboard provided by the external system.\n\nReturns:\n    A dictionary representation of the dashboard in the external system or None if this dashboard is\n        not a metabase dashboard.\n\nRaises:\n    MBNotFoundError: raised if the dashboard is not found in the external system."
          readOnly: true
        default:
          type: boolean
          readOnly: true
        publish_status:
          allOf:
          - $ref: '#/components/schemas/PublishStatusEnum'
          readOnly: true
        sharing_scheme:
          allOf:
          - $ref: '#/components/schemas/SharingSchemeF41Enum'
          readOnly: true
        sharing_users:
          readOnly: true
      required:
      - created_at
      - default
      - edit_url
      - external
      - external_id
      - id
      - name
      - publish_status
      - sharing_scheme
      - sharing_users
      - source
    PublishStatusEnum:
      enum:
      - DRAFT
      - PUBLISHED
      type: string
      description: '* `DRAFT` - Draft

        * `PUBLISHED` - Published'
    data:
      type: object
      properties:
        data:
          type: object
          additionalProperties: {}
        metadata:
          type: object
          additionalProperties: {}
      required:
      - data
      - metadata
    Source402Enum:
      enum:
      - METABASE
      type: string
      description: '* `METABASE` - Metabase'
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://portal.cubesoftware.com/o/authorize/
          tokenUrl: https://api.cubesoftware.com/o/token/
          scopes: {}
      description: Standard Cube OAuth 2.0 flow