Create Dashboard

Create a dashboard in the specified workspace.

REQUEST URI

https://<ZohoAnalytics_Server_URI>/restapi/v2/workspaces/<workspace-id>/dashboards

Post

oauthscope: ZohoAnalytics.modeling.create

QUERY PARAMETERS

 

Parameter Name
Description
CONFIG*JSONObject
Config parameter specifications are available in the below section.

FIELDS FOR CONFIG JSON

 

Key
Description
displayName*String
The name of the dashboard.
Maximum length - 200 characters.
The name must be unique within the workspace.

Sample: {"displayName":"Sales Overview"}
layout*JSONObject
The cards placed on the dashboard and their positions on the 80-unit-wide grid.
Each key is a string card ID, such as "1" or "2", and each value is a card object.
The layout must contain at least one card of VIEW type.
Check the table Structure of layout for more details.

Sample: {"layout":{"1":{"type":"USERFILTERS","width":80,"height":3,"left":0,"top":0}}}
settingsJSONObject
The behavior settings of the dashboard.
If not specified, the default settings are applied.
Check the table Structure of settings for more details.

Sample: {"settings":{"allowDrillDown":"true","fitToWidth":"true"}}
themesJSONObject
The visual theme of the dashboard, including its background, card style and typography.
If not specified, the default theme is applied.
Check the table Structure of themes for more details.

Sample: {"themes":{"type":"solid","solid":{"background":"#333542"},"card":{"background":"#3E3F4D"}}}

Structure of layout

 

Key
Description
Common positional fields (all cards)
type*String
The type of the card. It determines the additional fields the card requires.
Supported values: "VIEW", "HTML", "USERFILTERS", "TITLE", "IMAGE", "EMBED"
Check the table Card Types for more details.

Sample: {"type":"VIEW"}
width*Integer
The width of the card in grid units.
Minimum value - 2.
The sum of left and width must not exceed 80.

Sample: {"width":80}
height*Integer
The height of the card in grid units.
Minimum value - 2.

Sample: {"height":20}
left*Integer
The horizontal position of the card from the left edge of the grid, starting at 0.
Minimum value - 0.

Sample: {"left":0}
top*Integer
The vertical position of the card from the top of the dashboard, starting at 0.
Minimum value - 0.

Sample: {"top":8}

Note: The dashboard grid is 80 units wide, and each card must fit within it without overlapping another card. A dashboard can contain a maximum of 100 cards.

Note: The values of width, height, left and top must be integers. Strings, decimals and null values are not supported.

Card Types

 

Card Type
Description
Report cards
VIEWEmbeds a saved report or view from the workspace.
Additional mandatory fields:
viewName (String) - The name of an existing report or view in the workspace. The user must have access to it.
properties (JSONObject) - The properties of the view. An empty object {} is allowed.
Content cards
HTMLDisplays custom HTML content.
Additional mandatory field: content (String) - The HTML markup to display. An empty string is allowed, but the field cannot be null or missing.
TITLEDisplays a title or heading.
Additional mandatory field: content (String) - The text or HTML of the title.
IMAGEDisplays an image.
Additional mandatory field: content (String) - The image URL or Base64 data.
EMBEDEmbeds external content.
Additional mandatory field: content (String) - The embed URL or iframe HTML.
Filter cards
USERFILTERSDisplays an interactive panel with the user filters defined on the embedded views.
No additional fields are required.

Structure of settings

 

Key
Description
Interaction options
allowDrillDownString
Controls whether drill down is allowed on chart data points.
Supported values: "true", "false"

Sample: {"allowDrillDown":"true"}
enableSortMenuString
Controls whether the sort menu is shown on embedded reports.
Supported values: "true", "false"

Sample: {"enableSortMenu":"true"}
reportAsFilterString
Controls whether clicking a chart element filters the other cards in the dashboard.
Supported values: "true", "false"

Sample: {"reportAsFilter":"true"}
showContextualOptionsString
Controls whether contextual options are shown on dashboard cards.
Supported values: "true", "false"

Sample: {"showContextualOptions":"true"}
allowVUDString
Controls whether visual-update drill down (VUD) is allowed on embedded reports.
Supported values: "true", "false"

Sample: {"allowVUD":"true"}
hideColumnOptionsString
Controls whether column options are hidden from dashboard viewers.
Supported values: "true", "false"

