Create a dashboard from a list of measure ids. The server lays out KPI sparkline tiles four per row and fills in attribution, granularity, and date range defaults.
Required scope:dashboards:writeThe quickest way to make a dashboard from a script or an AI agent: pass the measures
you want (“NC ROAS, NC MER, and Meta CPM”) and get back a finished view that opens in
the web app. The upstack dashboard view build CLI
command wraps this endpoint.
Measure ids aren’t checked against the catalog. A typo is saved as a widget for a
measure that doesn’t exist, so confirm ids with
List available measures first.
The same call returns each measure’s shortTitle, which makes a good title.
Titles are capped at 200 characters and name at 200.
Every call creates a new view, even with a name that already exists.
One entry per widget. Sparkline tiles fill rows of four in array order; other
chart types stack below all the sparklines, full width, also in array order.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Upstack Data","colors":{"primary":"#4230b4","light":"#6366F1","dark":"#322484"},"logo":{"light":"https://mintcdn.com/upstackdata-afbed50d/40dgTTn1PLjePhJa/logo/light.svg?fit=max\u0026auto=format\u0026n=40dgTTn1PLjePhJa\u0026q=85\u0026s=598c05fb87860ddc1b6b7640b41e136c","dark":"https://mintcdn.com/upstackdata-afbed50d/40dgTTn1PLjePhJa/logo/dark.svg?fit=max\u0026auto=format\u0026n=40dgTTn1PLjePhJa\u0026q=85\u0026s=4ffdf28479b596176b69034675d783b0","href":"https://docs.upstackdata.com/get-started/overview"},"favicon":"https://mintcdn.com/upstackdata-afbed50d/a7q81tQDxtvowAUn/favicon.svg?fit=max\u0026auto=format\u0026n=a7q81tQDxtvowAUn\u0026q=85\u0026s=4e6cad1d3845d8fe1e1f8fb54b430a3f","appearance":{"default":"light","strict":true},"navbar":{"links":[{"href":"https://docs.upstackdata.com/troubleshooting/support","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.upstackdata.com"}},"footer":{"socials":{"x":"https://x.com/upstackdata","linkedin":"https://linkedin.com/company/upstackdata"},"links":[{"header":"Product","items":[{"label":"Website","href":"https://www.upstackdata.com"},{"label":"Pricing","href":"https://www.upstackdata.com/pricing"},{"label":"Dashboard","href":"https://app.upstackdata.com"}]},{"header":"Resources","items":[{"label":"Documentation","href":"https://docs.upstackdata.com/get-started/overview"},{"label":"All troubleshooting guides","href":"https://docs.upstackdata.com/troubleshooting/overview"},{"label":"Blog","href":"https://www.upstackdata.com/blog"}]},{"header":"Support","items":[{"label":"Contact Support","href":"https://docs.upstackdata.com/troubleshooting/support"},{"label":"Install on Shopify","href":"https://docs.upstackdata.com/quickstart/install-on-shopify"},{"label":"Troubleshooting","href":"https://docs.upstackdata.com/troubleshooting/overview"}]},{"header":"Legal","items":[{"label":"Terms of Service","href":"https://www.upstackdata.com/terms"}]}]},"seo":{},"fonts":{"family":"Inter"},"integrations":{"intercom":{"appId":"y2qnvi2j"}},"contextual":{"options":["copy","view","claude"],"display":"header"},"metadata":{"timestamp":false},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"upstackdata-afbed50d","hasAudioNarration":false,"actualSubdomain":"upstackdata-afbed50d","customDomains":["docs.upstackdata.com"],"gitSource":{"type":"github","owner":"upstack-data","repo":"upstack-doc-site","deployBranch":"release/dev2","isPrivate":true,"contentDirectory":"","mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af205e1130c63682a17c260","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"Metrics","count":803},{"language":"default","tag":"METRICS","count":803},{"language":"default","tag":"Orders","count":271},{"language":"default","tag":"Advertising","count":268},{"language":"default","tag":"Funnel","count":246},{"language":"default","tag":"Documentation","count":175},{"language":"default","tag":"Conversions","count":149},{"language":"default","tag":"Blended","count":110},{"language":"default","tag":"OVERVIEW","count":107},{"language":"default","tag":"Event Tracking","count":104}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@upstackdata.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwhsk.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwhsk.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwhsk.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwhsk.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwhsk.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'JetBrains Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--font-sans: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;--font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;--font-size-label: 0.6875rem;--font-size-tiny: 0.75rem;--font-size-small: 0.8125rem;--font-size-secondary: 0.875rem;--font-size-body: 0.9375rem;--font-size-h3: 1.0625rem;--font-size-h2: 1.25rem;--font-size-h1: 1.625rem;--font-size-code: 0.8125rem;--page-bg: #ffffff;--chrome-bg: #f6f7f8;--border: #e5e7eb;--accent: #4230b4;--accent-hover: #322484;--text-heading: #18181b;--text-body: #52525b;--text-muted: #71717a;--focus-ring: rgba(24, 24, 27, 0.12);--border-strong: #d4d4d8;--input-bg: #ffffff;--hover-bg: rgba(24, 24, 27, 0.04);--active-bg: rgba(24, 24, 27, 0.06)}html{background:var(--page-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--page-bg);color:var(--text-body);font-family:var(--font-sans)!important;font-size:var(--font-size-body)!important;line-height:1.6!important;font-weight:400!important}#navbar,#header{background:var(--chrome-bg)!important;border-bottom:1px solid var(--border)!important;backdrop-filter:none!important}.nav-tabs-item{font-size:var(--font-size-small)!important;font-weight:400!important;color:var(--text-muted)!important}.nav-tabs-item[data-active],.nav-tabs-item:hover{color:var(--text-heading)!important}#sidebar,#sidebar-content{background:var(--chrome-bg)!important;border-right:1px solid var(--border)!important}#sidebar{top:calc(7.1rem + var(--banner-height, 0px))!important;height:auto!important}#sidebar-content{overscroll-behavior:contain}.sidebar-group-header,.sidebar-title{font-size:var(--font-size-label)!important;font-weight:600!important;letter-spacing:0.05em;text-transform:uppercase;color:var(--text-muted)!important;margin-top:24px!important;margin-bottom:8px!important;padding-top:0!important;padding-bottom:0!important}#sidebar-content>div:first-child .sidebar-group-header,#sidebar-content>div:first-child .sidebar-title{margin-top:12px!important}#sidebar-content ul{padding-left:12px!important}#sidebar-content ul ul{padding-left:14px!important;border-left:1px solid var(--border)!important;margin-left:4px!important}.sidebar-group a,#sidebar a{font-size:var(--font-size-small)!important;font-weight:400!important;color:var(--text-body)!important;padding-top:5px!important;padding-bottom:5px!important;line-height:1.4!important;transition:color 80ms ease}.sidebar-group a:hover,#sidebar a:hover{color:var(--text-heading)!important}#navigation-items a,#navigation-items button,#sidebar-content .sidebar-group>button,#sidebar-content .sidebar-group button{border-radius:4px!important;transition:color 80ms ease, background-color 80ms ease!important}#navigation-items a:hover,#navigation-items button:hover{background:var(--hover-bg)!important}#navigation-items a[class*=\"bg-primary\"]{background:var(--active-bg)!important;color:var(--accent)!important;font-weight:500!important}.sidebar-group>button,.sidebar-group button{font-size:var(--font-size-small)!important;font-weight:400!important;color:var(--text-body)!important;padding-top:5px!important;padding-bottom:5px!important;transition:color 80ms ease}.sidebar-group>button:hover,.sidebar-group button:hover{color:var(--text-heading)!important}.eyebrow,.breadcrumb-list,.breadcrumb-item{font-size:var(--font-size-label)!important;color:var(--text-muted)!important;font-weight:500!important;text-transform:uppercase!important;letter-spacing:0.05em!important}div[class*=\"peer-[.is-not-custom]\"]{max-width:none!important}#content-area,#content,#content-container,#content-side-layout{background:var(--page-bg)!important;max-width:none!important}#navbar div[class*=\"max-w-8xl\"]{max-width:none!important}#table-of-contents-layout{max-width:none!important}#body-content{max-width:none!important}.mdx-content{max-width:none!important;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6,#page-title,.mdx-content h1,.mdx-content h2,.mdx-content h3,.mdx-content h4,.mdx-content h5,.mdx-content h6{font-family:var(--font-sans)!important;text-wrap:balance}#page-title,.mdx-content h1{color:var(--text-heading)!important;font-size:var(--font-size-h1)!important;font-weight:600!important;line-height:1.2!important;letter-spacing:-0.01em;margin-top:0!important;margin-bottom:2px!important}.mdx-content>h2,.mdx-content>div>h2{color:var(--text-heading)!important;font-size:var(--font-size-h2)!important;font-weight:600!important;line-height:1.3!important;letter-spacing:-0.01em;margin-top:32px!important;margin-bottom:12px!important}.mdx-content>h3,.mdx-content>div>h3{color:var(--text-heading)!important;font-size:var(--font-size-h3)!important;font-weight:600!important;line-height:1.4!important;margin-top:24px!important;margin-bottom:8px!important}.mdx-content>h4,.mdx-content>div>h4{color:var(--text-heading)!important;font-size:var(--font-size-body)!important;font-weight:600!important;line-height:1.45!important;margin-top:20px!important;margin-bottom:6px!important}.mdx-content p,.mdx-content [data-as=\"p\"],.mdx-content li{color:var(--text-body)!important;font-size:var(--font-size-body)!important;line-height:1.6!important;font-weight:400!important}.mdx-content p{text-wrap:pretty}.mdx-content>p:first-of-type,.mdx-content>[data-as=\"p\"]:first-of-type{color:var(--text-body)!important;font-size:var(--font-size-body)!important;font-weight:400!important;line-height:1.6!important;margin-top:0!important;margin-bottom:20px!important}.mdx-content a,.mdx-content .link{color:var(--accent)!important;text-decoration:none;transition:color 80ms ease}.mdx-content a:hover,.mdx-content .link:hover{color:var(--accent-hover)!important;text-decoration:underline}.mdx-content a.link:has(>div){background:var(--page-bg)!important;border:1px solid var(--border)!important;border-radius:4px!important;box-shadow:none!important;padding:16px 18px!important;transition:border-color 80ms ease, background-color 80ms ease!important}.mdx-content a.link:has(>div):hover{border-color:var(--border-strong)!important;background:var(--page-bg)!important;box-shadow:none!important;transform:none!important;text-decoration:none!important}.mdx-content a.link:has(>div)>div:first-child{color:var(--accent)!important;font-size:var(--font-size-secondary)!important;font-weight:500!important;line-height:1.35!important;margin:0 0 4px 0!important;padding:0!important}.mdx-content a.link:has(>div)>div:last-child{color:var(--text-muted)!important;font-size:var(--font-size-small)!important;font-weight:400!important;line-height:1.4!important;margin:0!important;padding:0!important}.card-group,.columns{gap:12px!important}#topbar-cta-button{background:var(--accent)!important;border:1px solid var(--accent)!important;color:#fff!important;border-radius:4px!important;font-family:var(--font-sans)!important;font-size:var(--font-size-small)!important;font-weight:500!important;padding:6px 12px!important;box-shadow:none!important}#topbar-cta-button:hover{background:var(--accent-hover)!important;border-color:var(--accent-hover)!important}#page-context-menu button{border-radius:4px!important;border-color:var(--border)!important}#feedback-thumbs-up,#feedback-thumbs-down{border-radius:4px!important;border-color:var(--border)!important;background:var(--page-bg)!important}[data-assistant-bar] div[class*=\"rounded-2xl\"]{border-radius:4px!important;border-color:var(--border)!important}#search-input,#search-bar-entry{border:1px solid var(--border)!important;border-radius:4px!important;font-family:var(--font-sans)!important;font-size:var(--font-size-small)!important;background:var(--input-bg)!important;color:var(--text-body)!important}#search-input:focus{border-color:var(--border-strong)!important;box-shadow:0 0 0 3px var(--focus-ring)!important;outline:none!important}#search-input kbd,#search-bar-entry kbd{font-family:var(--font-mono)!important;font-size:var(--font-size-label)!important}#topbar-cta-button:focus-visible,#page-context-menu button:focus-visible,#navigation-items a:focus-visible,#navigation-items button:focus-visible,.toc-item a:focus-visible,#pagination a:focus-visible,#footer a:focus-visible{outline:2px solid var(--text-muted)!important;outline-offset:2px}.mdx-content table{border:1px solid var(--border)!important;border-collapse:collapse!important;font-variant-numeric:tabular-nums}.mdx-content th{background:var(--chrome-bg)!important;font-size:var(--font-size-small)!important;font-weight:600!important;color:var(--text-heading)!important;padding:8px 12px!important}.mdx-content td{border-color:var(--border)!important;font-size:var(--font-size-secondary)!important;padding:8px 12px!important}.mdx-content pre{border-radius:4px!important}code,pre,pre code,.code-block,[class*=\"language-\"]{font-family:var(--font-mono)!important}pre,.code-block{font-size:var(--font-size-code)!important;line-height:1.6!important}code{border-radius:4px!important;font-size:var(--font-size-code)!important;background:var(--chrome-bg)!important;color:var(--text-heading)!important;padding:1px 4px!important;border:1px solid var(--border)!important}pre code{background:transparent!important;border:0!important;padding:0!important;font-size:inherit!important}.mdx-content+.prose,[class*=\"text-lg\"][class*=\"prose\"]{font-size:var(--font-size-body)!important;line-height:1.6!important;color:var(--text-body)!important}.accordion{border:1px solid var(--border)!important;border-radius:4px!important;overflow:hidden}.accordion-group{border:1px solid var(--border)!important;border-radius:4px!important}.accordion-group>.accordion{border-radius:0!important;border-left:0!important;border-right:0!important;border-top:0!important}.accordion-group>.accordion:last-child{border-bottom:0!important}.mdx-content [data-component-part=\"accordion-title\"]{color:var(--text-heading)!important;font-size:var(--font-size-body)!important;font-weight:500!important}[data-component-part=\"accordion-content\"]{font-size:var(--font-size-body)!important;line-height:1.6!important;color:var(--text-body)!important}[data-component-part=\"accordion-content\"] p,[data-component-part=\"accordion-content\"] [data-as=\"p\"],[data-component-part=\"accordion-content\"] li{font-size:var(--font-size-body)!important;line-height:1.6!important;color:var(--text-body)!important;font-weight:400!important}.steps{margin-top:24px!important}.step{padding-bottom:24px!important}.mdx-content [data-component-part=\"step-title\"]{font-size:var(--font-size-h3)!important;font-weight:600!important;line-height:1.4!important;color:var(--text-heading)!important;margin-top:0!important;margin-bottom:8px!important}.mdx-content [data-component-part=\"step-title\"] a{color:inherit!important;text-decoration:none!important}.mdx-content [data-component-part=\"step-title\"]:hover a{color:var(--accent)!important}[data-component-part=\"step-number\"]{color:var(--text-muted)!important}[data-component-part=\"step-line\"]{background-color:var(--border)!important}[data-component-part=\"step-content\"]{font-size:var(--font-size-body)!important;line-height:1.6!important;color:var(--text-body)!important}[data-component-part=\"step-content\"] p,[data-component-part=\"step-content\"] [data-as=\"p\"],[data-component-part=\"step-content\"] li{font-size:var(--font-size-body)!important;line-height:1.6!important;color:var(--text-body)!important;font-weight:400!important}[data-component-part=\"step-content\"] a{color:var(--accent)!important;text-decoration:none!important;transition:color 80ms ease}[data-component-part=\"step-content\"] a:hover{color:var(--accent-hover)!important;text-decoration:underline!important}.callout{border-radius:4px!important}[data-component-part=\"callout-content\"]{font-size:var(--font-size-secondary)!important;line-height:1.6!important}[data-component-part=\"callout-content\"] p,[data-component-part=\"callout-content\"] [data-as=\"p\"]{font-size:var(--font-size-secondary)!important;line-height:1.6!important}.mdx-content strong,[data-component-part=\"accordion-content\"] strong{color:var(--text-heading)!important;font-weight:600!important}.mdx-content em,[data-component-part=\"accordion-content\"] em{font-style:italic}.mdx-content blockquote{border-left:3px solid var(--border)!important;padding-left:16px!important;color:var(--text-muted)!important}.toc{font-size:var(--font-size-small)!important}.toc-item a{color:var(--text-muted)!important;transition:color 80ms ease}.toc-item a:hover{color:var(--text-heading)!important}.toc-item[data-active]>a,.toc-item[data-active-deepest]>a{color:var(--accent)!important}#pagination{font-size:var(--font-size-small)!important;color:var(--text-body)!important;border-top:1px solid var(--border)!important;padding-top:16px!important;margin-top:32px!important}#pagination a{color:var(--text-body)!important;transition:color 80ms ease}#pagination a:hover{color:var(--accent)!important}hr{border-color:var(--border)!important}#footer,footer{background:transparent!important;border-top:1px solid var(--border)!important;color:var(--text-muted)!important;margin-top:48px!important;font-size:var(--font-size-small)!important}#footer:not(.advanced-footer),footer:not(.advanced-footer){padding-top:24px!important;padding-bottom:32px!important}#footer.advanced-footer{padding:0!important}#footer.advanced-footer>div{padding-top:32px!important;padding-bottom:32px!important}@media (min-width: 768px){#footer.advanced-footer>div{padding-top:40px!important;padding-bottom:40px!important}}#footer.advanced-footer p{color:var(--text-heading)!important;font-size:var(--font-size-small)!important;font-weight:600!important;margin-bottom:4px!important}#footer.advanced-footer a{color:var(--text-muted)!important;font-size:var(--font-size-small)!important;transition:color 80ms ease}#footer.advanced-footer a:hover{color:var(--text-heading)!important}#footer a{color:var(--text-muted)!important;transition:color 80ms ease}#footer a:hover{color:var(--text-heading)!important}#footer svg{background-color:var(--text-muted)!important;transition:background-color 80ms ease}#footer a:hover svg{background-color:var(--accent)!important}[data-testid=\"sales-agent-background\"]{background:var(--accent)!important}[data-testid=\"sales-agent-background\"]>div{background:transparent!important;opacity:0!important}.intercom-launcher-frame,.intercom-lightweight-app-launcher,.intercom-messenger-frame,[class^=\"intercom-\"][class*=\"frame\"]{border-radius:12px!important;box-shadow:0 8px 24px rgba(26, 31, 54, 0.12), 0 2px 6px rgba(26, 31, 54, 0.06)!important}.intercom-launcher-frame,.intercom-lightweight-app-launcher{background:var(--accent)!important}::selection{background:var(--accent)!important;color:#fff!important}*{scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px;border:2px solid var(--page-bg)}*::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (max-width: 1024px){#content-area,#content,#content-container{padding-left:16px!important;padding-right:16px!important}#table-of-contents,#table-of-contents-layout aside{display:none!important}.card-group,.columns{grid-template-columns:1fr!important;gap:10px!important}}@media (max-width: 768px){:root{--font-size-h1: 1.375rem;--font-size-h2: 1.125rem;--font-size-h3: 1rem;--font-size-body: 0.875rem;--font-size-code: 0.75rem}.mdx-content>h2,.mdx-content>div>h2{margin-top:24px!important}.mdx-content>h3,.mdx-content>div>h3{margin-top:16px!important}#content-area,#content,#content-container{padding-left:12px!important;padding-right:12px!important}.mdx-content a.link:has(>div){padding:12px 14px!important}.mdx-content a.link:has(>div)>div:first-child{font-size:var(--font-size-small)!important}.mdx-content a.link:has(>div)>div:last-child{font-size:var(--font-size-tiny)!important}.mdx-content table{display:block!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;max-width:100%!important}.mdx-content th,.mdx-content td{font-size:var(--font-size-tiny)!important;padding:6px 8px!important;white-space:nowrap}pre,.code-block{overflow-x:auto!important;-webkit-overflow-scrolling:touch;max-width:100%!important}[data-component-part=\"callout-content\"],[data-component-part=\"callout-content\"] p,[data-component-part=\"callout-content\"] [data-as=\"p\"]{font-size:var(--font-size-small)!important}#sidebar,#sidebar-content{width:280px!important}#navbar,#header{padding-left:12px!important;padding-right:12px!important}#topbar-cta-button{font-size:var(--font-size-tiny)!important;padding:5px 10px!important}#pagination{flex-direction:column!important;gap:8px!important}}@media (max-width: 480px){:root{--font-size-h1: 1.25rem;--font-size-h2: 1rem;--font-size-h3: 0.9375rem}#content-area,#content,#content-container{padding-left:12px!important;padding-right:12px!important}#search-input+kbd,#search-bar-entry kbd{display:none!important}}.catalog-page .card{border:1px solid var(--border)!important;border-radius:4px!important;box-shadow:none!important;margin:0 0 6px 0!important;transition:border-color 80ms ease}.catalog-page .card:hover{border-color:var(--border-strong)!important;background:var(--page-bg)!important}.catalog-page .card>div{display:flex!important;align-items:center!important;gap:12px!important;padding:9px 16px!important}.catalog-page .card [data-component-part=\"card-icon\"],.catalog-page .card [data-component-part=\"card-icon\"] svg{width:18px!important;height:18px!important;flex-shrink:0;color:var(--accent)!important;fill:var(--accent)!important}.catalog-page .card .w-full{flex:1!important;min-width:0}.catalog-page .card [data-component-part=\"card-title\"]{display:inline!important;font-size:14px!important;font-weight:500!important;color:var(--text-heading)!important;margin:0 10px 0 0!important;line-height:1.4!important}.catalog-page .card [data-component-part=\"card-content\"]{display:inline!important;font-size:13px!important;color:var(--text-muted)!important;line-height:1.45!important}.catalog-page h3{font-size:13px!important;font-weight:600!important;color:var(--text-muted)!important;text-transform:uppercase;letter-spacing:0.04em;margin:22px 0 10px!important}.catalog-page .card>div>a{display:flex!important;align-items:center!important;gap:12px!important;width:100%!important;border-bottom:none!important}.catalog-page .columns{max-width:100%!important}"},{"filePath":"custom.css","content":"@media (min-width: 1024px){nav#sidebar{height:calc(\n 100dvh - var(--mintlify-slot-header-height, calc(4rem + var(--topbar-tabs-height, 0rem)))\n )!important}}"}],"page":{"pagePath":"api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset","slug":"/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset","pageMetadata":{"title":"Build a dashboard from a list of measures","description":"Create a dashboard from a list of measure ids. The server lays out KPI sparkline tiles four per row and fills in attribution, granularity, and date range defaults.","deprecated":null,"version":null,"sidebarTitle":"Build a dashboard from a measure list","keywords":["build dashboard","KPI dashboard","dashboard preset","dashboards API","Upstack Data API"],"openapi":"/api-reference/openapi.yaml post /accounts/api/dashboard/views/from-preset","href":"/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create a dashboard from a list of measure ids. The server lays out KPI sparkline tiles four per row and fills in attribution, granularity, and date range defaults.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required scope:`}),` `,_jsx(_components.code,{children:`dashboards:write`})]}),`\n`,_jsxs(_components.p,{children:[`The quickest way to make a dashboard from a script or an AI agent: pass the measures\nyou want (“NC ROAS, NC MER, and Meta CPM”) and get back a finished view that opens in\nthe web app. The `,_jsx(_components.a,{href:`/cli/dashboard-view#build`,children:_jsx(_components.code,{children:`upstack dashboard view build`})}),` CLI\ncommand wraps this endpoint.`]}),`\n`,_jsx(Heading,{level:`2`,id:`layout`,children:`Layout`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Widgets default to `,_jsx(_components.code,{children:`sparkline`}),`. Each sparkline is 3 columns wide and 1 row tall,\nand they fill rows of four in array order.`]}),`\n`,_jsxs(_components.li,{children:[`Any other `,_jsx(_components.code,{children:`chartType`}),` gets a full-width tile (12 columns, 4 rows) stacked below all\nthe sparklines, in array order.`]}),`\n`,_jsxs(_components.li,{children:[`The view has a flat widget list and no sections. Rearrange it later in the web app\nor with `,_jsx(_components.a,{href:`/api-reference/dashboards/update-a-dashboard-view`,children:`Update a dashboard view`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`defaults`,children:`Defaults`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Default when omitted`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`type`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`view`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`attribution.model`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`first_click`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`attribution.window`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`30`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`granularity`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`day`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`dateRange`})}),_jsx(_components.td,{children:`30 days ago through today (UTC)`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`widget `,_jsx(_components.code,{children:`chartType`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`sparkline`})})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`widget `,_jsx(_components.code,{children:`title`})]}),_jsx(_components.td,{children:`the measure id`})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`order`}),` is always `,_jsx(_components.code,{children:`0`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`validation`,children:`Validation`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Measure ids aren’t checked against the catalog. A typo is saved as a widget for a\nmeasure that doesn’t exist, so confirm ids with\n`,_jsx(_components.a,{href:`/api-reference/catalog/list-available-measures`,children:`List available measures`}),` first.\nThe same call returns each measure’s `,_jsx(_components.code,{children:`shortTitle`}),`, which makes a good `,_jsx(_components.code,{children:`title`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Titles are capped at 200 characters and `,_jsx(_components.code,{children:`name`}),` at 200.`]}),`\n`,_jsx(_components.li,{children:`Every call creates a new view, even with a name that already exists.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api-reference/dashboards/create-a-dashboard-view`,children:`Create a dashboard view`}),` when you need exact widget positions or sections.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api-reference/dashboards/get-a-dashboard-view`,children:`Get a dashboard view`}),` to read the result back.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Build a dashboard from a list of measures","description":"Create a dashboard from a list of measure ids. The server lays out KPI sparkline tiles four per row and fills in attribution, granularity, and date range defaults.","deprecated":null,"version":null,"sidebarTitle":"Build a dashboard from a measure list","keywords":["build dashboard","KPI dashboard","dashboard preset","dashboards API","Upstack Data API"],"openapi":"/api-reference/openapi.yaml post /accounts/api/dashboard/views/from-preset","href":"/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Layout","slug":"layout","depth":2,"children":[]},{"title":"Defaults","slug":"defaults","depth":2,"children":[]},{"title":"Validation","slug":"validation","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/upstackdata-afbed50d/b64b07ede631efed/intercom-customize.js","/_mintlify/custom/upstackdata-afbed50d/1cbfb793dc2ec470/upstack-pixel.js","/_mintlify/custom/upstackdata-afbed50d/e2ccc0353f9bb1f8/sidebar-footer-scroll-fix.js"],"openApiReferenceData":{"operation":{"tags":["Dashboards"],"operationId":"createDashboardViewFromPreset","summary":"Build a dashboard from a measure list (preset)","description":"Create a dashboard from a list of measure ids. The server lays out KPI sparkline tiles four per row and fills in attribution, granularity, and date range defaults.","x-mint":{"metadata":{"title":"Build a dashboard from a list of measures","sidebarTitle":"Build a dashboard from a measure list","keywords":["build dashboard","KPI dashboard","dashboard preset","dashboards API","Upstack Data API"]},"content":"**Required scope:** `dashboards:write`\n\nThe quickest way to make a dashboard from a script or an AI agent: pass the measures\nyou want (\"NC ROAS, NC MER, and Meta CPM\") and get back a finished view that opens in\nthe web app. The [`upstack dashboard view build`](/cli/dashboard-view#build) CLI\ncommand wraps this endpoint.\n\n## Layout\n\n- Widgets default to `sparkline`. Each sparkline is 3 columns wide and 1 row tall,\n and they fill rows of four in array order.\n- Any other `chartType` gets a full-width tile (12 columns, 4 rows) stacked below all\n the sparklines, in array order.\n- The view has a flat widget list and no sections. Rearrange it later in the web app\n or with [Update a dashboard view](/api-reference/dashboards/update-a-dashboard-view).\n\n## Defaults\n\n| Field | Default when omitted |\n| --- | --- |\n| `type` | `view` |\n| `attribution.model` | `first_click` |\n| `attribution.window` | `30` |\n| `granularity` | `day` |\n| `dateRange` | 30 days ago through today (UTC) |\n| widget `chartType` | `sparkline` |\n| widget `title` | the measure id |\n\n`order` is always `0`.\n\n## Validation\n\n- Measure ids aren't checked against the catalog. A typo is saved as a widget for a\n measure that doesn't exist, so confirm ids with\n [List available measures](/api-reference/catalog/list-available-measures) first.\n The same call returns each measure's `shortTitle`, which makes a good `title`.\n- Titles are capped at 200 characters and `name` at 200.\n- Every call creates a new view, even with a name that already exists.\n\n## Related\n\n- [Create a dashboard view](/api-reference/dashboards/create-a-dashboard-view) when you need exact widget positions or sections.\n- [Get a dashboard view](/api-reference/dashboards/get-a-dashboard-view) to read the result back.\n"},"requestBody":"955b346d-0cb5-46de-8fe7-7c9d96d50b07","responses":{"200":"6d48ad4c-28a6-4d15-bb3b-472fa7ef3dd7","400":"3234471b-3f32-4cfd-90ce-ab3a9d053150","401":"7e265db9-fc2d-464d-809c-4aae6b2af427","403":"e8e2244c-9dc1-4fb5-91db-5c09e53a0164"},"method":"post","type":"path","servers":["2bbb3e85-633d-4371-b828-47a29d5899c5"],"security":["f19e0b22-afd0-4760-b88e-dce1773111cb"],"path":"/accounts/api/dashboard/views/from-preset","baseUrlOptions":["https://api.upstackdata.com"],"title":"Build a dashboard from a measure list (preset)","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","widgets"],"properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"Display name for the new view. Names don't have to be unique.","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"widgets":{"type":"array","minItems":1,"description":"One entry per widget. Sparkline tiles fill rows of four in array order; other\nchart types stack below all the sparklines, full width, also in array order.\n","items":{"type":"object","required":["measure"],"properties":{"measure":{"type":"string","description":"Measure id for the widget. It isn't checked against the catalog, so confirm it\nwith [List available measures](/api-reference/catalog/list-available-measures) first.\n","example":"core.new_customer_roas","isRequired":true,"uniqueKey":"widgets.items.[INDEX].measure","typeLabel":"string"},"chartType":{"type":"string","enum":["bar","line","sparkline","pie","scatter","area","dimensionTable","table","attributionTable","kpi","gauge","heatmap","histogram","boxplot","treemap"],"description":"Defaults to `sparkline` if omitted.","uniqueKey":"widgets.items.[INDEX].chartType","typeLabel":"enum\u003cstring>"},"title":{"type":"string","maxLength":200,"description":"Display title. If omitted, the measure id is used. For friendly titles, pass\nthe measure's `shortTitle` from\n[List available measures](/api-reference/catalog/list-available-measures).\n","uniqueKey":"widgets.items.[INDEX].title","typeLabel":"string"},"dimension":{"type":"string","description":"Dimension to break the widget down by. Most useful on non-sparkline charts.","uniqueKey":"widgets.items.[INDEX].dimension","typeLabel":"string"}},"uniqueKey":"widgets.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"widgets","typeLabel":"object[]"},"type":{"type":"string","enum":["view","attribution_view","pnl_view"],"description":"Defaults to `view`.","uniqueKey":"type","typeLabel":"enum\u003cstring>"},"layout":{"type":"string","enum":["kpi-grid"],"description":"Auto-layout strategy. Default `kpi-grid`.","uniqueKey":"layout","typeLabel":"enum\u003cstring>"},"attribution":{"type":"object","description":"Attribution defaults saved with the view.","properties":{"model":{"type":"string","description":"Defaults to `first_click`.","enum":["first_click","last_click","any_click"],"uniqueKey":"attribution.model","typeLabel":"enum\u003cstring>"},"window":{"type":"integer","minimum":1,"description":"Lookback window in days. Defaults to `30`.","uniqueKey":"attribution.window","typeLabel":"integer"}},"uniqueKey":"attribution","typeLabel":"object"},"granularity":{"type":"string","description":"Defaults to `day`.","enum":["none","second","minute","hour","day","week","month","quarter","year"],"uniqueKey":"granularity","typeLabel":"enum\u003cstring>"},"dateRange":{"type":"object","required":["start","end"],"description":"Defaults to 30 days ago through today (UTC).","properties":{"start":{"type":"string","format":"date","description":"First day of the range, as an ISO 8601 date.","example":"2026-04-01","isRequired":true,"uniqueKey":"dateRange.start","typeLabel":"string\u003cdate>"},"end":{"type":"string","format":"date","description":"Last day of the range, as an ISO 8601 date. Included in the results.","example":"2026-04-30","isRequired":true,"uniqueKey":"dateRange.end","typeLabel":"string\u003cdate>"}},"uniqueKey":"dateRange","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"minimal":{"title":"minimal","value":{"name":"NC + Meta Pulse","widgets":[{"measure":"core.new_customer_roas","title":"NC ROAS"},{"measure":"core.new_customer_mer","title":"NC MER"},{"measure":"meta.cpm","title":"Meta CPM"}]}},"withChart":{"title":"withChart","value":{"name":"Q3 efficiency","attribution":{"model":"last_click","window":7},"granularity":"week","dateRange":{"start":"2026-07-01","end":"2026-09-30"},"widgets":[{"measure":"core.roas","title":"ROAS"},{"measure":"core.mer","title":"MER"},{"measure":"meta.spend","title":"Meta spend"},{"measure":"google.spend","title":"Google spend"},{"measure":"orders.net_revenue","title":"Net revenue by source","chartType":"bar","dimension":"utm_source"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"6d48ad4c-28a6-4d15-bb3b-472fa7ef3dd7":{"description":"The created view.","content":{"application/json":{"schema":{"type":"object","required":["dashboardView"],"properties":{"dashboardView":{"type":"object","required":["id","pk","sk","pixelId","type","name","configuration","createdAt","updatedAt","createdBy","updatedBy"],"properties":{"id":{"type":"string","description":"The view id (a ULID). Use it as the `dashboardViewId` path parameter.","isRequired":true,"uniqueKey":"dashboardView.id","typeLabel":"string"},"pk":{"type":"string","description":"Storage key, `VIEW#` followed by the view id. Ignore it.","isRequired":true,"uniqueKey":"dashboardView.pk","typeLabel":"string"},"sk":{"type":"string","description":"The view's dashboard type (`view`, `attribution_view`, or `pnl_view`).","enum":["view","attribution_view","pnl_view"],"isRequired":true,"uniqueKey":"dashboardView.sk","typeLabel":"enum\u003cstring>"},"pixelId":{"type":"string","description":"The pixel that owns the view.","isRequired":true,"uniqueKey":"dashboardView.pixelId","typeLabel":"string"},"type":{"type":"string","enum":["view"],"description":"Record kind, always `view`. Read `sk` for the dashboard type.","isRequired":true,"uniqueKey":"dashboardView.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Display name.","isRequired":true,"uniqueKey":"dashboardView.name","typeLabel":"string"},"configuration":{"type":"object","required":["attributionModel","attributionWindow","granularity","dateRange","grid","widgets"],"description":"Everything the web app needs to render a view. The server checks the top-level\nfields and each section's fields, but stores widget objects as sent, so a malformed\nwidget is saved without an error.\n","properties":{"attributionModel":{"type":"string","description":"Default attribution model. The legacy value `last_touch` is accepted and saved as `last_click`.","enum":["first_click","last_click","any_click"],"isRequired":true,"uniqueKey":"dashboardView.configuration.attributionModel","typeLabel":"enum\u003cstring>"},"attributionWindow":{"type":"integer","description":"Attribution lookback window in days.","isRequired":true,"uniqueKey":"dashboardView.configuration.attributionWindow","typeLabel":"integer"},"granularity":{"type":"string","enum":["none","second","minute","hour","day","week","month","quarter","year"],"description":"Time bucket for result rows. `none` returns one row per dimension combination\ninstead of a time series.\n","isRequired":true,"uniqueKey":"dashboardView.configuration.granularity","typeLabel":"enum\u003cstring>"},"dateRange":{"type":"object","required":["start","end"],"description":"Date range saved with the view.","properties":{"start":{"type":"string","format":"date","description":"First day of the range, as an ISO 8601 date.","example":"2026-04-01","isRequired":true,"uniqueKey":"dashboardView.configuration.dateRange.start","typeLabel":"string\u003cdate>"},"end":{"type":"string","format":"date","description":"Last day of the range, as an ISO 8601 date. Included in the results.","example":"2026-04-30","isRequired":true,"uniqueKey":"dashboardView.configuration.dateRange.end","typeLabel":"string\u003cdate>"}},"isRequired":true,"uniqueKey":"dashboardView.configuration.dateRange","typeLabel":"object"},"grid":{"type":"object","required":["maxWidth"],"description":"Grid settings for the widget layout.","properties":{"maxWidth":{"type":"integer","description":"Maximum grid width in pixels.","example":1200,"isRequired":true,"uniqueKey":"dashboardView.configuration.grid.maxWidth","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"dashboardView.configuration.grid","typeLabel":"object"},"widgets":{"type":"array","description":"Flat array of all widgets across all sections. Dual-written: when\n`sections` is present, this array is a flattened mirror of the\nwidgets inside each section (in section render order). Older\nconsumers that read the flat list stay correct; clients writing\nthe configuration should set both fields in sync.\n","items":{"type":"object","required":["id","title","chartType","layout","dataConfig"],"properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].id","typeLabel":"string"},"title":{"type":"string","isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].title","typeLabel":"string"},"chartType":{"type":"string","enum":["bar","line","sparkline","pie","scatter","area","dimensionTable","table","attributionTable","kpi","gauge","heatmap","histogram","boxplot","treemap"],"isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].chartType","typeLabel":"enum\u003cstring>"},"layout":{"type":"object","required":["x","y","rows","columns","minColumns","maxColumns","minRows","maxRows","static"],"properties":{"x":{"type":"integer","minimum":0,"maximum":11,"isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].layout.x","typeLabel":"integer"},"y":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].layout.y","typeLabel":"integer"},"rows":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].layout.rows","typeLabel":"integer"},"columns":{"type":"integer","minimum":1,"maximum":12,"isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].layout.columns","typeLabel":"integer"},"minColumns":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].layout.minColumns","typeLabel":"integer"},"maxColumns":{"type":"integer","maximum":12,"isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].layout.maxColumns","typeLabel":"integer"},"minRows":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].layout.minRows","typeLabel":"integer"},"maxRows":{"type":"integer","isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].layout.maxRows","typeLabel":"integer"},"static":{"type":"boolean","isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].layout.static","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].layout","typeLabel":"object"},"dataConfig":{"type":"object","properties":{"measures":{"type":"array","items":{"type":"string","uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].dataConfig.measures.items.[INDEX]","typeLabel":"string"},"description":"Canonical measure ids (e.g. `core.new_customer_roas`).","uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].dataConfig.measures","typeLabel":"string[]"},"dimensions":{"type":"array","items":{"type":"string","uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].dataConfig.dimensions.items.[INDEX]","typeLabel":"string"},"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].dataConfig.dimensions","typeLabel":"string[]"},"filters":{"type":"array","items":{"type":"object","uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].dataConfig.filters.items.[INDEX]","typeLabel":"object"},"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].dataConfig.filters","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].dataConfig","typeLabel":"object"},"sourceWidgetId":{"type":"string","description":"Present on widgets inside the Pinned section. Links the pinned copy\nback to the original widget id in the source section so unpin can\nresolve from either end.\n","uniqueKey":"dashboardView.configuration.widgets.items.[INDEX].sourceWidgetId","typeLabel":"string"}},"uniqueKey":"dashboardView.configuration.widgets.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"dashboardView.configuration.widgets","typeLabel":"object[]"},"refundDateAttribution":{"type":"string","description":"Overrides the account-level setting for this view.","enum":["refund_date","order_date"],"uniqueKey":"dashboardView.configuration.refundDateAttribution","typeLabel":"enum\u003cstring>"},"filters":{"type":"object","description":"Date-picker / compare state (e.g. `{ preset: \"last30\", isCompare: false }`).\nFree-form; the in-app dashboard editor owns the shape.\n","uniqueKey":"dashboardView.configuration.filters","typeLabel":"object"},"sections":{"type":"array","description":"Authoritative grouping of widgets into labelled sections. When\npresent, the web app renders sections in ordinal order (Pinned\nfirst via `ordinal: -1`), and uses each section's `widgets` for\nits content. Optional for backwards compatibility with views\ncreated before sections existed. Send a `sections` array with\n[Update a dashboard view](/api-reference/dashboards/update-a-dashboard-view)\nto migrate an older view.\n","items":{"type":"object","required":["id","title","ordinal","collapsed","hidden","layoutMode","widgets"],"properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"title":{"type":"string","maxLength":200,"isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].title","typeLabel":"string"},"ordinal":{"type":"integer","minimum":-1,"description":"Render order. The Pinned section uses `-1` (renders first);\nnon-pinned sections use `0, 1, 2, …`. Clients should sort by\nordinal and may renormalize to keep the sequence contiguous.\n","isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].ordinal","typeLabel":"integer"},"collapsed":{"type":"boolean","isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].collapsed","typeLabel":"boolean"},"hidden":{"type":"boolean","isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].hidden","typeLabel":"boolean"},"layoutMode":{"type":"string","enum":["auto","1_column","2_columns","3_columns","4_columns"],"description":"How widgets are laid out inside a section. `auto` packs by add order;\nthe `N_columns` variants force a fixed-column grid.\n","isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].layoutMode","typeLabel":"enum\u003cstring>"},"widgets":{"type":"array","items":{"type":"object","required":["id","title","chartType","layout","dataConfig"],"properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].id","typeLabel":"string"},"title":{"type":"string","isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].title","typeLabel":"string"},"chartType":{"type":"string","enum":["bar","line","sparkline","pie","scatter","area","dimensionTable","table","attributionTable","kpi","gauge","heatmap","histogram","boxplot","treemap"],"isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].chartType","typeLabel":"enum\u003cstring>"},"layout":{"type":"object","required":["x","y","rows","columns","minColumns","maxColumns","minRows","maxRows","static"],"properties":{"x":{"type":"integer","minimum":0,"maximum":11,"isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].layout.x","typeLabel":"integer"},"y":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].layout.y","typeLabel":"integer"},"rows":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].layout.rows","typeLabel":"integer"},"columns":{"type":"integer","minimum":1,"maximum":12,"isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].layout.columns","typeLabel":"integer"},"minColumns":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].layout.minColumns","typeLabel":"integer"},"maxColumns":{"type":"integer","maximum":12,"isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].layout.maxColumns","typeLabel":"integer"},"minRows":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].layout.minRows","typeLabel":"integer"},"maxRows":{"type":"integer","isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].layout.maxRows","typeLabel":"integer"},"static":{"type":"boolean","isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].layout.static","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].layout","typeLabel":"object"},"dataConfig":{"type":"object","properties":{"measures":{"type":"array","items":{"type":"string","uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].dataConfig.measures.items.[INDEX]","typeLabel":"string"},"description":"Canonical measure ids (e.g. `core.new_customer_roas`).","uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].dataConfig.measures","typeLabel":"string[]"},"dimensions":{"type":"array","items":{"type":"string","uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].dataConfig.dimensions.items.[INDEX]","typeLabel":"string"},"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].dataConfig.dimensions","typeLabel":"string[]"},"filters":{"type":"array","items":{"type":"object","uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].dataConfig.filters.items.[INDEX]","typeLabel":"object"},"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].dataConfig.filters","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].dataConfig","typeLabel":"object"},"sourceWidgetId":{"type":"string","description":"Present on widgets inside the Pinned section. Links the pinned copy\nback to the original widget id in the source section so unpin can\nresolve from either end.\n","uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX].sourceWidgetId","typeLabel":"string"}},"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].widgets","typeLabel":"object[]"},"sectionType":{"type":"string","description":"Omit on normal sections; set to `pinned` for the Pinned section.","enum":["default","pinned"],"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].sectionType","typeLabel":"enum\u003cstring>"},"catalogId":{"type":"string","enum":["custom_metrics","meta_ads","google_ads","tiktok_ads","expenses","web_analytics","store","attribution"],"description":"Set on sections added from the web app's section catalog. Omit on sections you create.","uniqueKey":"dashboardView.configuration.sections.items.[INDEX].catalogId","typeLabel":"enum\u003cstring>"},"settings":{"type":"object","description":"Per-section overrides. Any field left undefined falls back to the\nview-level `defaultSettings` (and ultimately to product defaults).\n","properties":{"density":{"type":"string","enum":["compact","normal"],"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].settings.density","typeLabel":"enum\u003cstring>"},"pacing":{"type":"boolean","description":"Show pacing indicators on KPI widgets in this section.","uniqueKey":"dashboardView.configuration.sections.items.[INDEX].settings.pacing","typeLabel":"boolean"},"theme":{"type":"string","enum":["light","dark"],"description":"Widget color theme.","uniqueKey":"dashboardView.configuration.sections.items.[INDEX].settings.theme","typeLabel":"enum\u003cstring>"},"backgroundColor":{"type":"string","maxLength":50,"description":"Section background color, as a CSS color string.","uniqueKey":"dashboardView.configuration.sections.items.[INDEX].settings.backgroundColor","typeLabel":"string"},"headerStyle":{"type":"string","enum":["default","minimal","accent"],"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].settings.headerStyle","typeLabel":"enum\u003cstring>"},"filters":{"type":"array","description":"Saved per-section filters, in the web app's dashboard-filter format. This is\nnot the `filters` tree the query endpoints take. Copy the value from a view you\nread with [Get a dashboard view](/api-reference/dashboards/get-a-dashboard-view)\nrather than building it by hand.\n","items":{"type":"object","additionalProperties":true,"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].settings.filters.items.[INDEX]","typeLabel":"object"},"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].settings.filters","typeLabel":"object[]"}},"uniqueKey":"dashboardView.configuration.sections.items.[INDEX].settings","typeLabel":"object"}},"uniqueKey":"dashboardView.configuration.sections.items.[INDEX]","typeLabel":"object"},"uniqueKey":"dashboardView.configuration.sections","typeLabel":"object[]"},"defaultSettings":{"type":"object","description":"View-level defaults inherited by sections that don't override a\ngiven setting.\n","properties":{"density":{"type":"string","enum":["compact","normal"],"uniqueKey":"dashboardView.configuration.defaultSettings.density","typeLabel":"enum\u003cstring>"},"pacing":{"type":"boolean","description":"Show pacing indicators on KPI widgets in this section.","uniqueKey":"dashboardView.configuration.defaultSettings.pacing","typeLabel":"boolean"},"theme":{"type":"string","enum":["light","dark"],"description":"Widget color theme.","uniqueKey":"dashboardView.configuration.defaultSettings.theme","typeLabel":"enum\u003cstring>"},"backgroundColor":{"type":"string","maxLength":50,"description":"Section background color, as a CSS color string.","uniqueKey":"dashboardView.configuration.defaultSettings.backgroundColor","typeLabel":"string"},"headerStyle":{"type":"string","enum":["default","minimal","accent"],"uniqueKey":"dashboardView.configuration.defaultSettings.headerStyle","typeLabel":"enum\u003cstring>"},"filters":{"type":"array","description":"Saved per-section filters, in the web app's dashboard-filter format. This is\nnot the `filters` tree the query endpoints take. Copy the value from a view you\nread with [Get a dashboard view](/api-reference/dashboards/get-a-dashboard-view)\nrather than building it by hand.\n","items":{"type":"object","additionalProperties":true,"uniqueKey":"dashboardView.configuration.defaultSettings.filters.items.[INDEX]","typeLabel":"object"},"uniqueKey":"dashboardView.configuration.defaultSettings.filters","typeLabel":"object[]"}},"uniqueKey":"dashboardView.configuration.defaultSettings","typeLabel":"object"}},"isRequired":true,"uniqueKey":"dashboardView.configuration","typeLabel":"object"},"createdAt":{"type":"string","format":"date-time","description":"When the view was created.","isRequired":true,"uniqueKey":"dashboardView.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"When the view was last changed.","isRequired":true,"uniqueKey":"dashboardView.updatedAt","typeLabel":"string\u003cdate-time>"},"createdBy":{"type":"string","description":"User id of the person who created the view. Empty string for views created with an API key.","isRequired":true,"uniqueKey":"dashboardView.createdBy","typeLabel":"string"},"updatedBy":{"type":"string","description":"User id of the last person to change the view. Empty string when the last change came from an API key.","isRequired":true,"uniqueKey":"dashboardView.updatedBy","typeLabel":"string"},"order":{"type":"integer","description":"Sort position among the pixel's views.","uniqueKey":"dashboardView.order","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"dashboardView","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"minimal":{"title":"minimal","value":{"dashboardView":{"pk":"VIEW#01K7C9D1E3F5G7H9J1K3M5N7P9","sk":"view","id":"01K7C9D1E3F5G7H9J1K3M5N7P9","pixelId":"5f1e6a4f-2b7c-4d1e-9a3f-8c6b2e0d4a71","type":"view","name":"NC + Meta Pulse","configuration":{"attributionModel":"first_click","attributionWindow":30,"granularity":"day","dateRange":{"start":"2026-09-12","end":"2026-10-12"},"filters":{"compareDateRange":null,"preset":"last30","comparePreset":"previousPeriod","isCompare":false,"enableCompareDate":false},"grid":{"maxWidth":1200},"widgets":[{"id":"0c4e2a7b-91d3-4f5a-8b6c-2d7e9f1a3b5c","title":"NC ROAS","chartType":"sparkline","layout":{"x":0,"y":0,"rows":1,"columns":3,"minColumns":3,"maxColumns":3,"minRows":1,"maxRows":1,"static":false},"dataConfig":{"measures":["core.new_customer_roas"],"dimensions":[],"filters":[]}},{"id":"9d1e3f5a-7b9c-4d2e-8f0a-1b3c5d7e9f2a","title":"NC MER","chartType":"sparkline","layout":{"x":3,"y":0,"rows":1,"columns":3,"minColumns":3,"maxColumns":3,"minRows":1,"maxRows":1,"static":false},"dataConfig":{"measures":["core.new_customer_mer"],"dimensions":[],"filters":[]}},{"id":"4a6c8e0b-2d4f-4a6b-9c8d-0e2f4a6b8c1d","title":"Meta CPM","chartType":"sparkline","layout":{"x":6,"y":0,"rows":1,"columns":3,"minColumns":3,"maxColumns":3,"minRows":1,"maxRows":1,"static":false},"dataConfig":{"measures":["meta.cpm"],"dimensions":[],"filters":[]}}]},"order":0,"createdAt":"2026-10-12T15:58:20.640Z","createdBy":"","updatedAt":"2026-10-12T15:58:20.640Z","updatedBy":""}}}},"exampleType":"examples"}},"exampleType":"examples"},"3234471b-3f32-4cfd-90ce-ab3a9d053150":{"description":"Validation error. Includes an `errors` array with per-field detail.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Per-field validation errors (present on 400 responses).","items":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"key":{"type":"string","uniqueKey":"errors.items.[INDEX].key","typeLabel":"string"},"path":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].path.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.items.[INDEX].path","typeLabel":"string[]"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","errors":[{"message":"\u003cstring>","key":"\u003cstring>","path":["\u003cstring>"]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"7e265db9-fc2d-464d-809c-4aae6b2af427":{"description":"The `x-api-key` or `x-pixel-id` header is missing. The request is rejected\nbefore it reaches the API, and the body is `{\"message\": \"Unauthorized\"}`.\nA key that is present but not accepted returns `403`, not `401`.\n","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Per-field validation errors (present on 400 responses).","items":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"key":{"type":"string","uniqueKey":"errors.items.[INDEX].key","typeLabel":"string"},"path":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].path.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.items.[INDEX].path","typeLabel":"string[]"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","errors":[{"message":"\u003cstring>","key":"\u003cstring>","path":["\u003cstring>"]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"e8e2244c-9dc1-4fb5-91db-5c09e53a0164":{"description":"The key was rejected, or it is valid but not allowed to do this. Either:\n\n- the key is unknown, revoked, or expired, or the pixel is inactive — the body is\n `{\"Message\": \"User is not authorized to access this resource with an explicit deny\n in an identity-based policy\"}` (note the capital `M`);\n- the key doesn't carry the scope this endpoint needs, or the body `pixelId` doesn't\n match the `x-pixel-id` header — the body is `{\"message\": \"…\"}` as described below.\n","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Per-field validation errors (present on 400 responses).","items":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"key":{"type":"string","uniqueKey":"errors.items.[INDEX].key","typeLabel":"string"},"path":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].path.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.items.[INDEX].path","typeLabel":"string[]"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","errors":[{"message":"\u003cstring>","key":"\u003cstring>","path":["\u003cstring>"]}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"f19e0b22-afd0-4760-b88e-dce1773111cb":{"apiKey":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your Upstack API key. Starts with `upstack_`.","scopes":[],"schemeName":"apiKey"},"pixelId":{"type":"apiKey","in":"header","name":"x-pixel-id","description":"The pixel id the request targets.","scopes":[],"schemeName":"pixelId"}}},"servers":{"2bbb3e85-633d-4371-b828-47a29d5899c5":{"url":"https://api.upstackdata.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your Upstack API key. Starts with `upstack_`.","scopes":[],"schemeName":"apiKey"},"schema":{"title":"x-api-key","type":"string","description":"Your Upstack API key. Starts with `upstack_`.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKey","name":"x-api-key"},{"scheme":{"type":"apiKey","in":"header","name":"x-pixel-id","description":"The pixel id the request targets.","scopes":[],"schemeName":"pixelId"},"schema":{"title":"x-pixel-id","type":"string","description":"The pixel id the request targets.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"pixelId","name":"x-pixel-id"}],"title":"apiKey \u0026 pixelId"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"upstackdata-afbed50d","siteName":"Upstack Data","title":"Build a dashboard from a list of measures - Upstack Data","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-04T13:39:43.920Z","originalFileLocation":"api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create a dashboard from a list of measure ids. The server lays out KPI sparkline tiles four per row and fills in attribution, granularity, and date range defaults.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Upstack Data\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/upstackdata-afbed50d/3BK6qL6Jr5lRaaY0/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/upstackdata-afbed50d/3BK6qL6Jr5lRaaY0/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/upstackdata-afbed50d/3BK6qL6Jr5lRaaY0/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/upstackdata-afbed50d/3BK6qL6Jr5lRaaY0/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/upstackdata-afbed50d/3BK6qL6Jr5lRaaY0/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/upstackdata-afbed50d/3BK6qL6Jr5lRaaY0/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/upstackdata-afbed50d/3BK6qL6Jr5lRaaY0/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/upstackdata-afbed50d/3BK6qL6Jr5lRaaY0/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/upstackdata-afbed50d/3BK6qL6Jr5lRaaY0/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Build a dashboard from a list of measures - Upstack Data\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a dashboard from a list of measure ids. The server lays out KPI sparkline tiles four per row and fills in attribution, granularity, and date range defaults.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Upstack Data\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.upstackdata.com/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://upstackdata-afbed50d.mintlify.site/_mintlify/api/og/v2?division=DASHBOARDS\u0026amp;title=Build+a+dashboard+from+a+list+of+measures\u0026amp;description=Create+a+dashboard+from+a+list+of+measure+ids.+The+server+lays+out+KPI+sparkline+tiles+four+per+row+and+fills+in+attribution%2C+granularity%2C+and+date+range+defaul\u0026amp;theme=b279b8bf440b9d86f43d4b66\u0026amp;signature=e688d9b268c3c36f5542112e3fc386d2cbc7fb65fb89387ebe6a0d72c19c3cf8\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Build a dashboard from a list of measures - Upstack Data\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a dashboard from a list of measure ids. The server lays out KPI sparkline tiles four per row and fills in attribution, granularity, and date range defaults.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://upstackdata-afbed50d.mintlify.site/_mintlify/api/og/v2?division=DASHBOARDS\u0026amp;title=Build+a+dashboard+from+a+list+of+measures\u0026amp;description=Create+a+dashboard+from+a+list+of+measure+ids.+The+server+lays+out+KPI+sparkline+tiles+four+per+row+and+fills+in+attribution%2C+granularity%2C+and+date+range+defaul\u0026amp;theme=b279b8bf440b9d86f43d4b66\u0026amp;signature=e688d9b268c3c36f5542112e3fc386d2cbc7fb65fb89387ebe6a0d72c19c3cf8\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/upstackdata-afbed50d/3BK6qL6Jr5lRaaY0/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Upstack Data\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4230b4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.upstackdata.com/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.upstackdata.com/#organization\",\"name\":\"Upstack Data\",\"url\":\"https://docs.upstackdata.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/upstackdata-afbed50d/40dgTTn1PLjePhJa/logo/light.svg?fit=max\u0026auto=format\u0026n=40dgTTn1PLjePhJa\u0026q=85\u0026s=598c05fb87860ddc1b6b7640b41e136c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.upstackdata.com#website\",\"name\":\"Upstack Data\",\"url\":\"https://docs.upstackdata.com\",\"publisher\":{\"@id\":\"https://docs.upstackdata.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.upstackdata.com/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset#webpage\",\"url\":\"https://docs.upstackdata.com/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset\",\"name\":\"Build a dashboard from a list of measures\",\"description\":\"Create a dashboard from a list of measure ids. The server lays out KPI sparkline tiles four per row and fills in attribution, granularity, and date range defaults.\",\"dateModified\":\"2026-11-04T13:39:43.920Z\",\"isPartOf\":{\"@id\":\"https://docs.upstackdata.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.upstackdata.com/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.upstackdata.com/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"DASHBOARDS\",\"item\":\"https://docs.upstackdata.com/api-reference/dashboards/list-dashboard-views\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build a dashboard from a list of measures\",\"item\":\"https://docs.upstackdata.com/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.upstackdata.com/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset#apireference\",\"headline\":\"Build a dashboard from a list of measures\",\"name\":\"Build a dashboard from a list of measures\",\"description\":\"Create a dashboard from a list of measure ids. The server lays out KPI sparkline tiles four per row and fills in attribution, granularity, and date range defaults.\",\"url\":\"https://docs.upstackdata.com/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset\",\"mainEntityOfPage\":{\"@id\":\"https://docs.upstackdata.com/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset#webpage\"},\"dateModified\":\"2026-11-04T13:39:43.920Z\",\"keywords\":\"build dashboard, KPI dashboard, dashboard preset, dashboards API, Upstack Data API\",\"publisher\":{\"@id\":\"https://docs.upstackdata.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.upstackdata.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Upstack Data\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Upstack Data\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset.md","siteName":"Upstack Data","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/get-started/overview"}]},{"tab":"Pixel","pages":[{"title":"Pixel","href":"/pixel"}]},{"tab":"Event Tracking","pages":[{"title":"Event Tracking","href":"/event-tracking"}]},{"tab":"Metrics","pages":[{"title":"Metrics","href":"/reference/metrics"}]},{"tab":"API","groups":[{"group":"OVERVIEW","pages":[{"title":"Introduction","sidebarTitle":"Introduction","href":"/api-reference/introduction"},{"title":"Errors","sidebarTitle":"Errors","href":"/api-reference/errors"},{"title":"Rate limiting","sidebarTitle":"Rate limiting","href":"/api-reference/rate-limiting"}]},{"group":"ACCOUNT","pages":[{"title":"Get account details, owners, and subscription plan","deprecated":null,"version":null,"sidebarTitle":"Get the account","openapi":"/api-reference/openapi.yaml get /accounts/api/account","href":"/api-reference/account/get-the-account"},{"title":"Rename the account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /accounts/api/account","href":"/api-reference/account/rename-the-account"},{"title":"Get order settings and order exclusion filters","deprecated":null,"version":null,"sidebarTitle":"Get order settings","openapi":"/api-reference/openapi.yaml get /accounts/api/account/settings/order","href":"/api-reference/account/get-order-settings"},{"title":"Replace order settings and order exclusion filters","deprecated":null,"version":null,"sidebarTitle":"Replace order settings","openapi":"/api-reference/openapi.yaml put /accounts/api/account/settings/order","href":"/api-reference/account/replace-order-settings"}]},{"group":"CATALOG","pages":[{"title":"List available measures","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /db-mgmt/api/measures","href":"/api-reference/catalog/list-available-measures"},{"title":"List filter fields for analytics queries","deprecated":null,"version":null,"sidebarTitle":"List filter fields","openapi":"/api-reference/openapi.yaml get /db-mgmt/api/filters","href":"/api-reference/catalog/list-filter-fields"}]},{"group":"ANALYTICS","pages":[{"title":"Run an analytics query with measures and dimensions","deprecated":null,"version":null,"sidebarTitle":"Run an analytics query","openapi":"/api-reference/openapi.yaml post /db-mgmt/api/query","href":"/api-reference/analytics/run-an-analytics-query"},{"title":"Run an attribution query by UTM source, campaign, or ad","deprecated":null,"version":null,"sidebarTitle":"Run an attribution query","openapi":"/api-reference/openapi.yaml post /db-mgmt/api/query-attribution","href":"/api-reference/analytics/run-an-attribution-query"},{"title":"Run a cohort analysis for customer LTV and retention","deprecated":null,"version":null,"sidebarTitle":"Run a cohort analysis","openapi":"/api-reference/openapi.yaml post /db-mgmt/api/query-cohort-analysis","href":"/api-reference/analytics/run-a-cohort-analysis"},{"title":"List channel entities with optional metrics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /db-mgmt/api/query-channel-details","href":"/api-reference/analytics/list-channel-entities-with-optional-metrics"},{"title":"List ads with daily spend and performance metrics","deprecated":null,"version":null,"sidebarTitle":"List ads with metrics","openapi":"/api-reference/openapi.yaml post /db-mgmt/api/query-ads","href":"/api-reference/analytics/list-ads-with-optional-daily-metrics"}]},{"group":"DASHBOARDS","pages":[{"title":"List dashboard views for a pixel","deprecated":null,"version":null,"sidebarTitle":"List dashboard views","openapi":"/api-reference/openapi.yaml get /accounts/api/dashboard/views","href":"/api-reference/dashboards/list-dashboard-views"},{"title":"Get a dashboard view and its widget configuration","deprecated":null,"version":null,"sidebarTitle":"Get a dashboard view","openapi":"/api-reference/openapi.yaml get /accounts/api/dashboard/views/{dashboardViewId}","href":"/api-reference/dashboards/get-a-dashboard-view"},{"title":"Create a dashboard view from a full configuration","description":"Create a dashboard view from a complete configuration, with attribution and date defaults, sections, and widgets placed at exact grid positions.","deprecated":null,"version":null,"sidebarTitle":"Create a dashboard view","openapi":"/api-reference/openapi.yaml post /accounts/api/dashboard/views","href":"/api-reference/dashboards/create-a-dashboard-view"},{"title":"Build a dashboard from a list of measures","deprecated":null,"version":null,"sidebarTitle":"Build a dashboard from a measure list","openapi":"/api-reference/openapi.yaml post /accounts/api/dashboard/views/from-preset","href":"/api-reference/dashboards/build-a-dashboard-from-a-measure-list-preset"},{"title":"Duplicate a dashboard view","description":"Copy a dashboard view into a new view with the same name, dashboard type, sort order, and configuration, so you can change the copy without touching the original.","deprecated":null,"version":null,"sidebarTitle":"Duplicate a dashboard view","openapi":"/api-reference/openapi.yaml post /accounts/api/dashboard/views/{dashboardViewId}/copy","href":"/api-reference/dashboards/duplicate-a-dashboard-view"},{"title":"Update a dashboard view","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /accounts/api/dashboard/views/{dashboardViewId}","href":"/api-reference/dashboards/update-a-dashboard-view"},{"title":"Delete a dashboard view","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /accounts/api/dashboard/views/{dashboardViewId}","href":"/api-reference/dashboards/delete-a-dashboard-view"}]},{"group":"COSTS","pages":[{"title":"Get cost configuration for COGS, shipping, and fees","deprecated":null,"version":null,"sidebarTitle":"Get cost configuration","openapi":"/api-reference/openapi.yaml get /accounts/api/costs","href":"/api-reference/costs/get-cost-configuration"},{"title":"Update the global product override","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /accounts/api/costs/global-product-override","href":"/api-reference/costs/update-the-global-product-override"},{"title":"Update shipping cost settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /accounts/api/costs/shipping-settings","href":"/api-reference/costs/update-shipping-cost-settings"},{"title":"Add a cost line","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /accounts/api/costs/lines","href":"/api-reference/costs/add-a-cost-line"},{"title":"Update an order, payment, shipping, or recurring cost line","deprecated":null,"version":null,"sidebarTitle":"Update a cost line","openapi":"/api-reference/openapi.yaml put /accounts/api/costs/lines/{lineId}","href":"/api-reference/costs/update-a-cost-line"},{"title":"Delete a cost line","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /accounts/api/costs/lines/{lineId}","href":"/api-reference/costs/delete-a-cost-line"}]},{"group":"PRODUCTS","pages":[{"title":"Search products","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /accounts/api/products/search","href":"/api-reference/products/search-products"},{"title":"Get a product variant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /accounts/api/products/{productId}/{variantId}/cost","href":"/api-reference/products/get-a-product-variant"},{"title":"Set a variant's handling fee","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /accounts/api/products/{productId}/{variantId}/handling-fee","href":"/api-reference/products/set-a-variants-handling-fee"},{"title":"Add a COGS line to a product variant","deprecated":null,"version":null,"sidebarTitle":"Add a COG line","openapi":"/api-reference/openapi.yaml post /accounts/api/products/{productId}/{variantId}/cogs","href":"/api-reference/products/add-a-cog-line-to-a-variant"},{"title":"Update a COGS line on a product variant","deprecated":null,"version":null,"sidebarTitle":"Update a COG line","openapi":"/api-reference/openapi.yaml put /accounts/api/products/{productId}/{variantId}/cogs/{cogId}","href":"/api-reference/products/update-a-cog-line"},{"title":"Delete a COGS line from a product variant","deprecated":null,"version":null,"sidebarTitle":"Delete a COG line","openapi":"/api-reference/openapi.yaml delete /accounts/api/products/{productId}/{variantId}/cogs/{cogId}","href":"/api-reference/products/delete-a-cog-line"}]},{"group":"EVENTS","pages":[{"title":"Send events via Upstack Conversion API","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /tr/api/events","href":"/api-reference/events/send-events-via-upstack-conversion-api"}]}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/install"}]}]},"basePath":"","title":"Build a dashboard from a list of measures - Upstack Data","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}