Blog Post

Use Case Gallery
17 MIN READ

Creating widgets via the Sisense API

JeremyFriedel's avatar
JeremyFriedel
Sisense Employee
12-02-2025

Overview

Many companies and organizations use Sisense’s REST API to automate dashboard and widget creation. This can help integrate Sisense with existing automations, dynamically generate dashboards for different users, or manage large scale dashboard and widget deployments programmatically.

Sisense provides an API endpoint for creating widgets directly on a dashboard. This allows developers to define widget configurations in JSON and publish them without using the Sisense UI for each new widget. Each widget’s behavior, layout, and data structure are defined in its metadata, mirroring the structure found inside Sisense dashboard export files (.dash files).

This use case describes how to create widgets programmatically using the Sisense API and explains how to work with widget metadata and JAQL structures when doing so.

What the solution does

The Sisense Widget Creation API endpoint allows you to programmatically create widgets on an existing dashboard using a POST request:

POST /api/v1/dashboards/{dashboardID}/widgets

The request body is a widget metadata object defining the widget’s structure, data query, style, and layout.
This metadata format is identical to what Sisense stores within a .dash file.

The type property specifies the visualization type (for example, chart/pie, chart/bar, or pivot2), and the metadata section uses the JAQL query format to describe dimensions, measures, and filters.

Developers can build widgets dynamically by:

  • Defining visualization type and subtype (e.g., pie chart, bar chart, pivot table)
  • Referencing the correct data source
  • Configuring dimensions and measures within the metadata.panels structure
  • Applying filters or plugin (such as JTD) behaviors
  • Posting the configuration to the API endpoint

API Reference:
Full documentation for this endpoint and payload structure is available in the Sisense REST API documentation.

Understanding widget Metadata

Each Sisense widget contains a metadata object that defines the data query (via JAQL), chart style, and layout.
A practical way to understand this format is to export a dashboard and inspect the widgets inside the resulting .dash file.

Each widget entry includes:

  • type – The widget type (for example, chart/pie, chart/bar, pivot2)
  • datasource – Data model used
  • metadata – A JAQL definition of dimensions, measures, and filters and any other dimensions, equivalent to the left hand panel in widget editor, plus filters
  • style – Visual configuration options such as labels, legends, and axis settings
  • options – Additional behaviors such as filter synchronization or drill options

The JAQL format underpins the widget’s data model. It describes how dimensions, measures, and filters are applied when the widget queries the Elasticube or Live data source.

References:

 

Example payloads

Pie Chart Example (Basic Configuration)