Sample: {"hideColumnOptions":"true"}
Export and insights options
allowExportJSONObject
The export formats available to dashboard viewers.
Supported keys: csv, html, excel, pdf, image, zohoSheet
Supported values for each key: "true", "false"

Sample: {"allowExport":{"csv":"true","pdf":"true"}}
allowInsightsString
Controls whether AI-powered Insights are available for embedded reports.
Supported values: "true", "false"

Sample: {"allowInsights":"true"}
Filter options
enableGlobalUFString
Controls whether the global user filter, which applies to all cards, is enabled.
Supported values: "true", "false"

Sample: {"enableGlobalUF":"true"}
enableGlobalValueUFString
Controls whether value-based global user filters are enabled.
Supported values: "true", "false"

Sample: {"enableGlobalValueUF":"true"}
applyImmediateUFString
Controls whether user filter changes are applied immediately, without a confirmation click.
Supported values: "true", "false"

Sample: {"applyImmediateUF":"true"}
timeSlicerString
Controls whether the time slicer is shown on the dashboard.
Supported values: "true", "false"

Sample: {"timeSlicer":"true"}
Display options
smartAlignChartsString
Controls whether chart elements are aligned automatically for visual consistency.
Supported values: "true", "false"

Sample: {"smartAlignCharts":"true"}
fitToWidthString
Controls whether embedded reports are scaled to fit the card width.
Supported values: "true", "false"

Sample: {"fitToWidth":"true"}
layoutTypeString
The target viewport of the dashboard layout.
Supported values: "web", "mobile"

Sample: {"layoutType":"web"}
layoutWidthString
The fixed width of the dashboard layout in pixels, specified as a string.

Sample: {"layoutWidth":"1280"}

Note: Boolean settings accept only the string values "true" and "false". JSON booleans, integers and values such as "yes" or "no" are not supported.

Structure of themes

 

Key
Description
Layout
layoutTypeInteger
The internal layout type identifier of the theme.

Sample: {"layoutType":2}
Background
type*String
The background style of the dashboard. It determines the type-specific object to include.
Supported values: "solid", "gradient", "image"

Sample: {"type":"solid"}
solidJSONObject
The solid background settings of the dashboard.
Key: background (String) - The background color as a hex code.
This attribute is mandatory for solid type and must not be specified for other types.

Sample: {"solid":{"background":"#333542"}}
gradientJSONObject
The gradient background settings of the dashboard.
Keys: startColor (String) - The start color as a hex code. endColor (String) - The end color as a hex code. Both keys are mandatory.
This attribute is mandatory for gradient type and must not be specified for other types.
imageJSONObject
The image background settings of the dashboard.
Key: url (String) - The URL of the background image.
This attribute is mandatory for image type and must not be specified for other types.
Card style
card*JSONObject
The visual style of the dashboard cards.
This attribute is mandatory for all theme types.
Check the table card sub-keys for more details.

Sample: {"card":{"background":"#3E3F4D","title":{"border":{"color":"#6F738E"}},"border":{"color":"#6F738E","width":2}}}

Note: Color and background values must be hex codes specified as strings, for example "#333542".

Note: Type-specific theme objects and the card object must be JSON objects. Arrays and null values are not supported.

card sub-keys

 

Key
Description
Colors and borders
backgroundString
The background color of the card as a hex code.

Sample: {"background":"#3E3F4D"}
titleJSONObject
The style of the card title.
Key: border (JSONObject) - The title border style, with the key color (String) as a hex code.

Sample: {"title":{"border":{"color":"#6F738E"}}}
borderJSONObject
The border style of the card.
Keys: color (String) - The border color as a hex code. width (Integer) - The border width.

Sample: {"border":{"color":"#6F738E","width":2}}
Effects and spacing
opacityNumber
The opacity of the card background.
Supported range - 0.0 to 1.0.
blurNumber
The blur level of the card background.
radiusNumber
The corner radius of the card in pixels.
marginNumber
The margin of the card in pixels.
shadowNumber
The shadow intensity of the card.

Sample Request:

