Cube Planning Dashboard API
Access the underlying Dashboards of Cube
Access the underlying Dashboards of Cube
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/cube-planning-dashboard-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
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: Cube API Production 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:
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
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: {}
Source402Enum:
enum:
- METABASE
type: string
description: '* `METABASE` - Metabase'
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
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
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