{
    "title": "",
    "type": "chart/pie",
    "tags": [],
    "datasource": {
        "fullname": "localhost/CopyOfECommerce",
        "id": "localhost_aCopyOfECommerce",
        "address": "LocalHost",
        "database": "aCopyOfECommerce",
        "live": false,
        "title": "CopyOfECommerce"
    },
    "subtype": "pie/classic",
    "style": {
        "legend": {
            "enabled": false,
            "position": "left"
        },
        "labels": {
            "enabled": true,
            "categories": true,
            "value": false,
            "percent": true,
            "decimals": false,
            "fontFamily": "Open Sans",
            "color": "red"
        },
        "convolution": {
            "enabled": true,
            "selectedConvolutionType": "byPercentage",
            "minimalIndependentSlicePercentage": 3,
            "independentSlicesCount": 7
        },
        "dataLimits": {
            "seriesCapacity": 100000
        }
    },
    "instanceid": "5466B-AEAE-4D",
    "drillToDashboardConfig": {
        "drilledDashboardPrefix": "_drill",
        "drilledDashboardsFolderPrefix": "",
        "displayFilterPane": true,
        "displayDashboardsPane": true,
        "displayToolbarRow": true,
        "displayHeaderRow": true,
        "volatile": false,
        "hideDrilledDashboards": true,
        "hideSharedDashboardsForNonOwner": true,
        "drillToDashboardMenuCaption": "Jump to dashboard",
        "drillToDashboardRightMenuCaption": "Jump to ",
        "drillToDashboardNavigateType": 1,
        "drillToDashboardNavigateTypePivot": 2,
        "drillToDashboardNavigateTypeCharts": 1,
        "drillToDashboardNavigateTypeOthers": 3,
        "excludeFilterDims": [],
        "includeFilterDims": [],
        "drilledDashboardDisplayType": 2,
        "dashboardIds": [],
        "modalWindowResize": false,
        "showFolderNameOnMenuSelection": false,
        "resetDashFiltersAfterJTD": false,
        "sameCubeRestriction": true,
        "showJTDIcon": true,
        "sendPieChartMeasureFiltersOnClick": true,
        "forceZeroInsteadNull": false,
        "mergeTargetDashboardFilters": false,
        "drillToDashboardByName": false
    },
    "realTimeRefreshing": false,
    "metadata": {
        "ignore": {
            "dimensions": [],
            "ids": [],
            "all": false
        },
        "panels": [
            {
                "name": "categories",
                "items": [
                    {
                        "jaql": {
                            "table": "Brand",
                            "column": "Brand",
                            "dim": "[Brand.Brand]",
                            "datatype": "text",
                            "columnTitle": "Brand",
                            "tableTitle": "Brand",
                            "merged": true,
                            "title": "Brand"
                        },
                        "instanceid": "749C8-B7DE-7A",
                        "field": {
                            "id": "[Brand.Brand]",
                            "index": 0
                        },
                        "format": {
                            "members": {}
                        }
                    }
                ]
            },
            {
                "name": "values",
                "items": []
            },
            {
                "name": "filters",
                "items": []
            }
        ]
    },
    "options": {
        "dashboardFiltersMode": "select",
        "selector": true,
        "triggersDomready": true,
        "autoUpdateOnEveryChange": true,
        "drillToAnywhere": true
    }
}

This payload demonstrates a simple pie chart with one category (dimension) and a single measure, along with styling options for labels and legends.

Bar Chart Example (With Filters and Multiple Dimensions)