Copiedcurl "https://analyticsapi.zoho.com/restapi/v2/workspaces/35130000001055707/dashboards" -X 'POST' -H 'ZANALYTICS-ORGID: <org-id>' -H 'Authorization: Zoho-oauthtoken <access_token>' --data-urlencode 'CONFIG={"displayName":"Sales Overview","layout":"{\"1\":{\"type\":\"USERFILTERS\",\"width\":80,\"height\":3,\"left\":0,\"top\":0},\"2\":{\"type\":\"HTML\",\"width\":80,\"height\":5,\"left\":0,\"top\":3,\"content\":\"<b>Sales Dashboard</b>\"},\"3\":{\"type\":\"VIEW\",\"width\":80,\"height\":20,\"left\":0,\"top\":8,\"viewName\":\"Sales Chart\",\"properties\":{}}}","settings":{"allowDrillDown":"true","fitToWidth":"true","allowExport":{"csv":"true","pdf":"true"}},"themes":{"layoutType":2,"type":"solid","solid":{"background":"#333542"},"card":{"background":"#3E3F4D","title":{"border":{"color":"#6F738E"}},"border":{"color":"#6F738E","width":2}}}}'
Copiedusing System;
using System.Collections.Generic;
using System.Text.Json;
using ZohoAnalytics;

namespace ZohoAnalyticsTest
{
    class Program
    {
        long orgId = 55522777;
        long workspaceId = 35130000001055707;

        public void CreateDashboard(IAnalyticsClient ac)
        {
            string displayName = "Sales Overview";
            string layout = "{\"1\":{\"type\":\"USERFILTERS\",\"width\":80,\"height\":3,\"left\":0,\"top\":0},\"2\":{\"type\":\"HTML\",\"width\":80,\"height\":5,\"left\":0,\"top\":3,\"content\":\"<b>Sales Dashboard</b>\"},\"3\":{\"type\":\"VIEW\",\"width\":80,\"height\":20,\"left\":0,\"top\":8,\"viewName\":\"Sales Chart\",\"properties\":{}}}";
            Dictionary<string, object> config = JsonSerializer.Deserialize<Dictionary<string, object>>("{\"settings\":{\"allowDrillDown\":\"true\",\"fitToWidth\":\"true\",\"allowExport\":{\"csv\":\"true\",\"pdf\":\"true\"}},\"themes\":{\"layoutType\":2,\"type\":\"solid\",\"solid\":{\"background\":\"#333542\"},\"card\":{\"background\":\"#3E3F4D\",\"title\":{\"border\":{\"color\":\"#6F738E\"}},\"border\":{\"color\":\"#6F738E\",\"width\":2}}}}");
            IWorkspaceAPI workspace = ac.GetWorkspaceInstance(orgId, workspaceId);
            long result = workspace.CreateDashboard(displayName, layout, config);
            Console.WriteLine(result);
        }

        static void Main(string[] args)
        {
            string clientId = "1000.xxxxxxx";
            string clientSecret = "xxxxxxx";
            string refreshToken = "1000.xxxxxxx.xxxxxxx";
            IAnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);
            Program obj = new Program();
            obj.CreateDashboard(ac);
        }
    }
}
Copiedpackage main

import (
    "fmt"
    ZAnalytics "zoho/pkg/analyticsclient"
)

var (
    clientId = "1000.xxxxxxx"
    clientSecret = "xxxxxxx"
    refreshToken = "1000.xxxxxxx.xxxxxxx"
    orgId = "55522777"
    workspaceId = "35130000001055707"
)

func CreateDashboard(ac ZAnalytics.Client) {
    displayname := "Sales Overview"
    layout := "{\"1\":{\"type\":\"USERFILTERS\",\"width\":80,\"height\":3,\"left\":0,\"top\":0},\"2\":{\"type\":\"HTML\",\"width\":80,\"height\":5,\"left\":0,\"top\":3,\"content\":\"<b>Sales Dashboard</b>\"},\"3\":{\"type\":\"VIEW\",\"width\":80,\"height\":20,\"left\":0,\"top\":8,\"viewName\":\"Sales Chart\",\"properties\":{}}}"
    config := map[string]interface{}{
        "settings": map[string]interface{}{
            "allowDrillDown": "true",
            "fitToWidth": "true",
            "allowExport": map[string]interface{}{
                "csv": "true",
                "pdf": "true",
            },
        },
        "themes": map[string]interface{}{
            "layoutType": 2,
            "type": "solid",
            "solid": map[string]interface{}{
                "background": "#333542",
            },
            "card": map[string]interface{}{
                "background": "#3E3F4D",
                "title": map[string]interface{}{
                    "border": map[string]interface{}{
                        "color": "#6F738E",
                    },
                },
                "border": map[string]interface{}{
                    "color": "#6F738E",
                    "width": 2,
                },
            },
        },
    }
    workspace := ZAnalytics.GetWorkspaceInstance(&ac, orgId, workspaceId)
    result, exception := workspace.CreateDashboard(displayname, layout, config)
    if exception != nil {
        fmt.Println(exception.ErrorMessage)
        return
    }
    fmt.Println(result)
}

