Returns seven engagement metrics for your organization: presentations sent, opened, average consumption, CTA clicks, questions asked, appointments booked, and contracts signed. Each metric includes a percentChange compared with the equal-length window immediately before the requested one, and every rate includes a directional flag.
The response also includes three breakdowns for the requested window, without a percentChange: funnel (Created → Sent → Opened → Started → Completed for presentations created in the window), visits (visits per opened presentation), and deliveryPath (opened presentations that arrived without an email open or without an email send, plus opened presentations counted by the utm_source their link was shared with).
Provide since and until together for a custom window, or omit both for the last 30 days ending now. If the window contains too many presentations, AI Presentations returns 422. Narrow the window and retry. If only the prior comparison window is too large, the request still succeeds and every percentChange is null.
Activity from a browser signed in to AI Presentations is left out of average consumption, CTA clicks, and questions asked, so previewing your own presentation link doesn’t inflate them. That activity still counts toward opened. A teammate viewing a link on a device where they never signed in is counted as a prospect. Activity recorded before this exclusion shipped is counted as prospect activity.
Pass deckId to limit the summary to one template. A deckId that doesn’t belong to your organization returns a zero-valued summary rather than 404.
Limit the summary to one template. An empty value is treated as absent.
Response
Engagement summary
The seven engagement metrics for your organization over the requested window, plus the engagement funnel, visits per opened presentation, and delivery path counts.
Presentations whose viewer page was loaded at least once. This is not the email-open signal. Includes opens by a signed-in member of your organization, so previewing your own presentation link counts as an open. rate.denominator is the number of presentations created in the window.
Slides consumed out of the total slides in opened presentations created in the window. Unopened presentations are excluded, so this reflects viewing behavior rather than open rate. Slides viewed by a signed-in member of your organization are excluded.
Call-to-action clicks. rate.denominator excludes presentations from templates with no call to action configured. Clicks by a signed-in member of your organization are excluded.
Visits per opened presentation. AI Presentations splits a presentation's opens into separate visits wherever 30 minutes pass between opens. Each opened presentation counts as at least one visit. Treat these values as a lower bound, because opens are rate-limited.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Demand IQ Docs","colors":{"primary":"#15ABE6","light":"#4DC4F5","dark":"#0D8FBF"},"logo":{"light":"https://mintcdn.com/demandiq/uEOIlnRlShq78CaU/logo/light.svg?fit=max\u0026auto=format\u0026n=uEOIlnRlShq78CaU\u0026q=85\u0026s=6b20bece67526eefd70ff64cc194f726","dark":"https://mintcdn.com/demandiq/uEOIlnRlShq78CaU/logo/dark.svg?fit=max\u0026auto=format\u0026n=uEOIlnRlShq78CaU\u0026q=85\u0026s=7c1536ee4a0142de77ede0db3669a9b3"},"favicon":"https://mintcdn.com/demandiq/uEOIlnRlShq78CaU/favicon.svg?fit=max\u0026auto=format\u0026n=uEOIlnRlShq78CaU\u0026q=85\u0026s=3977ad1b9501e84aaac387cc29d19e3c","styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"demandiq","hasAudioNarration":false,"actualSubdomain":"demandiq","customDomains":["developer.demand-iq.com"],"gitSource":{"type":"github","owner":"demand-iq","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aec99a98cb1f1c974b9defe","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"API Reference","count":102},{"language":"default","tag":"Endpoints","count":102},{"language":"default","tag":"Guides","count":13},{"language":"default","tag":"Presentations","count":12},{"language":"default","tag":"Company","count":10},{"language":"default","tag":"Decks","count":9},{"language":"default","tag":"Contracts","count":8},{"language":"default","tag":"Slides","count":8},{"language":"default","tag":"Configuration guides","count":6},{"language":"default","tag":"Authentication","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","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},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/engagement/get-engagement-summary","slug":"/api-reference/engagement/get-engagement-summary","pageMetadata":{"title":"Get engagement summary","description":"Returns seven engagement metrics for your organization: presentations sent, opened, average consumption, CTA clicks, questions asked, appointments booked, and contracts signed. Each metric includes a `percentChange` compared with the equal-length window immediately before the requested one, and every rate includes a `directional` flag.\n\nThe response also includes three breakdowns for the requested window, without a `percentChange`: `funnel` (Created → Sent → Opened → Started → Completed for presentations created in the window), `visits` (visits per opened presentation), and `deliveryPath` (opened presentations that arrived without an email open or without an email send, plus opened presentations counted by the `utm_source` their link was shared with).\n\nProvide `since` and `until` together for a custom window, or omit both for the last 30 days ending now. If the window contains too many presentations, AI Presentations returns `422`. Narrow the window and retry. If only the prior comparison window is too large, the request still succeeds and every `percentChange` is `null`.\n\nActivity from a browser signed in to AI Presentations is left out of average consumption, CTA clicks, and questions asked, so previewing your own presentation link doesn't inflate them. That activity still counts toward `opened`. A teammate viewing a link on a device where they never signed in is counted as a prospect. Activity recorded before this exclusion shipped is counted as prospect activity.\n\nPass `deckId` to limit the summary to one template. A `deckId` that doesn't belong to your organization returns a zero-valued summary rather than `404`.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/engagement/summary","href":"/api-reference/engagement/get-engagement-summary","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Returns seven engagement metrics for your organization: presentations sent, opened, average consumption, CTA clicks, questions asked, appointments booked, and contracts signed. Each metric includes a \", _jsx(_components.code, {\n children: \"percentChange\"\n }), \" compared with the equal-length window immediately before the requested one, and every rate includes a \", _jsx(_components.code, {\n children: \"directional\"\n }), \" flag.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The response also includes three breakdowns for the requested window, without a \", _jsx(_components.code, {\n children: \"percentChange\"\n }), \": \", _jsx(_components.code, {\n children: \"funnel\"\n }), \" (Created → Sent → Opened → Started → Completed for presentations created in the window), \", _jsx(_components.code, {\n children: \"visits\"\n }), \" (visits per opened presentation), and \", _jsx(_components.code, {\n children: \"deliveryPath\"\n }), \" (opened presentations that arrived without an email open or without an email send, plus opened presentations counted by the \", _jsx(_components.code, {\n children: \"utm_source\"\n }), \" their link was shared with).\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Provide \", _jsx(_components.code, {\n children: \"since\"\n }), \" and \", _jsx(_components.code, {\n children: \"until\"\n }), \" together for a custom window, or omit both for the last 30 days ending now. If the window contains too many presentations, AI Presentations returns \", _jsx(_components.code, {\n children: \"422\"\n }), \". Narrow the window and retry. If only the prior comparison window is too large, the request still succeeds and every \", _jsx(_components.code, {\n children: \"percentChange\"\n }), \" is \", _jsx(_components.code, {\n children: \"null\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Activity from a browser signed in to AI Presentations is left out of average consumption, CTA clicks, and questions asked, so previewing your own presentation link doesn’t inflate them. That activity still counts toward \", _jsx(_components.code, {\n children: \"opened\"\n }), \". A teammate viewing a link on a device where they never signed in is counted as a prospect. Activity recorded before this exclusion shipped is counted as prospect activity.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Pass \", _jsx(_components.code, {\n children: \"deckId\"\n }), \" to limit the summary to one template. A \", _jsx(_components.code, {\n children: \"deckId\"\n }), \" that doesn’t belong to your organization returns a zero-valued summary rather than \", _jsx(_components.code, {\n children: \"404\"\n }), \".\"]\n })]\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Get engagement summary","description":"Returns seven engagement metrics for your organization: presentations sent, opened, average consumption, CTA clicks, questions asked, appointments booked, and contracts signed. Each metric includes a `percentChange` compared with the equal-length window immediately before the requested one, and every rate includes a `directional` flag.\n\nThe response also includes three breakdowns for the requested window, without a `percentChange`: `funnel` (Created → Sent → Opened → Started → Completed for presentations created in the window), `visits` (visits per opened presentation), and `deliveryPath` (opened presentations that arrived without an email open or without an email send, plus opened presentations counted by the `utm_source` their link was shared with).\n\nProvide `since` and `until` together for a custom window, or omit both for the last 30 days ending now. If the window contains too many presentations, AI Presentations returns `422`. Narrow the window and retry. If only the prior comparison window is too large, the request still succeeds and every `percentChange` is `null`.\n\nActivity from a browser signed in to AI Presentations is left out of average consumption, CTA clicks, and questions asked, so previewing your own presentation link doesn't inflate them. That activity still counts toward `opened`. A teammate viewing a link on a device where they never signed in is counted as a prospect. Activity recorded before this exclusion shipped is counted as prospect activity.\n\nPass `deckId` to limit the summary to one template. A `deckId` that doesn't belong to your organization returns a zero-valued summary rather than `404`.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/engagement/summary","href":"/api-reference/engagement/get-engagement-summary","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Engagement"],"summary":"Get engagement summary","description":"Returns seven engagement metrics for your organization: presentations sent, opened, average consumption, CTA clicks, questions asked, appointments booked, and contracts signed. Each metric includes a `percentChange` compared with the equal-length window immediately before the requested one, and every rate includes a `directional` flag.\n\nThe response also includes three breakdowns for the requested window, without a `percentChange`: `funnel` (Created → Sent → Opened → Started → Completed for presentations created in the window), `visits` (visits per opened presentation), and `deliveryPath` (opened presentations that arrived without an email open or without an email send, plus opened presentations counted by the `utm_source` their link was shared with).\n\nProvide `since` and `until` together for a custom window, or omit both for the last 30 days ending now. If the window contains too many presentations, AI Presentations returns `422`. Narrow the window and retry. If only the prior comparison window is too large, the request still succeeds and every `percentChange` is `null`.\n\nActivity from a browser signed in to AI Presentations is left out of average consumption, CTA clicks, and questions asked, so previewing your own presentation link doesn't inflate them. That activity still counts toward `opened`. A teammate viewing a link on a device where they never signed in is counted as a prospect. Activity recorded before this exclusion shipped is counted as prospect activity.\n\nPass `deckId` to limit the summary to one template. A `deckId` that doesn't belong to your organization returns a zero-valued summary rather than `404`.","security":["5d87428f-c2de-4e56-aac0-65e5c0372213","586771c2-6b53-4dbb-9fb9-0e39e24ba3e3"],"parameters":["fb8a718e-61c2-4b19-850f-a41bdb923ada","15aa562d-b945-446b-848f-f0f562b6e831","23b9dbe3-3460-4438-9fb8-3c0bc7c744b1"],"responses":{"200":"b7d09b9a-64fd-4ef7-a067-3615ac502fbb","400":"1f581c32-74a4-495a-928d-2a0b977eac0f","401":"1dbe9ff2-8bee-41b3-8ff0-55358744784d","422":"4b5f7b2d-aeb8-4f8b-8283-6b121612f5c5","500":"cf34d74e-2ddb-4e3a-9a33-b89e3e823618"},"method":"get","type":"path","servers":["8c1c298c-6efa-4eee-bbc2-ad374d34a17e","7c7f8449-1062-4369-8578-0037bf063220"],"path":"/api/engagement/summary","baseUrlOptions":["https://app.demand-iq.com","http://localhost:3000"],"title":"Get engagement summary","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"fb8a718e-61c2-4b19-850f-a41bdb923ada":{"in":"query","name":"since","required":false,"schema":{"type":"string","format":"date-time","isRequired":false,"description":"Start of the window (inclusive), as an RFC 3339 timestamp. Timezone offsets are accepted. Provide with `until`, or omit both for the last 30 days.","uniqueKey":"","typeLabel":"string\u003cdate-time>"},"example":"2026-09-01T00:00:00Z","description":"Start of the window (inclusive), as an RFC 3339 timestamp. Timezone offsets are accepted. Provide with `until`, or omit both for the last 30 days."},"15aa562d-b945-446b-848f-f0f562b6e831":{"in":"query","name":"until","required":false,"schema":{"type":"string","format":"date-time","isRequired":false,"description":"End of the window (exclusive), as an RFC 3339 timestamp. Must be after `since`. Provide with `since`, or omit both for the last 30 days.","uniqueKey":"","typeLabel":"string\u003cdate-time>"},"example":"2026-10-01T00:00:00Z","description":"End of the window (exclusive), as an RFC 3339 timestamp. Must be after `since`. Provide with `since`, or omit both for the last 30 days."},"23b9dbe3-3460-4438-9fb8-3c0bc7c744b1":{"in":"query","name":"deckId","required":false,"schema":{"type":"string","format":"uuid","isRequired":false,"description":"Limit the summary to one template. An empty value is treated as absent.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"Limit the summary to one template. An empty value is treated as absent."}},"responses":{"b7d09b9a-64fd-4ef7-a067-3615ac502fbb":{"description":"Engagement summary","content":{"application/json":{"schema":{"type":"object","description":"The seven engagement metrics for your organization over the requested window, plus the engagement funnel, visits per opened presentation, and delivery path counts.","properties":{"window":{"type":"object","description":"The window the metrics cover: the requested `since`/`until`, or the last 30 days ending at request time.","properties":{"from":{"type":"string","format":"date-time","example":"2026-09-01T00:00:00.000Z","isRequired":true,"uniqueKey":"window.from","typeLabel":"string\u003cdate-time>"},"until":{"type":"string","format":"date-time","example":"2026-10-01T00:00:00.000Z","isRequired":true,"uniqueKey":"window.until","typeLabel":"string\u003cdate-time>"}},"required":["from","until"],"isRequired":true,"uniqueKey":"window","typeLabel":"object"},"deckId":{"oneOf":[{"type":"string","format":"uuid","description":"The template filter applied, or `null` when the summary covers all templates.","isRequired":true,"uniqueKey":"deckId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"The template filter applied, or `null` when the summary covers all templates.","isRequired":true,"uniqueKey":"deckId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deckId","typeLabel":"string\u003cuuid> | null"},"presentationsSent":{"type":"object","description":"Presentations successfully sent in the window.","required":["count","percentChange"],"properties":{"count":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"presentationsSent.count","typeLabel":"integer"},"percentChange":{"oneOf":[{"type":"number","example":-0.08,"description":"Relative change compared with the equal-length window immediately before the requested one. `0.15` means +15%. `null` when the prior window could not be loaded because it exceeded the size limit, or when the prior count was 0 and the current count is not. A prior count of 0 and a current count of 0 returns `0`.","isRequired":true,"uniqueKey":"presentationsSent.percentChange.oneOf.0","typeLabel":"number"},{"type":"null","example":-0.08,"description":"Relative change compared with the equal-length window immediately before the requested one. `0.15` means +15%. `null` when the prior window could not be loaded because it exceeded the size limit, or when the prior count was 0 and the current count is not. A prior count of 0 and a current count of 0 returns `0`.","isRequired":true,"uniqueKey":"presentationsSent.percentChange.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"presentationsSent.percentChange","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"presentationsSent","typeLabel":"object"},"opened":{"type":"object","description":"Presentations whose viewer page was loaded at least once. This is not the email-open signal. Includes opens by a signed-in member of your organization, so previewing your own presentation link counts as an open. `rate.denominator` is the number of presentations created in the window.","required":["rate","percentChange","directional"],"properties":{"rate":{"type":"object","description":"A rate returned as its raw numerator and denominator rather than a pre-computed percentage, so you can hide rates whose denominator is too small to be meaningful. `unknown` counts items whose underlying data is no longer available, which is distinct from a real 0.","properties":{"numerator":{"type":"integer","example":42,"isRequired":true,"uniqueKey":"opened.rate.numerator","typeLabel":"integer"},"denominator":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"opened.rate.denominator","typeLabel":"integer"},"unknown":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"opened.rate.unknown","typeLabel":"integer"}},"required":["numerator","denominator","unknown"],"isRequired":true,"uniqueKey":"opened.rate","typeLabel":"object"},"percentChange":{"oneOf":[{"type":"number","example":0.15,"description":"Relative change in the ratio (numerator / denominator) compared with the equal-length window immediately before the requested one. `0.15` means +15%. `null` when the prior window could not be loaded because it exceeded the size limit, when either window has a denominator of 0, or when the prior ratio was 0 and the current one is not. A prior ratio of 0 and a current ratio of 0 returns `0`.","isRequired":true,"uniqueKey":"opened.percentChange.oneOf.0","typeLabel":"number"},{"type":"null","example":0.15,"description":"Relative change in the ratio (numerator / denominator) compared with the equal-length window immediately before the requested one. `0.15` means +15%. `null` when the prior window could not be loaded because it exceeded the size limit, when either window has a denominator of 0, or when the prior ratio was 0 and the current one is not. A prior ratio of 0 and a current ratio of 0 returns `0`.","isRequired":true,"uniqueKey":"opened.percentChange.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"opened.percentChange","typeLabel":"number | null"},"directional":{"type":"boolean","example":true,"description":"`true` when the metric varies too much between companies at current volume to trend reliably. Display it as a directional indicator rather than a trend.","isRequired":true,"uniqueKey":"opened.directional","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"opened","typeLabel":"object"},"avgConsumption":{"type":"object","description":"Slides consumed out of the total slides in opened presentations created in the window. Unopened presentations are excluded, so this reflects viewing behavior rather than open rate. Slides viewed by a signed-in member of your organization are excluded.","required":["rate","percentChange","directional"],"properties":{"rate":{"type":"object","description":"A rate returned as its raw numerator and denominator rather than a pre-computed percentage, so you can hide rates whose denominator is too small to be meaningful. `unknown` counts items whose underlying data is no longer available, which is distinct from a real 0.","properties":{"numerator":{"type":"integer","example":42,"isRequired":true,"uniqueKey":"avgConsumption.rate.numerator","typeLabel":"integer"},"denominator":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"avgConsumption.rate.denominator","typeLabel":"integer"},"unknown":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"avgConsumption.rate.unknown","typeLabel":"integer"}},"required":["numerator","denominator","unknown"],"isRequired":true,"uniqueKey":"avgConsumption.rate","typeLabel":"object"},"percentChange":{"oneOf":[{"type":"number","example":0.15,"description":"Relative change in the ratio (numerator / denominator) compared with the equal-length window immediately before the requested one. `0.15` means +15%. `null` when the prior window could not be loaded because it exceeded the size limit, when either window has a denominator of 0, or when the prior ratio was 0 and the current one is not. A prior ratio of 0 and a current ratio of 0 returns `0`.","isRequired":true,"uniqueKey":"avgConsumption.percentChange.oneOf.0","typeLabel":"number"},{"type":"null","example":0.15,"description":"Relative change in the ratio (numerator / denominator) compared with the equal-length window immediately before the requested one. `0.15` means +15%. `null` when the prior window could not be loaded because it exceeded the size limit, when either window has a denominator of 0, or when the prior ratio was 0 and the current one is not. A prior ratio of 0 and a current ratio of 0 returns `0`.","isRequired":true,"uniqueKey":"avgConsumption.percentChange.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"avgConsumption.percentChange","typeLabel":"number | null"},"directional":{"type":"boolean","example":true,"description":"`true` when the metric varies too much between companies at current volume to trend reliably. Display it as a directional indicator rather than a trend.","isRequired":true,"uniqueKey":"avgConsumption.directional","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"avgConsumption","typeLabel":"object"},"ctaClicks":{"type":"object","description":"Call-to-action clicks. `rate.denominator` excludes presentations from templates with no call to action configured. Clicks by a signed-in member of your organization are excluded.","required":["rate","percentChange","directional"],"properties":{"rate":{"type":"object","description":"A rate returned as its raw numerator and denominator rather than a pre-computed percentage, so you can hide rates whose denominator is too small to be meaningful. `unknown` counts items whose underlying data is no longer available, which is distinct from a real 0.","properties":{"numerator":{"type":"integer","example":42,"isRequired":true,"uniqueKey":"ctaClicks.rate.numerator","typeLabel":"integer"},"denominator":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"ctaClicks.rate.denominator","typeLabel":"integer"},"unknown":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"ctaClicks.rate.unknown","typeLabel":"integer"}},"required":["numerator","denominator","unknown"],"isRequired":true,"uniqueKey":"ctaClicks.rate","typeLabel":"object"},"percentChange":{"oneOf":[{"type":"number","example":0.15,"description":"Relative change in the ratio (numerator / denominator) compared with the equal-length window immediately before the requested one. `0.15` means +15%. `null` when the prior window could not be loaded because it exceeded the size limit, when either window has a denominator of 0, or when the prior ratio was 0 and the current one is not. A prior ratio of 0 and a current ratio of 0 returns `0`.","isRequired":true,"uniqueKey":"ctaClicks.percentChange.oneOf.0","typeLabel":"number"},{"type":"null","example":0.15,"description":"Relative change in the ratio (numerator / denominator) compared with the equal-length window immediately before the requested one. `0.15` means +15%. `null` when the prior window could not be loaded because it exceeded the size limit, when either window has a denominator of 0, or when the prior ratio was 0 and the current one is not. A prior ratio of 0 and a current ratio of 0 returns `0`.","isRequired":true,"uniqueKey":"ctaClicks.percentChange.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"ctaClicks.percentChange","typeLabel":"number | null"},"directional":{"type":"boolean","example":true,"description":"`true` when the metric varies too much between companies at current volume to trend reliably. Display it as a directional indicator rather than a trend.","isRequired":true,"uniqueKey":"ctaClicks.directional","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"ctaClicks","typeLabel":"object"},"questionsAsked":{"type":"object","description":"Questions viewers asked during presentations. Questions asked by a signed-in member of your organization are excluded.","properties":{"count":{"type":"integer","example":37,"isRequired":true,"uniqueKey":"questionsAsked.count","typeLabel":"integer"},"percentChange":{"oneOf":[{"type":"number","example":0.12,"description":"Relative change in `count` compared with the prior window. Follows the same rules as `EngagementCountMetric.percentChange`.","isRequired":true,"uniqueKey":"questionsAsked.percentChange.oneOf.0","typeLabel":"number"},{"type":"null","example":0.12,"description":"Relative change in `count` compared with the prior window. Follows the same rules as `EngagementCountMetric.percentChange`.","isRequired":true,"uniqueKey":"questionsAsked.percentChange.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"questionsAsked.percentChange","typeLabel":"number | null"},"escalated":{"type":"integer","example":4,"description":"Questions the AI could not answer or answered with low confidence. A breakdown of `count`, so it has no `percentChange` of its own.","isRequired":true,"uniqueKey":"questionsAsked.escalated","typeLabel":"integer"}},"required":["count","percentChange","escalated"],"isRequired":true,"uniqueKey":"questionsAsked","typeLabel":"object"},"appointmentsBooked":{"type":"object","description":"Appointments booked from presentations.","required":["count","percentChange"],"properties":{"count":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"appointmentsBooked.count","typeLabel":"integer"},"percentChange":{"oneOf":[{"type":"number","example":-0.08,"description":"Relative change compared with the equal-length window immediately before the requested one. `0.15` means +15%. `null` when the prior window could not be loaded because it exceeded the size limit, or when the prior count was 0 and the current count is not. A prior count of 0 and a current count of 0 returns `0`.","isRequired":true,"uniqueKey":"appointmentsBooked.percentChange.oneOf.0","typeLabel":"number"},{"type":"null","example":-0.08,"description":"Relative change compared with the equal-length window immediately before the requested one. `0.15` means +15%. `null` when the prior window could not be loaded because it exceeded the size limit, or when the prior count was 0 and the current count is not. A prior count of 0 and a current count of 0 returns `0`.","isRequired":true,"uniqueKey":"appointmentsBooked.percentChange.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"appointmentsBooked.percentChange","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"appointmentsBooked","typeLabel":"object"},"contractsSigned":{"type":"object","description":"Contracts signed from presentations.","required":["count","percentChange"],"properties":{"count":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"contractsSigned.count","typeLabel":"integer"},"percentChange":{"oneOf":[{"type":"number","example":-0.08,"description":"Relative change compared with the equal-length window immediately before the requested one. `0.15` means +15%. `null` when the prior window could not be loaded because it exceeded the size limit, or when the prior count was 0 and the current count is not. A prior count of 0 and a current count of 0 returns `0`.","isRequired":true,"uniqueKey":"contractsSigned.percentChange.oneOf.0","typeLabel":"number"},{"type":"null","example":-0.08,"description":"Relative change compared with the equal-length window immediately before the requested one. `0.15` means +15%. `null` when the prior window could not be loaded because it exceeded the size limit, or when the prior count was 0 and the current count is not. A prior count of 0 and a current count of 0 returns `0`.","isRequired":true,"uniqueKey":"contractsSigned.percentChange.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"contractsSigned.percentChange","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"contractsSigned","typeLabel":"object"},"funnel":{"type":"object","description":"The Created → Completed funnel for presentations created in the window.","required":["created","sent","opened","started","completed","noStartStep"],"properties":{"created":{"type":"integer","example":120,"description":"Presentations created in the window.","isRequired":true,"uniqueKey":"funnel.created","typeLabel":"integer"},"sent":{"type":"object","description":"Presentations with at least one accepted email send. `overPrevious` is over Created.","required":["count","overPrevious","overCreated"],"properties":{"count":{"type":"integer","example":96,"description":"Presentations created in the window that reached this step.","isRequired":true,"uniqueKey":"funnel.sent.count","typeLabel":"integer"},"overPrevious":{"type":"object","description":"Presentations that reached both this step and the previous one, over the presentations that reached the previous step. Because both steps are required, this rate never exceeds 100%.","required":["numerator","denominator","unknown"],"properties":{"numerator":{"type":"integer","example":42,"isRequired":true,"uniqueKey":"funnel.sent.overPrevious.numerator","typeLabel":"integer"},"denominator":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"funnel.sent.overPrevious.denominator","typeLabel":"integer"},"unknown":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"funnel.sent.overPrevious.unknown","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"funnel.sent.overPrevious","typeLabel":"object"},"overCreated":{"type":"object","description":"Presentations that reached this step, over the presentations created in the window.","required":["numerator","denominator","unknown"],"properties":{"numerator":{"type":"integer","example":42,"isRequired":true,"uniqueKey":"funnel.sent.overCreated.numerator","typeLabel":"integer"},"denominator":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"funnel.sent.overCreated.denominator","typeLabel":"integer"},"unknown":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"funnel.sent.overCreated.unknown","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"funnel.sent.overCreated","typeLabel":"object"}},"isRequired":true,"uniqueKey":"funnel.sent","typeLabel":"object"},"opened":{"type":"object","description":"Presentations whose viewer page loaded at least once. A presentation opened from a copied link counts toward `count` but not toward `overPrevious`, which is over Sent.","required":["count","overPrevious","overCreated"],"properties":{"count":{"type":"integer","example":96,"description":"Presentations created in the window that reached this step.","isRequired":true,"uniqueKey":"funnel.opened.count","typeLabel":"integer"},"overPrevious":{"type":"object","description":"Presentations that reached both this step and the previous one, over the presentations that reached the previous step. Because both steps are required, this rate never exceeds 100%.","required":["numerator","denominator","unknown"],"properties":{"numerator":{"type":"integer","example":42,"isRequired":true,"uniqueKey":"funnel.opened.overPrevious.numerator","typeLabel":"integer"},"denominator":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"funnel.opened.overPrevious.denominator","typeLabel":"integer"},"unknown":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"funnel.opened.overPrevious.unknown","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"funnel.opened.overPrevious","typeLabel":"object"},"overCreated":{"type":"object","description":"Presentations that reached this step, over the presentations created in the window.","required":["numerator","denominator","unknown"],"properties":{"numerator":{"type":"integer","example":42,"isRequired":true,"uniqueKey":"funnel.opened.overCreated.numerator","typeLabel":"integer"},"denominator":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"funnel.opened.overCreated.denominator","typeLabel":"integer"},"unknown":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"funnel.opened.overCreated.unknown","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"funnel.opened.overCreated","typeLabel":"object"}},"isRequired":true,"uniqueKey":"funnel.opened","typeLabel":"object"},"started":{"type":"object","description":"Presentations where the viewer pressed Start on the intro screen. Only presentations opened on an intro count. `overPrevious` is over opened presentations that showed an intro. An opened presentation with no recorded start that was first viewed before AI Presentations began recording starts counts as `unknown`.","required":["count","overPrevious","overCreated"],"properties":{"count":{"type":"integer","example":96,"description":"Presentations created in the window that reached this step.","isRequired":true,"uniqueKey":"funnel.started.count","typeLabel":"integer"},"overPrevious":{"type":"object","description":"Presentations that reached both this step and the previous one, over the presentations that reached the previous step. Because both steps are required, this rate never exceeds 100%.","required":["numerator","denominator","unknown"],"properties":{"numerator":{"type":"integer","example":42,"isRequired":true,"uniqueKey":"funnel.started.overPrevious.numerator","typeLabel":"integer"},"denominator":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"funnel.started.overPrevious.denominator","typeLabel":"integer"},"unknown":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"funnel.started.overPrevious.unknown","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"funnel.started.overPrevious","typeLabel":"object"},"overCreated":{"type":"object","description":"Presentations that reached this step, over the presentations created in the window.","required":["numerator","denominator","unknown"],"properties":{"numerator":{"type":"integer","example":42,"isRequired":true,"uniqueKey":"funnel.started.overCreated.numerator","typeLabel":"integer"},"denominator":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"funnel.started.overCreated.denominator","typeLabel":"integer"},"unknown":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"funnel.started.overCreated.unknown","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"funnel.started.overCreated","typeLabel":"object"}},"isRequired":true,"uniqueKey":"funnel.started","typeLabel":"object"},"completed":{"type":"object","description":"Presentations whose viewer reached the last slide. `overPrevious` is over Started.","required":["count","overPrevious","overCreated"],"properties":{"count":{"type":"integer","example":96,"description":"Presentations created in the window that reached this step.","isRequired":true,"uniqueKey":"funnel.completed.count","typeLabel":"integer"},"overPrevious":{"type":"object","description":"Presentations that reached both this step and the previous one, over the presentations that reached the previous step. Because both steps are required, this rate never exceeds 100%.","required":["numerator","denominator","unknown"],"properties":{"numerator":{"type":"integer","example":42,"isRequired":true,"uniqueKey":"funnel.completed.overPrevious.numerator","typeLabel":"integer"},"denominator":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"funnel.completed.overPrevious.denominator","typeLabel":"integer"},"unknown":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"funnel.completed.overPrevious.unknown","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"funnel.completed.overPrevious","typeLabel":"object"},"overCreated":{"type":"object","description":"Presentations that reached this step, over the presentations created in the window.","required":["numerator","denominator","unknown"],"properties":{"numerator":{"type":"integer","example":42,"isRequired":true,"uniqueKey":"funnel.completed.overCreated.numerator","typeLabel":"integer"},"denominator":{"type":"integer","example":120,"isRequired":true,"uniqueKey":"funnel.completed.overCreated.denominator","typeLabel":"integer"},"unknown":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"funnel.completed.overCreated.unknown","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"funnel.completed.overCreated","typeLabel":"object"}},"isRequired":true,"uniqueKey":"funnel.completed","typeLabel":"object"},"noStartStep":{"type":"integer","example":14,"description":"Opened presentations that had no intro screen, so the viewer had no Start to press. These are left out of `started` rather than counted as a 0% start rate.","isRequired":true,"uniqueKey":"funnel.noStartStep","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"funnel","typeLabel":"object"},"visits":{"type":"object","description":"Visits per opened presentation. AI Presentations splits a presentation's opens into separate visits wherever 30 minutes pass between opens. Each opened presentation counts as at least one visit. Treat these values as a lower bound, because opens are rate-limited.","properties":{"opened":{"type":"integer","example":82,"description":"Opened presentations the averages are computed over.","isRequired":true,"uniqueKey":"visits.opened","typeLabel":"integer"},"avg":{"oneOf":[{"type":"number","example":1.6,"description":"Mean visits per opened presentation. `null` when `opened` is 0.","isRequired":true,"uniqueKey":"visits.avg.oneOf.0","typeLabel":"number"},{"type":"null","example":1.6,"description":"Mean visits per opened presentation. `null` when `opened` is 0.","isRequired":true,"uniqueKey":"visits.avg.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"visits.avg","typeLabel":"number | null"},"median":{"oneOf":[{"type":"number","example":1,"description":"Median visits per opened presentation. `null` when `opened` is 0.","isRequired":true,"uniqueKey":"visits.median.oneOf.0","typeLabel":"number"},{"type":"null","example":1,"description":"Median visits per opened presentation. `null` when `opened` is 0.","isRequired":true,"uniqueKey":"visits.median.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"visits.median","typeLabel":"number | null"}},"required":["opened","avg","median"],"isRequired":true,"uniqueKey":"visits","typeLabel":"object"},"deliveryPath":{"type":"object","description":"How opened presentations reached the viewer.","properties":{"viewedWithoutEmailOpen":{"type":"integer","example":11,"description":"Opened presentations that were sent and delivered by email, with no email open by a person recorded.","isRequired":true,"uniqueKey":"deliveryPath.viewedWithoutEmailOpen","typeLabel":"integer"},"viewedWithoutSend":{"type":"integer","example":7,"description":"Opened presentations that were never sent by email, for example because the link was copied and shared directly.","isRequired":true,"uniqueKey":"deliveryPath.viewedWithoutSend","typeLabel":"integer"},"byOpenSource":{"type":"object","additionalProperties":{"type":"integer","uniqueKey":"deliveryPath.byOpenSource.additionalProperties","typeLabel":"integer"},"example":{"email":42,"journeys":9,"none":15},"description":"Opened presentations counted by the `utm_source` on the link of their first homeowner open. `email` means AI Presentations sent the link. Any other key is the value the system that shared the link declared. `none` counts opens with no source, including every open recorded before this breakdown was added.","isRequired":true,"uniqueKey":"deliveryPath.byOpenSource","typeLabel":"object"}},"required":["viewedWithoutEmailOpen","viewedWithoutSend","byOpenSource"],"isRequired":true,"uniqueKey":"deliveryPath","typeLabel":"object"}},"required":["window","deckId","presentationsSent","opened","avgConsumption","ctaClicks","questionsAsked","appointmentsBooked","contractsSigned","funnel","visits","deliveryPath"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"window":{"from":"2026-09-01T00:00:00.000Z","until":"2026-10-01T00:00:00.000Z"},"deckId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","presentationsSent":{"count":120,"percentChange":-0.08},"opened":{"rate":{"numerator":42,"denominator":120,"unknown":0},"percentChange":0.15,"directional":true},"avgConsumption":{"rate":{"numerator":42,"denominator":120,"unknown":0},"percentChange":0.15,"directional":true},"ctaClicks":{"rate":{"numerator":42,"denominator":120,"unknown":0},"percentChange":0.15,"directional":true},"questionsAsked":{"count":37,"percentChange":0.12,"escalated":4},"appointmentsBooked":{"count":120,"percentChange":-0.08},"contractsSigned":{"count":120,"percentChange":-0.08},"funnel":{"created":120,"sent":{"count":96,"overPrevious":{"numerator":42,"denominator":120,"unknown":0},"overCreated":{"numerator":42,"denominator":120,"unknown":0}},"opened":{"count":96,"overPrevious":{"numerator":42,"denominator":120,"unknown":0},"overCreated":{"numerator":42,"denominator":120,"unknown":0}},"started":{"count":96,"overPrevious":{"numerator":42,"denominator":120,"unknown":0},"overCreated":{"numerator":42,"denominator":120,"unknown":0}},"completed":{"count":96,"overPrevious":{"numerator":42,"denominator":120,"unknown":0},"overCreated":{"numerator":42,"denominator":120,"unknown":0}},"noStartStep":14},"visits":{"opened":82,"avg":1.6,"median":1},"deliveryPath":{"viewedWithoutEmailOpen":11,"viewedWithoutSend":7,"byOpenSource":{"email":42,"journeys":9,"none":15}}}}},"exampleType":"generated"}},"exampleType":"generated"},"1f581c32-74a4-495a-928d-2a0b977eac0f":{"description":"Invalid query parameters, `since` or `until` provided without the other, or `since` not before `until`","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"1dbe9ff2-8bee-41b3-8ff0-55358744784d":{"description":"Not authenticated","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"4b5f7b2d-aeb8-4f8b-8283-6b121612f5c5":{"description":"The window contains too many presentations. Narrow the window and retry.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"cf34d74e-2ddb-4e3a-9a33-b89e3e823618":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"5d87428f-c2de-4e56-aac0-65e5c0372213":{"bearerAuth":{"type":"http","scheme":"bearer","description":"A Demand IQ API key or service token, passed in the `Authorization: Bearer` header.","scopes":[],"schemeName":"bearerAuth"}},"586771c2-6b53-4dbb-9fb9-0e39e24ba3e3":{"sessionCookie":{"type":"apiKey","in":"cookie","name":"session","description":"Session cookie obtained from `POST /api/auth/login`.","scopes":[],"schemeName":"sessionCookie"}}},"servers":{"8c1c298c-6efa-4eee-bbc2-ad374d34a17e":{"url":"https://app.demand-iq.com","description":"Production"},"7c7f8449-1062-4369-8578-0037bf063220":{"url":"http://localhost:3000","description":"Local development"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"A Demand IQ API key or service token, passed in the `Authorization: Bearer` header.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"A Demand IQ API key or service token, passed in the `Authorization: Bearer` header.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"apiKey","in":"cookie","name":"session","description":"Session cookie obtained from `POST /api/auth/login`.","scopes":[],"schemeName":"sessionCookie"},"schema":{"title":"session","type":"string","description":"Session cookie obtained from `POST /api/auth/login`.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"sessionCookie","name":"session"}],"title":"sessionCookie"}]},"originalFileLocation":"openapi.json"},"subdomain":"demandiq","siteName":"Demand IQ Docs","title":"Get engagement summary - Demand IQ Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T19:16:28.920Z","originalFileLocation":"api-reference/engagement/get-engagement-summary.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;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=\"system\"}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=\"Returns seven engagement metrics for your organization: presentations sent, opened, average consumption, CTA clicks, questions asked, appointments booked, and contracts signed. Each metric includes a percentChange compared with the equal-length window immediately before the requested one, and every rate includes a directional flag. The response also includes three breakdowns for the requested window, without a percentChange: funnel (Created → Sent → Opened → Started → Completed for presentations created in the window), visits (visits per opened presentation), and deliveryPath (opened presentations that arrived without an email open or without an email send, plus opened presentations counted by the utm_source their link was shared with). Provide since and until together for a custom window, or omit both for the last 30 days ending now. If the window contains too many presentations, AI Presentations returns 422. Narrow the window and retry. If only the prior comparison window is too large, the request still succeeds and every percentChange is null. Activity from a browser signed in to AI Presentations is left out of average consumption, CTA clicks, and questions asked, so previewing your own presentation link doesn\u0026#x27;t inflate them. That activity still counts toward opened. A teammate viewing a link on a device where they never signed in is counted as a prospect. Activity recorded before this exclusion shipped is counted as prospect activity. Pass deckId to limit the summary to one template. A deckId that doesn\u0026#x27;t belong to your organization returns a zero-valued summary rather than 404.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Demand IQ Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/demandiq/54pBlYBD7mNg2sEI/_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/demandiq/54pBlYBD7mNg2sEI/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/demandiq/54pBlYBD7mNg2sEI/_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/demandiq/54pBlYBD7mNg2sEI/_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/demandiq/54pBlYBD7mNg2sEI/_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/demandiq/54pBlYBD7mNg2sEI/_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/demandiq/54pBlYBD7mNg2sEI/_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/demandiq/54pBlYBD7mNg2sEI/_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/demandiq/54pBlYBD7mNg2sEI/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get engagement summary - Demand IQ Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns seven engagement metrics for your organization: presentations sent, opened, average consumption, CTA clicks, questions asked, appointments booked, and contracts signed. Each metric includes a percentChange compared with the equal-length window immediately before the requested one, and every rate includes a directional flag. The response also includes three breakdowns for the requested window, without a percentChange: funnel (Created → Sent → Opened → Started → Completed for presentations created in the window), visits (visits per opened presentation), and deliveryPath (opened presentations that arrived without an email open or without an email send, plus opened presentations counted by the utm_source their link was shared with). Provide since and until together for a custom window, or omit both for the last 30 days ending now. If the window contains too many presentations, AI Presentations returns 422. Narrow the window and retry. If only the prior comparison window is too large, the request still succeeds and every percentChange is null. Activity from a browser signed in to AI Presentations is left out of average consumption, CTA clicks, and questions asked, so previewing your own presentation link doesn\u0026#x27;t inflate them. That activity still counts toward opened. A teammate viewing a link on a device where they never signed in is counted as a prospect. Activity recorded before this exclusion shipped is counted as prospect activity. Pass deckId to limit the summary to one template. A deckId that doesn\u0026#x27;t belong to your organization returns a zero-valued summary rather than 404.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Demand IQ Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.demand-iq.com/api-reference/engagement/get-engagement-summary\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://demandiq.mintlify.site/_mintlify/api/og/v2?division=Engagement\u0026amp;title=Get+engagement+summary\u0026amp;description=Returns+seven+engagement+metrics+for+your+organization%3A+presentations+sent%2C+opened%2C+average+consumption%2C+CTA+clicks%2C+questions+asked%2C+appointments+booked%2C+and+c\u0026amp;theme=6cb71c7b4cbe4450b6bff4c3\u0026amp;signature=78af48306736c38c955377fd8487c0f3df519a7c00178470a19ba92c3fc2ba36\">\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=\"Get engagement summary - Demand IQ Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns seven engagement metrics for your organization: presentations sent, opened, average consumption, CTA clicks, questions asked, appointments booked, and contracts signed. Each metric includes a percentChange compared with the equal-length window immediately before the requested one, and every rate includes a directional flag. The response also includes three breakdowns for the requested window, without a percentChange: funnel (Created → Sent → Opened → Started → Completed for presentations created in the window), visits (visits per opened presentation), and deliveryPath (opened presentations that arrived without an email open or without an email send, plus opened presentations counted by the utm_source their link was shared with). Provide since and until together for a custom window, or omit both for the last 30 days ending now. If the window contains too many presentations, AI Presentations returns 422. Narrow the window and retry. If only the prior comparison window is too large, the request still succeeds and every percentChange is null. Activity from a browser signed in to AI Presentations is left out of average consumption, CTA clicks, and questions asked, so previewing your own presentation link doesn\u0026#x27;t inflate them. That activity still counts toward opened. A teammate viewing a link on a device where they never signed in is counted as a prospect. Activity recorded before this exclusion shipped is counted as prospect activity. Pass deckId to limit the summary to one template. A deckId that doesn\u0026#x27;t belong to your organization returns a zero-valued summary rather than 404.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://demandiq.mintlify.site/_mintlify/api/og/v2?division=Engagement\u0026amp;title=Get+engagement+summary\u0026amp;description=Returns+seven+engagement+metrics+for+your+organization%3A+presentations+sent%2C+opened%2C+average+consumption%2C+CTA+clicks%2C+questions+asked%2C+appointments+booked%2C+and+c\u0026amp;theme=6cb71c7b4cbe4450b6bff4c3\u0026amp;signature=78af48306736c38c955377fd8487c0f3df519a7c00178470a19ba92c3fc2ba36\">\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/demandiq/54pBlYBD7mNg2sEI/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Demand IQ Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#15ABE6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.demand-iq.com/api-reference/engagement/get-engagement-summary\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/engagement/get-engagement-summary.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer.demand-iq.com/#organization\",\"name\":\"Demand IQ Docs\",\"url\":\"https://developer.demand-iq.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/demandiq/uEOIlnRlShq78CaU/logo/light.svg?fit=max\u0026auto=format\u0026n=uEOIlnRlShq78CaU\u0026q=85\u0026s=6b20bece67526eefd70ff64cc194f726\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer.demand-iq.com#website\",\"name\":\"Demand IQ Docs\",\"url\":\"https://developer.demand-iq.com\",\"publisher\":{\"@id\":\"https://developer.demand-iq.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.demand-iq.com/api-reference/engagement/get-engagement-summary#webpage\",\"url\":\"https://developer.demand-iq.com/api-reference/engagement/get-engagement-summary\",\"name\":\"Get engagement summary\",\"description\":\"Returns seven engagement metrics for your organization: presentations sent, opened, average consumption, CTA clicks, questions asked, appointments booked, and contracts signed. Each metric includes a percentChange compared with the equal-length window immediately before the requested one, and every rate includes a directional flag. The response also includes three breakdowns for the requested window, without a percentChange: funnel (Created → Sent → Opened → Started → Completed for presentations created in the window), visits (visits per opened presentation), and deliveryPath (opened presentations that arrived without an email open or without an email send, plus opened presentations counted by the utm_source their link was shared with). Provide since and until together for a custom window, or omit both for the last 30 days ending now. If the window contains too many presentations, AI Presentations returns 422. Narrow the window and retry. If only the prior comparison window is too large, the request still succeeds and every percentChange is null. Activity from a browser signed in to AI Presentations is left out of average consumption, CTA clicks, and questions asked, so previewing your own presentation link doesn't inflate them. That activity still counts toward opened. A teammate viewing a link on a device where they never signed in is counted as a prospect. Activity recorded before this exclusion shipped is counted as prospect activity. Pass deckId to limit the summary to one template. A deckId that doesn't belong to your organization returns a zero-valued summary rather than 404.\",\"dateModified\":\"2026-11-02T19:16:28.920Z\",\"isPartOf\":{\"@id\":\"https://developer.demand-iq.com#website\"},\"breadcrumb\":{\"@id\":\"https://developer.demand-iq.com/api-reference/engagement/get-engagement-summary#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.demand-iq.com/api-reference/engagement/get-engagement-summary#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://developer.demand-iq.com/api-reference/activity/list-recent-activity\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get engagement summary\",\"item\":\"https://developer.demand-iq.com/api-reference/engagement/get-engagement-summary\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developer.demand-iq.com/api-reference/engagement/get-engagement-summary#apireference\",\"headline\":\"Get engagement summary\",\"name\":\"Get engagement summary\",\"description\":\"Returns seven engagement metrics for your organization: presentations sent, opened, average consumption, CTA clicks, questions asked, appointments booked, and contracts signed. Each metric includes a percentChange compared with the equal-length window immediately before the requested one, and every rate includes a directional flag. The response also includes three breakdowns for the requested window, without a percentChange: funnel (Created → Sent → Opened → Started → Completed for presentations created in the window), visits (visits per opened presentation), and deliveryPath (opened presentations that arrived without an email open or without an email send, plus opened presentations counted by the utm_source their link was shared with). Provide since and until together for a custom window, or omit both for the last 30 days ending now. If the window contains too many presentations, AI Presentations returns 422. Narrow the window and retry. If only the prior comparison window is too large, the request still succeeds and every percentChange is null. Activity from a browser signed in to AI Presentations is left out of average consumption, CTA clicks, and questions asked, so previewing your own presentation link doesn't inflate them. That activity still counts toward opened. A teammate viewing a link on a device where they never signed in is counted as a prospect. Activity recorded before this exclusion shipped is counted as prospect activity. Pass deckId to limit the summary to one template. A deckId that doesn't belong to your organization returns a zero-valued summary rather than 404.\",\"url\":\"https://developer.demand-iq.com/api-reference/engagement/get-engagement-summary\",\"mainEntityOfPage\":{\"@id\":\"https://developer.demand-iq.com/api-reference/engagement/get-engagement-summary#webpage\"},\"dateModified\":\"2026-11-02T19:16:28.920Z\",\"publisher\":{\"@id\":\"https://developer.demand-iq.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.demand-iq.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Demand IQ Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Demand IQ Docs","nav":{"global":null,"tabs":[{"tab":"Lead integrations","pages":[{"title":"Lead integrations","href":"/integrations/connecting-your-api"}]},{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":"/ai-presentations/introduction"}]},{"tab":"API Reference","icon":"code","groups":[{"group":"Endpoints","pages":[{"group":"Activity","expanded":false,"pages":[{"title":"List recent activity","description":"Returns the 10 most recent presentation events for your organization, enriched with the homeowner name, address, and template ID for deep-linking.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/activity","href":"/api-reference/activity/list-recent-activity"}]},{"group":"Engagement","expanded":false,"pages":[{"title":"Get engagement summary","deprecated":null,"version":null,"openapi":"/openapi.json get /api/engagement/summary","href":"/api-reference/engagement/get-engagement-summary"},{"title":"List homeowner questions","description":"Returns every question homeowners asked in your presentations during the requested window, grouped by ISO week (UTC). Each question includes its template, slide, modality, outcome, question and answer text, and the knowledge sources involved.\n\nAI Presentations classifies each question with one outcome, checked in this order:\n\n- `degraded`: AI Presentations couldn't answer because of a service failure. This isn't a content gap.\n- `deflected`: the FAQs, slides, and knowledge base had no answer.\n- `low_confidence`: AI Presentations answered with low confidence.\n- `answered`: every other question.\n\nThe response includes counts per week and for the whole window, plus an `unansweredRate`: deflected questions divided by asked questions minus degraded ones.\n\nThe window applies to when each question was asked, so back-to-back windows list each question exactly once. The counts match `questionsAsked` from `GET /api/engagement/summary` only when every presentation in the window was also created inside it, because the summary counts questions on presentations created in the window.\n\nQuestions from browsers signed in to AI Presentations and from the template editor preview are left out. Question and answer text is removed after 90 days. Those questions keep their outcome and count, and show `text.status` as `redacted`.\n\nProvide `since` and `until` together for a custom window, or omit both for the last 30 days ending now. If the window contains more than 5,000 questions, AI Presentations returns `422`. Narrow the window and retry.\n\nPass `deckId` to limit the list to one template. A `deckId` that doesn't belong to your organization returns an empty list rather than `404`.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/engagement/questions","href":"/api-reference/engagement/list-homeowner-questions"},{"title":"Get email template performance","deprecated":null,"version":null,"openapi":"/openapi.json get /api/delivery/template-performance","href":"/api-reference/engagement/get-email-template-performance"},{"title":"Remove an earlier email template version","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/delivery/template-performance/{versionId}","href":"/api-reference/engagement/remove-an-earlier-email-template-version"},{"title":"Activate an earlier email template version","deprecated":null,"version":null,"openapi":"/openapi.json post /api/delivery/template-performance/{versionId}/activate","href":"/api-reference/engagement/activate-an-earlier-email-template-version"}]},{"group":"Decks","expanded":false,"pages":[{"title":"List decks","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks","href":"/api-reference/decks/list-decks"},{"title":"Create a deck","deprecated":null,"version":null,"openapi":"/openapi.json post /api/decks","href":"/api-reference/decks/create-a-deck"},{"title":"Import a presentation as a deck","deprecated":null,"version":null,"openapi":"/openapi.json post /api/decks/import","href":"/api-reference/decks/import-a-presentation-as-a-deck"},{"title":"Get a deck","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks/{deckId}","href":"/api-reference/decks/get-a-deck"},{"title":"Update a deck","deprecated":null,"version":null,"openapi":"/openapi.json put /api/decks/{deckId}","href":"/api-reference/decks/update-a-deck"},{"title":"Delete a deck","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/decks/{deckId}","href":"/api-reference/decks/delete-a-deck"},{"title":"Get intro page config","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks/{deckId}/intro","href":"/api-reference/decks/get-intro-page-config"},{"title":"Upsert intro page config","deprecated":null,"version":null,"openapi":"/openapi.json put /api/decks/{deckId}/intro","href":"/api-reference/decks/upsert-intro-page-config"},{"title":"Delete intro page config","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/decks/{deckId}/intro","href":"/api-reference/decks/delete-intro-page-config"}]},{"group":"Generation","expanded":false,"pages":[{"title":"Poll generation status for every deck","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks/generation-status","href":"/api-reference/generation/poll-generation-status-for-every-deck"},{"title":"Start AI generation from images","deprecated":null,"version":null,"openapi":"/openapi.json post /api/decks/{deckId}/generate","href":"/api-reference/generation/start-ai-generation-from-images"},{"title":"Poll generation status","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks/{deckId}/generate/status","href":"/api-reference/generation/poll-generation-status"},{"title":"Analyze a slide image and generate content","deprecated":null,"version":null,"openapi":"/openapi.json post /api/slides/analyze-and-generate","href":"/api-reference/generation/analyze-a-slide-image-and-generate-content"},{"title":"Generate preview audio","deprecated":null,"version":null,"openapi":"/openapi.json post /api/decks/{deckId}/generate-preview","href":"/api-reference/generation/generate-preview-audio"},{"title":"Check preview audio status","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks/{deckId}/preview-status","href":"/api-reference/generation/check-preview-audio-status"}]},{"group":"Slides","expanded":false,"pages":[{"title":"List slides","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks/{deckId}/slides","href":"/api-reference/slides/list-slides"},{"title":"Create a slide","deprecated":null,"version":null,"openapi":"/openapi.json post /api/decks/{deckId}/slides","href":"/api-reference/slides/create-a-slide"},{"title":"Reorder slides","deprecated":null,"version":null,"openapi":"/openapi.json put /api/decks/{deckId}/slides/reorder","href":"/api-reference/slides/reorder-slides"},{"title":"Update a slide","deprecated":null,"version":null,"openapi":"/openapi.json put /api/slides/{slideId}","href":"/api-reference/slides/update-a-slide"},{"title":"Delete a slide","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/slides/{slideId}","href":"/api-reference/slides/delete-a-slide"},{"title":"Get product pricing data","deprecated":null,"version":null,"openapi":"/openapi.json get /api/slides/{slideId}/product-data","href":"/api-reference/slides/get-product-pricing-data"},{"title":"Upsert product pricing data","deprecated":null,"version":null,"openapi":"/openapi.json put /api/slides/{slideId}/product-data","href":"/api-reference/slides/upsert-product-pricing-data"},{"title":"Remove product pricing data","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/slides/{slideId}/product-data","href":"/api-reference/slides/remove-product-pricing-data"}]},{"group":"FAQs","expanded":false,"pages":[{"title":"List FAQs","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks/{deckId}/faqs","href":"/api-reference/faqs/list-faqs"},{"title":"Create a FAQ","deprecated":null,"version":null,"openapi":"/openapi.json post /api/decks/{deckId}/faqs","href":"/api-reference/faqs/create-a-faq"},{"title":"Update a FAQ","deprecated":null,"version":null,"openapi":"/openapi.json put /api/faqs/{faqId}","href":"/api-reference/faqs/update-a-faq"},{"title":"Delete a FAQ","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/faqs/{faqId}","href":"/api-reference/faqs/delete-a-faq"}]},{"group":"Branding","expanded":false,"pages":[{"title":"Get branding","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks/{deckId}/branding","href":"/api-reference/branding/get-branding"},{"title":"Upsert branding","deprecated":null,"version":null,"openapi":"/openapi.json put /api/decks/{deckId}/branding","href":"/api-reference/branding/upsert-branding"}]},{"group":"Q\u0026A","expanded":false,"pages":[{"title":"Get Q\u0026A settings","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks/{deckId}/qa-settings","href":"/api-reference/q\u0026a/get-q\u0026a-settings"},{"title":"Update Q\u0026A settings","deprecated":null,"version":null,"openapi":"/openapi.json put /api/decks/{deckId}/qa-settings","href":"/api-reference/q\u0026a/update-q\u0026a-settings"},{"title":"Answer a question","deprecated":null,"version":null,"openapi":"/openapi.json post /api/qa","href":"/api-reference/q\u0026a/answer-a-question"},{"title":"Stream the spoken audio for an answer","deprecated":null,"version":null,"openapi":"/openapi.json get /api/qa/audio","href":"/api-reference/q\u0026a/stream-the-spoken-audio-for-an-answer"},{"title":"Classify viewer intent after Q\u0026A","deprecated":null,"version":null,"openapi":"/openapi.json post /api/intent/continue","href":"/api-reference/q\u0026a/classify-viewer-intent-after-q\u0026a"}]},{"group":"Presentations","expanded":false,"pages":[{"title":"List presentations","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks/{deckId}/presentations","href":"/api-reference/presentations/list-presentations"},{"title":"Create a presentation","deprecated":null,"version":null,"openapi":"/openapi.json post /api/decks/{deckId}/presentations","href":"/api-reference/presentations/create-a-presentation"},{"title":"Update a presentation","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/presentations/{presentationId}","href":"/api-reference/presentations/update-a-presentation"},{"title":"Delete a presentation","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/presentations/{presentationId}","href":"/api-reference/presentations/delete-a-presentation"},{"title":"Get presentation status","deprecated":null,"version":null,"openapi":"/openapi.json get /api/presentations/{presentationId}/status","href":"/api-reference/presentations/get-presentation-status"},{"title":"Start a presentation","deprecated":null,"version":null,"openapi":"/openapi.json post /api/presentations/{presentationId}/start","href":"/api-reference/presentations/start-a-presentation"},{"title":"Get presentation slides and Q\u0026A settings","deprecated":null,"version":null,"openapi":"/openapi.json get /api/presentations/{presentationId}/content","href":"/api-reference/presentations/get-presentation-slides-and-q\u0026a-settings"},{"title":"Get product selections","deprecated":null,"version":null,"openapi":"/openapi.json get /api/presentations/{presentationId}/product-selection","href":"/api-reference/presentations/get-product-selections"},{"title":"Save a product selection","deprecated":null,"version":null,"openapi":"/openapi.json put /api/presentations/{presentationId}/product-selection","href":"/api-reference/presentations/save-a-product-selection"},{"title":"Record a presentation event","deprecated":null,"version":null,"openapi":"/openapi.json post /api/presentations/{presentationId}/events","href":"/api-reference/presentations/record-a-presentation-event"},{"title":"Refresh an events token","deprecated":null,"version":null,"openapi":"/openapi.json post /api/presentations/{presentationId}/events-token","href":"/api-reference/presentations/refresh-an-events-token"},{"title":"Send a follow-up email for an ingested presentation","deprecated":null,"version":null,"openapi":"/openapi.json post /api/presentations/send","href":"/api-reference/presentations/send-a-follow-up-email-for-an-ingested-presentation"}]},{"group":"Narration","expanded":false,"pages":[{"title":"Synthesize narration for one slide","deprecated":null,"version":null,"openapi":"/openapi.json post /api/narration/single","href":"/api-reference/narration/synthesize-narration-for-one-slide"},{"title":"Synthesize narration for multiple slides","deprecated":null,"version":null,"openapi":"/openapi.json post /api/narration/batch","href":"/api-reference/narration/synthesize-narration-for-multiple-slides"},{"title":"Synthesize resume narration","deprecated":null,"version":null,"openapi":"/openapi.json post /api/narration/resume","href":"/api-reference/narration/synthesize-resume-narration"},{"title":"Synthesize narration for a slide","deprecated":null,"version":null,"openapi":"/openapi.json post /api/narration","href":"/api-reference/narration/synthesize-narration-for-a-slide"},{"title":"Synthesize Q\u0026A prompt audio","deprecated":null,"version":null,"openapi":"/openapi.json post /api/narration/qa-audio","href":"/api-reference/narration/synthesize-q\u0026a-prompt-audio"},{"title":"Generate a Q\u0026A resume prompt","deprecated":null,"version":null,"openapi":"/openapi.json post /api/narration/generate-prompt","href":"/api-reference/narration/generate-a-q\u0026a-resume-prompt"}]},{"group":"Images","expanded":false,"pages":[{"title":"List images","deprecated":null,"version":null,"openapi":"/openapi.json get /api/images","href":"/api-reference/images/list-images"},{"title":"Upload an image","deprecated":null,"version":null,"openapi":"/openapi.json post /api/images/upload","href":"/api-reference/images/upload-an-image"},{"title":"Delete an image","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/images/{imageId}","href":"/api-reference/images/delete-an-image"}]},{"group":"Voices","expanded":false,"pages":[{"title":"List available voices","deprecated":null,"version":null,"openapi":"/openapi.json get /api/voices/list","href":"/api-reference/voices/list-available-voices"}]},{"group":"Utility","expanded":false,"pages":[{"title":"Health check","deprecated":null,"version":null,"openapi":"/openapi.json get /api/health","href":"/api-reference/utility/health-check"},{"title":"Validate an address","deprecated":null,"version":null,"openapi":"/openapi.json post /api/address/validate","href":"/api-reference/utility/validate-an-address"}]},{"group":"Authentication","expanded":false,"pages":[{"title":"Log in","deprecated":null,"version":null,"openapi":"/openapi.json post /api/auth/login","href":"/api-reference/authentication/log-in"},{"title":"Log out","deprecated":null,"version":null,"openapi":"/openapi.json post /api/auth/logout","href":"/api-reference/authentication/log-out"},{"title":"Get current user","deprecated":null,"version":null,"openapi":"/openapi.json get /api/auth/me","href":"/api-reference/authentication/get-current-user"},{"title":"Portal SSO via auth code exchange","deprecated":null,"version":null,"openapi":"/openapi.json get /api/auth/sso","href":"/api-reference/authentication/portal-sso-via-auth-code-exchange"},{"title":"Portal SSO token-bearer exchange","deprecated":null,"version":null,"openapi":"/openapi.json post /api/auth/sso/exchange","href":"/api-reference/authentication/portal-sso-token-bearer-exchange"},{"title":"CORS preflight for the SSO exchange","deprecated":null,"version":null,"openapi":"/openapi.json options /api/auth/sso/exchange","href":"/api-reference/authentication/cors-preflight-for-the-sso-exchange"}]},{"group":"Company","expanded":false,"pages":[{"title":"Get company contact info","deprecated":null,"version":null,"openapi":"/openapi.json get /api/company/contact","href":"/api-reference/company/get-company-contact-info"},{"title":"Update company contact info","deprecated":null,"version":null,"openapi":"/openapi.json put /api/company/contact","href":"/api-reference/company/update-company-contact-info"},{"title":"Mark the welcome wizard as seen","deprecated":null,"version":null,"openapi":"/openapi.json post /api/company/welcome-seen","href":"/api-reference/company/mark-the-welcome-wizard-as-seen"},{"title":"Get knowledge base profile","deprecated":null,"version":null,"openapi":"/openapi.json get /api/company/kb/profile","href":"/api-reference/company/get-knowledge-base-profile"},{"title":"Update knowledge base profile","deprecated":null,"version":null,"openapi":"/openapi.json put /api/company/kb/profile","href":"/api-reference/company/update-knowledge-base-profile"},{"title":"List knowledge base documents","deprecated":null,"version":null,"openapi":"/openapi.json get /api/company/kb/documents","href":"/api-reference/company/list-knowledge-base-documents"},{"title":"Initiate document upload","deprecated":null,"version":null,"openapi":"/openapi.json post /api/company/kb/documents/upload-init","href":"/api-reference/company/initiate-document-upload"},{"title":"Complete document upload","deprecated":null,"version":null,"openapi":"/openapi.json post /api/company/kb/documents/complete","href":"/api-reference/company/complete-document-upload"},{"title":"Get a knowledge base document","deprecated":null,"version":null,"openapi":"/openapi.json get /api/company/kb/documents/{documentId}","href":"/api-reference/company/get-a-knowledge-base-document"},{"title":"Delete a knowledge base document","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/company/kb/documents/{documentId}","href":"/api-reference/company/delete-a-knowledge-base-document"}]},{"group":"Contracts","expanded":false,"pages":[{"title":"Import a contract document","deprecated":null,"version":null,"openapi":"/openapi.json post /api/contracts/import","href":"/api-reference/contracts/import-a-contract-document"},{"title":"List action configs","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks/{deckId}/action-configs","href":"/api-reference/contracts/list-action-configs"},{"title":"Create an action config","deprecated":null,"version":null,"openapi":"/openapi.json post /api/decks/{deckId}/action-configs","href":"/api-reference/contracts/create-an-action-config"},{"title":"Get an action config","deprecated":null,"version":null,"openapi":"/openapi.json get /api/decks/{deckId}/action-configs/{configId}","href":"/api-reference/contracts/get-an-action-config"},{"title":"Update an action config","deprecated":null,"version":null,"openapi":"/openapi.json put /api/decks/{deckId}/action-configs/{configId}","href":"/api-reference/contracts/update-an-action-config"},{"title":"Delete an action config","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/decks/{deckId}/action-configs/{configId}","href":"/api-reference/contracts/delete-an-action-config"},{"title":"Get contract for signing","deprecated":null,"version":null,"openapi":"/openapi.json get /api/presentations/{presentationId}/sign-contract","href":"/api-reference/contracts/get-contract-for-signing"},{"title":"Sign a contract","deprecated":null,"version":null,"openapi":"/openapi.json post /api/presentations/{presentationId}/sign-contract","href":"/api-reference/contracts/sign-a-contract"}]},{"group":"Notifications","expanded":false,"pages":[{"title":"List notification subscriptions","deprecated":null,"version":null,"openapi":"/openapi.json get /api/notifications/subscriptions","href":"/api-reference/notifications/list-notification-subscriptions"},{"title":"Create a notification subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /api/notifications/subscriptions","href":"/api-reference/notifications/create-a-notification-subscription"},{"title":"Get a notification subscription","deprecated":null,"version":null,"openapi":"/openapi.json get /api/notifications/subscriptions/{subscriptionId}","href":"/api-reference/notifications/get-a-notification-subscription"},{"title":"Update a notification subscription","deprecated":null,"version":null,"openapi":"/openapi.json put /api/notifications/subscriptions/{subscriptionId}","href":"/api-reference/notifications/update-a-notification-subscription"},{"title":"Delete a notification subscription","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/notifications/subscriptions/{subscriptionId}","href":"/api-reference/notifications/delete-a-notification-subscription"},{"title":"List event log","deprecated":null,"version":null,"openapi":"/openapi.json get /api/notifications/events","href":"/api-reference/notifications/list-event-log"}]},{"group":"Fonts","expanded":false,"pages":[{"title":"List available fonts","deprecated":null,"version":null,"openapi":"/openapi.json get /api/fonts","href":"/api-reference/fonts/list-available-fonts"}]},{"group":"Appointments","expanded":false,"pages":[{"title":"Get available appointment slots","deprecated":null,"version":null,"openapi":"/openapi.json get /api/presentations/{presentationId}/appointment","href":"/api-reference/appointments/get-available-appointment-slots"},{"title":"Book an appointment","deprecated":null,"version":null,"openapi":"/openapi.json post /api/presentations/{presentationId}/appointment","href":"/api-reference/appointments/book-an-appointment"}]},{"group":"Roof Measurements","expanded":false,"pages":[{"title":"Request roof measurements","deprecated":null,"version":null,"openapi":"/openapi.json post /api/roof-measurements","href":"/api-reference/roof-measurements/request-roof-measurements"},{"title":"Get roof measurement status","deprecated":null,"version":null,"openapi":"/openapi.json get /api/roof-measurements/{requestId}/status","href":"/api-reference/roof-measurements/get-roof-measurement-status"},{"title":"Cancel a roof measurement request","deprecated":null,"version":null,"openapi":"/openapi.json post /api/roof-measurements/{requestId}/cancel","href":"/api-reference/roof-measurements/cancel-a-roof-measurement-request"}]},{"group":"Actions","expanded":false,"pages":[{"title":"Detect a voice or text command","deprecated":null,"version":null,"openapi":"/openapi.json post /api/actions","href":"/api-reference/actions/detect-a-voice-or-text-command"}]},{"group":"Onboarding","expanded":false,"pages":[{"title":"Record a presentations onboarding completion or dismissal","deprecated":null,"version":null,"openapi":"/openapi.json post /api/onboarding/tour","href":"/api-reference/onboarding/record-a-presentations-onboarding-completion-or-dismissal"}]}]}]}]},"basePath":"","title":"Get engagement summary - Demand IQ Docs","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}