{
    "title": "",
    "type": "chart/bar",
    "tags": [],
    "datasource": {
        "fullname": "localhost/CopyOfECommerce",
        "id": "localhost_aCopyOfECommerce",
        "address": "LocalHost",
        "database": "aCopyOfECommerce",
        "live": false,
        "title": "CopyOfECommerce"
    },
    "subtype": "bar/classic",
    "style": {
        "legend": {
            "enabled": true,
            "position": "bottom"
        },
        "seriesLabels": {
            "enabled": false,
            "rotation": 0,
            "labels": {
                "enabled": false,
                "types": {
                    "count": false,
                    "percentage": false,
                    "relative": false,
                    "totals": false
                },
                "stacked": false,
                "stackedPercentage": false
            }
        },
        "xAxis": {
            "enabled": true,
            "ticks": true,
            "labels": {
                "enabled": true,
                "rotation": 0
            },
            "title": {
                "enabled": false
            },
            "x2Title": {
                "enabled": false
            },
            "gridLines": true,
            "isIntervalEnabled": false
        },
        "yAxis": {
            "inactive": false,
            "enabled": true,
            "ticks": true,
            "labels": {
                "enabled": true,
                "rotation": 0
            },
            "title": {
                "enabled": false
            },
            "gridLines": true,
            "logarithmic": false,
            "isIntervalEnabled": true,
            "hideMinMax": false
        },
        "y2Axis": {
            "inactive": true,
            "enabled": true,
            "ticks": true,
            "labels": {
                "enabled": true,
                "rotation": 0
            },
            "title": {
                "enabled": false
            },
            "gridLines": false,
            "logarithmic": false,
            "isIntervalEnabled": true,
            "hideMinMax": false
        },
        "dataLimits": {
            "seriesCapacity": 50,
            "categoriesCapacity": 100000
        },
        "navigator": {
            "enabled": true
        },
        "narration": {
            "display": "above",
            "verbosity": "low",
            "labels": [
                {
                    "id": "category",
                    "title": "Category",
                    "singular": "Category",
                    "plural": "Category"
                },
                {
                    "id": "brand",
                    "title": "Brand",
                    "singular": "Brand",
                    "plural": "Brand"
                }
            ]
        }
    },
    "instanceid": "FF03B-0D74-36",
    "drillToDashboardConfig": {
        "drilledDashboardPrefix": "_drill",
        "drilledDashboardsFolderPrefix": "",
        "displayFilterPane": true,
        "displayDashboardsPane": true,
        "displayToolbarRow": true,
        "displayHeaderRow": true,
        "volatile": false,
        "hideDrilledDashboards": true,
        "hideSharedDashboardsForNonOwner": true,
        "drillToDashboardMenuCaption": "Jump to dashboard",
        "drillToDashboardRightMenuCaption": "Jump to ",
        "drillToDashboardNavigateType": 1,
        "drillToDashboardNavigateTypePivot": 2,
        "drillToDashboardNavigateTypeCharts": 1,
        "drillToDashboardNavigateTypeOthers": 3,
        "excludeFilterDims": [],
        "includeFilterDims": [],
        "drilledDashboardDisplayType": 2,
        "dashboardIds": [],
        "modalWindowResize": false,
        "showFolderNameOnMenuSelection": false,
        "resetDashFiltersAfterJTD": false,
        "sameCubeRestriction": true,
        "showJTDIcon": true,
        "sendPieChartMeasureFiltersOnClick": true,
        "forceZeroInsteadNull": false,
        "mergeTargetDashboardFilters": false,
        "drillToDashboardByName": false
    },
    "realTimeRefreshing": false,
    "metadata": {
        "ignore": {
            "dimensions": [],
            "ids": [],
            "all": false
        },
        "panels": [
            {
                "name": "categories",
                "items": [
                    {
                        "jaql": {
                            "table": "Brand_Category_with_NULLS",
                            "column": "Category",
                            "dim": "[Brand_Category_with_NULLS.Category]",
                            "datatype": "text",
                            "columnTitle": "Category",
                            "tableTitle": "Brand_Category_with_NULLS",
                            "merged": true,
                            "title": "Category"
                        },
                        "instanceid": "635B0-67BA-AF",
                        "field": {
                            "id": "[Brand_Category_with_NULLS.Category]",
                            "index": 0
                        },
                        "format": {},
                        "panel": "rows"
                    }
                ]
            },
            {
                "name": "values",
                "items": [
                    {
                        "jaql": {
                            "table": "Brand_Category_with_NULLS",
                            "column": "Brand",
                            "dim": "[Brand_Category_with_NULLS.Brand]",
                            "datatype": "text",
                            "columnTitle": "Brand",
                            "tableTitle": "Brand_Category_with_NULLS",
                            "merged": true,
                            "title": "# of unique Brand",
                            "agg": "count"
                        },
                        "instanceid": "DDE5F-0407-39",
                        "panel": "measures",
                        "field": {
                            "id": "[Brand_Category_with_NULLS.Brand]",
                            "index": 2
                        },
                        "format": {
                            "mask": {
                                "type": "number",
                                "abbreviations": {
                                    "t": true,
                                    "b": true,
                                    "m": true,
                                    "k": true
                                },
                                "separated": true,
                                "decimals": "auto",
                                "abbreviateAll": false,
                                "isdefault": true
                            }
                        }
                    }
                ]
            },
            {
                "name": "break by",
                "items": [
                    {
                        "jaql": {
                            "table": "Brand_Category_with_NULLS",
                            "column": "Category",
                            "dim": "[Brand_Category_with_NULLS.Category]",
                            "datatype": "text",
                            "columnTitle": "Category",
                            "tableTitle": "Brand_Category_with_NULLS",
                            "merged": true,
                            "title": "Category"
                        },
                        "instanceid": "C1963-AE15-BF",
                        "panel": "columns",
                        "field": {
                            "id": "[Brand_Category_with_NULLS.Category]",
                            "index": 1
                        },
                        "format": {
                            "members": {}
                        }
                    }
                ]
            },
            {
                "name": "filters",
                "items": [
                    {
                        "jaql": {
                            "table": "Brand",
                            "column": "Brand",
                            "dim": "[Brand.Brand]",
                            "datatype": "text",
                            "columnTitle": "Brand",
                            "tableTitle": "Brand",
                            "merged": true,
                            "isPrimary": false,
                            "isDashboardFilter": false,
                            "datasource": {
                                "fullname": "localhost/CopyOfECommerce",
                                "id": "localhost_aCopyOfECommerce",
                                "address": "LocalHost",
                                "database": "aCopyOfECommerce",
                                "live": false,
                                "title": "CopyOfECommerce"
                            },
                            "locale": "en-us",
                            "title": "Brand",
                            "collapsed": true,
                            "filter": {
                                "explicit": true,
                                "multiSelection": true,
                                "members": [
                                    "Adbananor WorldWide "
                                ]
                            }
                        },
                        "instanceid": "7B315-30EC-C0",
                        "panel": "scope"
                    }
                ]
            }
        ]
    },
    "options": {
        "dashboardFiltersMode": "filter",
        "selector": true,
        "triggersDomready": true,
        "autoUpdateOnEveryChange": true,
        "drillToAnywhere": true,
        "previousScrollerLocation": {
            "min": null,
            "max": null
        }
    }
}

 