func main() {
    ac := ZAnalytics.GetAnalyticsClient(clientId, clientSecret, refreshToken)
    CreateDashboard(ac)
}
Copiedimport com.zoho.analytics.client.*;
import org.json.*;

public class Test {
    private long orgId = 55522777l;
    private long workspaceId = 35130000001055707l;

    public static void main(String args[]) {
        String clientId = "1000.xxxxxxx";
        String clientSecret = "xxxxxxx";
        String refreshToken = "1000.xxxxxxx.xxxxxxx";
        Test tObj = new Test();
        AnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);
        try {
            tObj.createDashboard(ac);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public void createDashboard(AnalyticsClient ac) throws Exception {
        String displayName = "Sales Overview";
        String layout = "{\"1\":{\"type\":\"USERFILTERS\",\"width\":80,\"height\":3,\"left\":0,\"top\":0},\"2\":{\"type\":\"HTML\",\"width\":80,\"height\":5,\"left\":0,\"top\":3,\"content\":\"<b>Sales Dashboard</b>\"},\"3\":{\"type\":\"VIEW\",\"width\":80,\"height\":20,\"left\":0,\"top\":8,\"viewName\":\"Sales Chart\",\"properties\":{}}}";
        JSONObject config = new JSONObject("{\"settings\":{\"allowDrillDown\":\"true\",\"fitToWidth\":\"true\",\"allowExport\":{\"csv\":\"true\",\"pdf\":\"true\"}},\"themes\":{\"layoutType\":2,\"type\":\"solid\",\"solid\":{\"background\":\"#333542\"},\"card\":{\"background\":\"#3E3F4D\",\"title\":{\"border\":{\"color\":\"#6F738E\"}},\"border\":{\"color\":\"#6F738E\",\"width\":2}}}}");
        WorkspaceAPI workspace = ac.getWorkspaceInstance(orgId, workspaceId);
        long result = workspace.createDashboard(displayName, layout, config);
        System.out.println(result);
    }
}
Copied<?php
require 'AnalyticsClient.php';

class Test {
    public $ac;
    public $org_id = "55522777";
    public $workspace_id = "35130000001055707";

    function __construct() {
        $this->ac = new AnalyticsClient("1000.xxxxxxx", "xxxxxxx", "1000.xxxxxxx.xxxxxxx");
    }

    function createDashboard() {
        $display_name = "Sales Overview";
        $layout = "{\"1\":{\"type\":\"USERFILTERS\",\"width\":80,\"height\":3,\"left\":0,\"top\":0},\"2\":{\"type\":\"HTML\",\"width\":80,\"height\":5,\"left\":0,\"top\":3,\"content\":\"<b>Sales Dashboard</b>\"},\"3\":{\"type\":\"VIEW\",\"width\":80,\"height\":20,\"left\":0,\"top\":8,\"viewName\":\"Sales Chart\",\"properties\":{}}}";
        $config = array(
            "settings" => array(
                "allowDrillDown" => "true",
                "fitToWidth" => "true",
                "allowExport" => array(
                    "csv" => "true",
                    "pdf" => "true"
                )
            ),
            "themes" => array(
                "layoutType" => 2,
                "type" => "solid",
                "solid" => array(
                    "background" => "#333542"
                ),
                "card" => array(
                    "background" => "#3E3F4D",
                    "title" => array(
                        "border" => array(
                            "color" => "#6F738E"
                        )
                    ),
                    "border" => array(
                        "color" => "#6F738E",
                        "width" => 2
                    )
                )
            )
        );
        $workspace = $this->ac->getWorkspaceInstance($this->org_id, $this->workspace_id);
        $response = $workspace->createDashboard($display_name, $layout, $config);
        print_r($response);
    }
}

$obj = new Test();
$obj->createDashboard();
?>
Copiedfrom AnalyticsClient import AnalyticsClient

class Config:
    CLIENTID = "1000.xxxxxxx"
    CLIENTSECRET = "xxxxxxx"
    REFRESHTOKEN = "1000.xxxxxxx.xxxxxxx"
    ORGID = "55522777"
    WORKSPACEID = "35130000001055707"

class Sample:
    ac = AnalyticsClient(Config.CLIENTID, Config.CLIENTSECRET, Config.REFRESHTOKEN)

    def create_dashboard(self, ac):
        display_name = "Sales Overview"
        layout = "{\"1\":{\"type\":\"USERFILTERS\",\"width\":80,\"height\":3,\"left\":0,\"top\":0},\"2\":{\"type\":\"HTML\",\"width\":80,\"height\":5,\"left\":0,\"top\":3,\"content\":\"<b>Sales Dashboard</b>\"},\"3\":{\"type\":\"VIEW\",\"width\":80,\"height\":20,\"left\":0,\"top\":8,\"viewName\":\"Sales Chart\",\"properties\":{}}}"
        config = {
            "settings": {
                "allowDrillDown": "true",
                "fitToWidth": "true",
                "allowExport": {
                    "csv": "true",
                    "pdf": "true"
                }
            },
            "themes": {
                "layoutType": 2,
                "type": "solid",
                "solid": {
                    "background": "#333542"
                },
                "card": {
                    "background": "#3E3F4D",
                    "title": {
                        "border": {
                            "color": "#6F738E"
                        }
                    },
                    "border": {
                        "color": "#6F738E",
                        "width": 2
                    }
                }
            }
        }
        workspace = ac.get_workspace_instance(Config.ORGID, Config.WORKSPACEID)
        result = workspace.create_dashboard(display_name, layout, config)
        print(result)

obj = Sample()
obj.create_dashboard(obj.ac)
Copiedvar analyticsClient = require('./AnalyticsClient');
var ac = new analyticsClient('1000.xxxxxxx', 'xxxxxxx', '1000.xxxxxxx.xxxxxxx');
var orgId = '55522777';
var workspaceId = '35130000001055707';

var displayName = "Sales Overview";
var layout = "{\"1\":{\"type\":\"USERFILTERS\",\"width\":80,\"height\":3,\"left\":0,\"top\":0},\"2\":{\"type\":\"HTML\",\"width\":80,\"height\":5,\"left\":0,\"top\":3,\"content\":\"<b>Sales Dashboard</b>\"},\"3\":{\"type\":\"VIEW\",\"width\":80,\"height\":20,\"left\":0,\"top\":8,\"viewName\":\"Sales Chart\",\"properties\":{}}}";
var config = {
    "settings": {
        "allowDrillDown": "true",
        "fitToWidth": "true",
        "allowExport": {
            "csv": "true",
            "pdf": "true"
        }
    },
    "themes": {
        "layoutType": 2,
        "type": "solid",
        "solid": {
            "background": "#333542"
        },
        "card": {
            "background": "#3E3F4D",
            "title": {
                "border": {
                    "color": "#6F738E"
                }
            },
            "border": {
                "color": "#6F738E",
                "width": 2
            }
        }
    }
};
var workspace = ac.getWorkspaceInstance(orgId, workspaceId);
workspace.createDashboard(displayName, layout, config).then((result) => { console.log(result); }).catch((error) => { console.log(error); });
CopiedorgId = "55522777";
workspaceId = "35130000001055707";
headersMap = Map();
headersMap.put("ZANALYTICS-ORGID", orgId);
filterCard = Map();
filterCard.put("type", "USERFILTERS");
filterCard.put("width", 80);
filterCard.put("height", 3);
filterCard.put("left", 0);
filterCard.put("top", 0);
htmlCard = Map();
htmlCard.put("type", "HTML");
htmlCard.put("width", 80);
htmlCard.put("height", 5);
htmlCard.put("left", 0);
htmlCard.put("top", 3);
htmlCard.put("content", "<b>Sales Dashboard</b>");
viewCard = Map();
viewCard.put("type", "VIEW");
viewCard.put("width", 80);
viewCard.put("height", 20);
viewCard.put("left", 0);
viewCard.put("top", 8);
viewCard.put("viewName", "Sales Chart");
viewCard.put("properties", Map());
layout = Map();
layout.put("1", filterCard);
layout.put("2", htmlCard);
layout.put("3", viewCard);
allowExport = Map();
allowExport.put("csv", "true");
allowExport.put("pdf", "true");
settings = Map();
settings.put("allowDrillDown", "true");
settings.put("fitToWidth", "true");
settings.put("allowExport", allowExport);
titleBorder = Map();
titleBorder.put("color", "#6F738E");
cardTitle = Map();
cardTitle.put("border", titleBorder);
cardBorder = Map();
cardBorder.put("color", "#6F738E");
cardBorder.put("width", 2);
cardTheme = Map();
cardTheme.put("background", "#3E3F4D");
cardTheme.put("title", cardTitle);
cardTheme.put("border", cardBorder);
solidTheme = Map();
solidTheme.put("background", "#333542");
themes = Map();
themes.put("layoutType", 2);
themes.put("type", "solid");
themes.put("solid", solidTheme);
themes.put("card", cardTheme);
config = Map();
config.put("displayName", "Sales Overview");
config.put("layout", layout.toString()); // layout travels as a JSON-encoded string
config.put("settings", settings);
config.put("themes", themes);
parameters = "CONFIG=" + zoho.encryption.urlEncode(config.toString());
response = invokeurl
[
  url :"https://analyticsapi.zoho.com/restapi/v2/workspaces/" + workspaceId + "/dashboards"
  type :POST
  parameters:parameters
  headers:headersMap
  connection:"analytics_oauth_connection"
];
info response;
Copiedrequire 'zoho_analytics_client'

class Config
  ORGID = "55522777"
  WORKSPACEID = "35130000001055707"
end

class Sample
  def initialize
    @ac = AnalyticsClient.new.with_data_center("US").with_oauth({
      "clientId" => "1000.xxxxxxx",
      "clientSecret" => "xxxxxxx",
      "refreshToken" => "1000.xxxxxxx.xxxxxxx"
    }).build
  end