This example includes multiple JAQL panels (categories, measures, and breakby dimensions), along with explicit filters and advanced style options. It also shows how to define navigation and plugin (such as JTD) configurations.

Working with dashboard files

Existing dashboard files (.dash) can serve as valuable templates for widget creation. Each widget definition inside a dashboard export can be used as a direct payload for the API.

To do this:

  1. Export a dashboard from Sisense.
  2. Open the .dash file in a text editor.
  3. Locate the widget definition under the "widgets" array.
  4. Use that widget object as the body of your POST request to the API.

This approach allows developers to automate dashboard replication or dynamically add widgets that follow consistent design patterns.

Full Dashboard File Example

{
  "title": "TestExport",
  "oid": "68f924f4b7958b87a83905c3",
  "desc": "",
  "source": null,
  "type": "dashboard",
  "style": {
    "palette": {
      "name": "Vivid",
      "colors": [
        "#00cee6",
        "#9b9bd7",
        "#6EDA55",
        "#fc7570",
        "#fbb755",
        "#218A8C"
      ]
    }
  },
  "layout": {
    "instanceid": "87457-1EB6-EA",
    "type": "columnar",
    "columns": [
      {
        "width": 100,
        "cells": [
          {
            "subcells": [
              {
                "elements": [
                  {
                    "minHeight": 128,
                    "maxHeight": 2048,
                    "minWidth": 128,
                    "maxWidth": 2048,
                    "height": "756px",
                    "defaultWidth": 512,
                    "widgetid": "68f92503b7958b87a83905c5",
                    "autoHeight": "756px"
                  }
                ],
                "width": 100,
                "stretchable": false,
                "pxlWidth": 647,
                "index": 0
              }
            ]
          },
          {
            "subcells": [
              {
                "elements": [
                  {
                    "minHeight": 96,
                    "maxHeight": 2048,
                    "minWidth": 128,
                    "maxWidth": 2048,
                    "height": 384,
                    "defaultWidth": 512,
                    "widgetid": "68f925dbb7958b87a83905c9"
                  }
                ],
                "width": 100,
                "stretchable": false,
                "pxlWidth": 647,
                "index": 0
              }
            ]
          },
          {
            "subcells": [
              {
                "elements": [
                  {
                    "minHeight": 96,
                    "maxHeight": 2048,
                    "minWidth": 128,
                    "maxWidth": 2048,
                    "height": 384,
                    "defaultWidth": 512,
                    "widgetid": "68f9269db7958b87a83905cc"
                  }
                ]
              }
            ]
          }
        ],
        "pxlWidth": 647,
        "index": 0
      }
    ]
  },
  "original": null,
  "dataExploration": false,
  "lastOpened": null,
  "previewLayout": [],
  "datasource": {
    "address": "LocalHost",
    "title": "CopyOfECommerce",
    "id": "localhost_aCopyOfECommerce",
    "database": "aCopyOfECommerce",
    "fullname": "localhost/CopyOfECommerce",
    "live": false
  },
  "filters": [],
  "editing": true,
  "settings": {
    "autoUpdateOnFiltersChange": true
  },
  "widgets": [
    {
      "title": "",
      "type": "pivot2",
      "subtype": "pivot2",
      "oid": "68f92503b7958b87a83905c5",
      "desc": null,
      "source": null,
      "datasource": {
        "address": "LocalHost",
        "title": "CopyOfECommerce",
        "id": "localhost_aCopyOfECommerce",
        "database": "aCopyOfECommerce",
        "fullname": "localhost/CopyOfECommerce",
        "live": false
      },
      "selection": null,
      "metadata": {
        "ignore": {
          "dimensions": [],
          "ids": [],
          "all": false
        },
        "panels": [
          {
            "name": "rows",
            "items": [
              {
                "jaql": {
                  "table": "Brand",
                  "column": "Brand",
                  "dim": "[Brand.Brand]",
                  "datatype": "text",
                  "columnTitle": "Brand",
                  "tableTitle": "Brand",
                  "merged": true,
                  "title": "Brand"
                },
                "instanceid": "D2FFC-C3EB-81",
                "panel": "rows",
                "field": {
                  "id": "[Brand.Brand]",
                  "index": 0
                }
              }
            ]
          },
          {
            "name": "values",
            "items": []
          },
          {
            "name": "columns",
            "items": []
          },
          {
            "name": "filters",
            "items": []
          }
        ],
        "usedFormulasMapping": {}
      },
      "style": {
        "scroll": false,
        "pageSize": 25,
        "automaticHeight": true,
        "colors": {
          "rows": true,
          "columns": false,
          "headers": false,
          "members": false,
          "totals": false
        }
      },
      "instanceid": "012C6-D97F-BF",
      "realTimeRefreshing": false,
      "options": {
        "dashboardFiltersMode": "filter",
        "selector": false,
        "triggersDomready": true,
        "drillToAnywhere": true
      },
      "dashboardid": "68f924f4b7958b87a83905c3",
      "query": {
        "datasource": {
          "fullname": "localhost/CopyOfECommerce",
          "id": "localhost_aCopyOfECommerce",
          "address": "LocalHost",
          "database": "aCopyOfECommerce",
          "live": false,
          "title": "CopyOfECommerce"
        },
        "format": "pivot",
        "grandTotals": {
          "title": "Grand Total"
        },
        "metadata": [
          {
            "jaql": {
              "table": "Brand",
              "column": "Brand",
              "dim": "[Brand.Brand]",
              "datatype": "text",
              "columnTitle": "Brand",
              "tableTitle": "Brand",
              "merged": true,
              "title": "Brand"
            },
            "instanceid": "D2FFC-C3EB-81",
            "panel": "rows",
            "field": {
              "id": "[Brand.Brand]",
              "index": 0
            },
            "handlers": []
          }
        ],
        "m2mThresholdFlag": 0
      }
    },
    {
      "title": "",
      "type": "chart/pie",
      "subtype": "pie/classic",
      "oid": "68f925dbb7958b87a83905c9",
      "desc": null,
      "source": null,
      "datasource": {
        "address": "LocalHost",
        "title": "CopyOfECommerce",
        "id": "localhost_aCopyOfECommerce",
        "database": "aCopyOfECommerce",
        "fullname": "localhost/CopyOfECommerce",
        "live": false
      },
      "selection": null,
      "metadata": {
        "ignore": {
          "dimensions": [],
          "ids": [],
          "all": false
        },
        "panels": [
          {
            "name": "categories",
            "items": [
              {
                "jaql": {
                  "table": "Brand",
                  "column": "Brand",
                  "dim": "[Brand.Brand]",
                  "datatype": "text",
                  "columnTitle": "Brand",
                  "tableTitle": "Brand",
                  "merged": true,
                  "title": "Brand"
                },
                "instanceid": "749C8-B7DE-7A",
                "field": {
                  "id": "[Brand.Brand]",
                  "index": 0
                },
                "format": {
                  "members": {}
                }
              }
            ]
          },
          {
            "name": "values",
            "items": []
          },
          {
            "name": "filters",
            "items": []
          }
        ],
        "usedFormulasMapping": {}
      },
      "style": {
        "legend": {
          "enabled": false,
          "position": "left"
        },
        "labels": {
          "enabled": true,
          "categories": true,
          "value": false,
          "percent": true,
          "decimals": false,
          "fontFamily": "Open Sans",
          "color": "red"
        },
        "convolution": {
          "enabled": true,
          "selectedConvolutionType": "byPercentage",
          "minimalIndependentSlicePercentage": 3,
          "independentSlicesCount": 7
        },
        "dataLimits": {
          "seriesCapacity": 100000
        }
      },
      "instanceid": "5466B-AEAE-4D",
      "drillToDashboardConfig": {
        "drilledDashboardPrefix": "_drill",
        "drilledDashboardsFolderPrefix": "",
        "displayFilterPane": true,
        "displayDashboardsPane": true,
        "displayToolbarRow": true,
        "displayHeaderRow": true,
        "volatile": false,
        "hideDrilledDashboards": true,
        "hideSharedDashboardsForNonOwner": true,
        "drillToDashboardMenuCaption": "Jump to dashboard",
        "drillToDashboardRightMenuCaption": "Jump to ",
        "drillToDashboardNavigateType": 1,
        "drillToDashboardNavigateTypePivot": 2,
        "drillToDashboardNavigateTypeCharts": 1,
        "drillToDashboardNavigateTypeOthers": 3,
        "excludeFilterDims": [],
        "includeFilterDims": [],
        "drilledDashboardDisplayType": 2,
        "dashboardIds": [],
        "modalWindowResize": false,
        "showFolderNameOnMenuSelection": false,
        "resetDashFiltersAfterJTD": false,
        "sameCubeRestriction": true,
        "showJTDIcon": true,
        "sendPieChartMeasureFiltersOnClick": true,
        "forceZeroInsteadNull": false,
        "mergeTargetDashboardFilters": false,
        "drillToDashboardByName": false
      },
      "realTimeRefreshing": false,
      "options": {
        "dashboardFiltersMode": "select",
        "selector": true,
        "triggersDomready": true,
        "autoUpdateOnEveryChange": true,
        "drillToAnywhere": true
      },
      "dashboardid": "68f924f4b7958b87a83905c3"
    },
    {
      "title": "",
      "type": "chart/bar",
      "subtype": "bar/classic",
      "oid": "68f9269db7958b87a83905cc",
      "desc": null,
      "source": null,
      "datasource": {
        "address": "LocalHost",
        "title": "CopyOfECommerce",
        "id": "localhost_aCopyOfECommerce",
        "database": "aCopyOfECommerce",
        "fullname": "localhost/CopyOfECommerce",
        "live": false
      },
      "selection": null,
      "metadata": {
        "ignore": {
          "dimensions": [],
          "ids": [],
          "all": false
        },
        "panels": [
          {
            "name": "categories",
            "items": [
              {
                "jaql": {
                  "table": "Brand_Category_with_NULLS",
                  "column": "Category",
                  "dim": "[Brand_Category_with_NULLS.Category]",
                  "datatype": "text",
                  "columnTitle": "Category",
                  "tableTitle": "Brand_Category_with_NULLS",
                  "merged": true,
                  "title": "Category"
                },
                "instanceid": "635B0-67BA-AF",
                "field": {
                  "id": "[Brand_Category_with_NULLS.Category]",
                  "index": 0
                },
                "format": {},
                "panel": "rows"
              }
            ]
          },
          {
            "name": "values",
            "items": [
              {
                "jaql": {
                  "table": "Brand_Category_with_NULLS",
                  "column": "Brand",
                  "dim": "[Brand_Category_with_NULLS.Brand]",
                  "datatype": "text",
                  "columnTitle": "Brand",
                  "tableTitle": "Brand_Category_with_NULLS",
                  "merged": true,
                  "title": "# of unique Brand",
                  "agg": "count"
                },
                "instanceid": "DDE5F-0407-39",
                "panel": "measures",
                "field": {
                  "id": "[Brand_Category_with_NULLS.Brand]",
                  "index": 2
                },
                "format": {
                  "mask": {
                    "type": "number",
                    "abbreviations": {
                      "t": true,
                      "b": true,
                      "m": true,
                      "k": true
                    },
                    "separated": true,
                    "decimals": "auto",
                    "abbreviateAll": false,
                    "isdefault": true
                  }
                }
              }
            ]
          },
          {
            "name": "break by",
            "items": [
              {
                "jaql": {
                  "table": "Brand_Category_with_NULLS",
                  "column": "Category",
                  "dim": "[Brand_Category_with_NULLS.Category]",
                  "datatype": "text",
                  "columnTitle": "Category",
                  "tableTitle": "Brand_Category_with_NULLS",
                  "merged": true,
                  "title": "Category"
                },
                "instanceid": "C1963-AE15-BF",
                "panel": "columns",
                "field": {
                  "id": "[Brand_Category_with_NULLS.Category]",
                  "index": 1
                },
                "format": {
                  "members": {}
                }
              }
            ]
          },
          {
            "name": "filters",
            "items": [
              {
                "jaql": {
                  "table": "Brand",
                  "column": "Brand",
                  "dim": "[Brand.Brand]",
                  "datatype": "text",
                  "columnTitle": "Brand",
                  "tableTitle": "Brand",
                  "merged": true,
                  "isPrimary": false,
                  "isDashboardFilter": false,
                  "datasource": {
                    "fullname": "localhost/CopyOfECommerce",
                    "id": "localhost_aCopyOfECommerce",
                    "address": "LocalHost",
                    "database": "aCopyOfECommerce",
                    "live": false,
                    "title": "CopyOfECommerce"
                  },
                  "locale": "en-us",
                  "title": "Brand",
                  "collapsed": true,
                  "filter": {
                    "explicit": true,
                    "multiSelection": true,
                    "members": [
                      "Adbananor WorldWide "
                    ]
                  }
                },
                "instanceid": "7B315-30EC-C0",
                "panel": "scope"
              }
            ]
          }
        ],
        "usedFormulasMapping": {}
      },
      "style": {
        "legend": {
          "enabled": true,
          "position": "bottom"
        },
        "seriesLabels": {
          "enabled": false,
          "rotation": 0,
          "labels": {
            "enabled": false,
            "types": {
              "count": false,
              "percentage": false,
              "relative": false,
              "totals": false
            },
            "stacked": false,
            "stackedPercentage": false
          }
        },
        "xAxis": {
          "enabled": true,
          "ticks": true,
          "labels": {
            "enabled": true,
            "rotation": 0
          },
          "title": {
            "enabled": false
          },
          "x2Title": {
            "enabled": false
          },
          "gridLines": true,
          "isIntervalEnabled": false
        },
        "yAxis": {
          "inactive": false,
          "enabled": true,
          "ticks": true,
          "labels": {
            "enabled": true,
            "rotation": 0
          },
          "title": {
            "enabled": false
          },
          "gridLines": true,
          "logarithmic": false,
          "isIntervalEnabled": true,
          "hideMinMax": false
        },
        "y2Axis": {
          "inactive": true,
          "enabled": true,
          "ticks": true,
          "labels": {
            "enabled": true,
            "rotation": 0
          },
          "title": {
            "enabled": false
          },
          "gridLines": false,
          "logarithmic": false,
          "isIntervalEnabled": true,
          "hideMinMax": false
        },
        "dataLimits": {
          "seriesCapacity": 50,
          "categoriesCapacity": 100000
        },
        "navigator": {
          "enabled": true
        },
        "narration": {
          "display": "above",
          "verbosity": "low",
          "labels": [
            {
              "id": "category",
              "title": "Category",
              "singular": "Category",
              "plural": "Category"
            },
            {
              "id": "brand",
              "title": "Brand",
              "singular": "Brand",
              "plural": "Brand"
            }
          ]
        }
      },
      "instanceid": "FF03B-0D74-36",
      "drillToDashboardConfig": {
        "drilledDashboardPrefix": "_drill",
        "drilledDashboardsFolderPrefix": "",
        "displayFilterPane": true,
        "displayDashboardsPane": true,
        "displayToolbarRow": true,
        "displayHeaderRow": true,
        "volatile": false,
        "hideDrilledDashboards": true,
        "hideSharedDashboardsForNonOwner": true,
        "drillToDashboardMenuCaption": "Jump to dashboard",
        "drillToDashboardRightMenuCaption": "Jump to ",
        "drillToDashboardNavigateType": 1,
        "drillToDashboardNavigateTypePivot": 2,
        "drillToDashboardNavigateTypeCharts": 1,
        "drillToDashboardNavigateTypeOthers": 3,
        "excludeFilterDims": [],
        "includeFilterDims": [],
        "drilledDashboardDisplayType": 2,
        "dashboardIds": [],
        "modalWindowResize": false,
        "showFolderNameOnMenuSelection": false,
        "resetDashFiltersAfterJTD": false,
        "sameCubeRestriction": true,
        "showJTDIcon": true,
        "sendPieChartMeasureFiltersOnClick": true,
        "forceZeroInsteadNull": false,
        "mergeTargetDashboardFilters": false,
        "drillToDashboardByName": false
      },
      "realTimeRefreshing": false,
      "options": {
        "dashboardFiltersMode": "filter",
        "selector": true,
        "triggersDomready": true,
        "autoUpdateOnEveryChange": true,
        "drillToAnywhere": true,
        "previousScrollerLocation": {
          "min": null,
          "max": null
        }
      },
      "dashboardid": "68f924f4b7958b87a83905c3"
    }
  ],
  "hierarchies": []
}

Why it’s useful

Creating widgets through the Sisense API offers significant benefits for developers and system administrators:

  • Automation: Supports large scale or dynamic creation of dashboards and widgets without manual effort.
  • Consistency: Enables teams to apply standardized widget templates across multiple dashboards or environments.
  • Integration: Makes it easy to connect Sisense with external systems or automated workflows.
  • Scalability: Allows for the creation of thousands of widgets or dashboards using consistent metadata.
  • Flexibility: By editing the JAQL and style properties, teams can tailor each widget to specific data or design requirements.

Programmatic widget creation is particularly valuable for embedding Sisense into larger analytics workflows, for multi-tenant deployments, or for any scenario where dashboards must be created and maintained dynamically.

Outcome

Using the Widget Creation API endpoint, organizations can generate Sisense dashboards and visualizations in a consistent, repeatable way. Developers can define complex widgets, including data dimensions, filtering, and styling such as color schemes, entirely through JSON payloads, enabling uniform design and reusable frameworks across a large number of programmatically created widgets. By combining automation with Sisense’s flexible JAQL and metadata structure, teams can scale dashboard and widget deployment while maintaining full control over layout, behavior, and visual standards.

 

Updated 12-02-2025
Version 1.0
No CommentsBe the first to comment

Related Content

Related Content