  def create_dashboard
    display_name = "Sales Overview"
    layout = "{\"1\":{\"type\":\"USERFILTERS\",\"width\":80,\"height\":3,\"left\":0,\"top\":0},\"2\":{\"type\":\"HTML\",\"width\":80,\"height\":5,\"left\":0,\"top\":3,\"content\":\"<b>Sales Dashboard</b>\"},\"3\":{\"type\":\"VIEW\",\"width\":80,\"height\":20,\"left\":0,\"top\":8,\"viewName\":\"Sales Chart\",\"properties\":{}}}"
    config = {
      "settings" => {
        "allowDrillDown" => "true",
        "fitToWidth" => "true",
        "allowExport" => {
          "csv" => "true",
          "pdf" => "true"
        }
      },
      "themes" => {
        "layoutType" => 2,
        "type" => "solid",
        "solid" => {
          "background" => "#333542"
        },
        "card" => {
          "background" => "#3E3F4D",
          "title" => {
            "border" => {
              "color" => "#6F738E"
            }
          },
          "border" => {
            "color" => "#6F738E",
            "width" => 2
          }
        }
      }
    }
    workspace = @ac.get_workspace_instance(Config::ORGID, Config::WORKSPACEID)
    result = workspace.create_dashboard(display_name, layout, config)
    puts result
  end
end

obj = Sample.new
obj.create_dashboard

Download client libraries:  C# | GO | JAVA | PHP | PYTHON | NodeJS | Ruby

Sample value for CONFIG parameter:

Copied{
  "displayName": "Sales Overview",
  "layout": "{\"1\":{\"type\":\"USERFILTERS\",\"width\":80,\"height\":3,\"left\":0,\"top\":0},\"2\":{\"type\":\"HTML\",\"width\":80,\"height\":5,\"left\":0,\"top\":3,\"content\":\"<b>Sales Dashboard</b>\"},\"3\":{\"type\":\"VIEW\",\"width\":80,\"height\":20,\"left\":0,\"top\":8,\"viewName\":\"Sales Chart\",\"properties\":{}}}",
  "settings": {
    "allowDrillDown": "true",
    "fitToWidth": "true",
    "allowExport": {
      "csv": "true",
      "pdf": "true"
    }
  },
  "themes": {
    "layoutType": 2,
    "type": "solid",
    "solid": {
      "background": "#333542"
    },
    "card": {
      "background": "#3E3F4D",
      "title": {
        "border": {
          "color": "#6F738E"
        }
      },
      "border": {
        "color": "#6F738E",
        "width": 2
      }
    }
  }
}

Sample Response:

CopiedHTTP/1.1 200 OK
Content-Type:application/json;charset=UTF-8

{
  "status": "success",
  "summary": "Create dashboard",
  "data": {
    "dashboardId": "207806000016661147"
  }
}