Creates a personalized presentation. Provide homeowner, prospect_id, or both — at least one is required. With only homeowner, a new prospect is created from it. With only prospect_id, homeowner data is fetched from that prospect’s journey. With both, the supplied homeowner data is used as-is and the existing prospect is attached (it must be visible to your credential — otherwise 422 PROSPECT_NOT_FOUND). The address is validated via Google Geocoding. Returns a shareable URL immediately; audio generation may continue in the background.
Price inputs are optional. If a product pricing slide uses formula variables that are not supplied, the price is deferred — the slide displays a placeholder instead of failing. Deferred prices can be resolved later when the missing values become available (e.g., after roof measurements). AI Presentations defers a measurement-backed variable only when a formula on one of the deck’s product-pricing slides references it. Price variables left in the deck’s settings after their product slide was removed, or after its formula stopped referencing them, are ignored. While the deck itself is still being generated, the request is refused with 409 DECK_GENERATING: a presentation is a permanent snapshot of the deck at creation time, so one taken mid-generation would be permanently missing slides. Retry once the generation job completes.
Prospect to attach the presentation to. Alone, homeowner data is fetched from the prospect's journey; with homeowner, the prospect is attached and the supplied data is used as-is. Must be visible to your credential.
Set to auto to resolve measurement-backed price variables from automated roof measurements instead of supplying them in price_inputs. Only variables referenced by a formula on the deck's product-pricing slides are deferred to measurements.
{"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/presentations/create-a-presentation","slug":"/api-reference/presentations/create-a-presentation","pageMetadata":{"title":"Create a presentation","description":"Creates a personalized presentation. Provide `homeowner`, `prospect_id`, or both — at least one is required. With only `homeowner`, a new prospect is created from it. With only `prospect_id`, homeowner data is fetched from that prospect's journey. With both, the supplied homeowner data is used as-is and the existing prospect is attached (it must be visible to your credential — otherwise 422 `PROSPECT_NOT_FOUND`). The address is validated via Google Geocoding. Returns a shareable URL immediately; audio generation may continue in the background.\n\nPrice inputs are optional. If a product pricing slide uses formula variables that are not supplied, the price is deferred — the slide displays a placeholder instead of failing. Deferred prices can be resolved later when the missing values become available (e.g., after roof measurements). AI Presentations defers a measurement-backed variable only when a formula on one of the deck's product-pricing slides references it. Price variables left in the deck's settings after their product slide was removed, or after its formula stopped referencing them, are ignored. While the deck itself is still being generated, the request is refused with 409 `DECK_GENERATING`: a presentation is a permanent snapshot of the deck at creation time, so one taken mid-generation would be permanently missing slides. Retry once the generation job completes.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/decks/{deckId}/presentations","href":"/api-reference/presentations/create-a-presentation","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: [\"Creates a personalized presentation. Provide \", _jsx(_components.code, {\n children: \"homeowner\"\n }), \", \", _jsx(_components.code, {\n children: \"prospect_id\"\n }), \", or both — at least one is required. With only \", _jsx(_components.code, {\n children: \"homeowner\"\n }), \", a new prospect is created from it. With only \", _jsx(_components.code, {\n children: \"prospect_id\"\n }), \", homeowner data is fetched from that prospect’s journey. With both, the supplied homeowner data is used as-is and the existing prospect is attached (it must be visible to your credential — otherwise 422 \", _jsx(_components.code, {\n children: \"PROSPECT_NOT_FOUND\"\n }), \"). The address is validated via Google Geocoding. Returns a shareable URL immediately; audio generation may continue in the background.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Price inputs are optional. If a product pricing slide uses formula variables that are not supplied, the price is deferred — the slide displays a placeholder instead of failing. Deferred prices can be resolved later when the missing values become available (e.g., after roof measurements). AI Presentations defers a measurement-backed variable only when a formula on one of the deck’s product-pricing slides references it. Price variables left in the deck’s settings after their product slide was removed, or after its formula stopped referencing them, are ignored. While the deck itself is still being generated, the request is refused with 409 \", _jsx(_components.code, {\n children: \"DECK_GENERATING\"\n }), \": a presentation is a permanent snapshot of the deck at creation time, so one taken mid-generation would be permanently missing slides. Retry once the generation job completes.\"]\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":"Create a presentation","description":"Creates a personalized presentation. Provide `homeowner`, `prospect_id`, or both — at least one is required. With only `homeowner`, a new prospect is created from it. With only `prospect_id`, homeowner data is fetched from that prospect's journey. With both, the supplied homeowner data is used as-is and the existing prospect is attached (it must be visible to your credential — otherwise 422 `PROSPECT_NOT_FOUND`). The address is validated via Google Geocoding. Returns a shareable URL immediately; audio generation may continue in the background.\n\nPrice inputs are optional. If a product pricing slide uses formula variables that are not supplied, the price is deferred — the slide displays a placeholder instead of failing. Deferred prices can be resolved later when the missing values become available (e.g., after roof measurements). AI Presentations defers a measurement-backed variable only when a formula on one of the deck's product-pricing slides references it. Price variables left in the deck's settings after their product slide was removed, or after its formula stopped referencing them, are ignored. While the deck itself is still being generated, the request is refused with 409 `DECK_GENERATING`: a presentation is a permanent snapshot of the deck at creation time, so one taken mid-generation would be permanently missing slides. Retry once the generation job completes.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/decks/{deckId}/presentations","href":"/api-reference/presentations/create-a-presentation","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Presentations"],"summary":"Create a presentation","description":"Creates a personalized presentation. Provide `homeowner`, `prospect_id`, or both — at least one is required. With only `homeowner`, a new prospect is created from it. With only `prospect_id`, homeowner data is fetched from that prospect's journey. With both, the supplied homeowner data is used as-is and the existing prospect is attached (it must be visible to your credential — otherwise 422 `PROSPECT_NOT_FOUND`). The address is validated via Google Geocoding. Returns a shareable URL immediately; audio generation may continue in the background.\n\nPrice inputs are optional. If a product pricing slide uses formula variables that are not supplied, the price is deferred — the slide displays a placeholder instead of failing. Deferred prices can be resolved later when the missing values become available (e.g., after roof measurements). AI Presentations defers a measurement-backed variable only when a formula on one of the deck's product-pricing slides references it. Price variables left in the deck's settings after their product slide was removed, or after its formula stopped referencing them, are ignored. While the deck itself is still being generated, the request is refused with 409 `DECK_GENERATING`: a presentation is a permanent snapshot of the deck at creation time, so one taken mid-generation would be permanently missing slides. Retry once the generation job completes.","security":["8d6432e1-f2d2-410f-8809-7e4b85626f58"],"parameters":["b2526ec4-cd54-400e-a330-22cf3ff910fc"],"requestBody":"572f234d-5af8-4432-8a71-565118715fa4","responses":{"200":"76d43791-9877-44ce-b370-6da82c2761bc","400":"38f6dd07-c9db-477e-99e6-b8442853cf35","401":"e941c8bc-9b9e-4769-9e78-ce66b24ff6bf","404":"c4caa765-c57d-4c85-a1b5-b0ba81829116","409":"b069544c-92dd-4597-89c4-9f3ecf38f8cd","422":"59a245a8-936b-4b20-9dd6-f5f3a3c06d13","500":"39d46967-c0a1-484b-bbfc-d3f5f951428b","503":"bb4a1612-b83e-4261-9758-45215b4c4ee5"},"method":"post","type":"path","servers":["8c1c298c-6efa-4eee-bbc2-ad374d34a17e","7c7f8449-1062-4369-8578-0037bf063220"],"path":"/api/decks/{deckId}/presentations","baseUrlOptions":["https://app.demand-iq.com","http://localhost:3000"],"title":"Create a presentation","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"b2526ec4-cd54-400e-a330-22cf3ff910fc":{"in":"path","name":"deckId","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"UUID of the deck","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"UUID of the deck"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"homeowner":{"type":"object","properties":{"first_name":{"type":"string","isRequired":true,"uniqueKey":"homeowner.first_name","typeLabel":"string"},"address":{"type":"string","isRequired":true,"uniqueKey":"homeowner.address","typeLabel":"string"},"city":{"type":"string","isRequired":true,"uniqueKey":"homeowner.city","typeLabel":"string"},"country":{"type":"string","minLength":2,"maxLength":2,"description":"ISO 3166-1 alpha-2 country code","example":"US","isRequired":true,"uniqueKey":"homeowner.country","typeLabel":"string"},"last_name":{"type":"string","uniqueKey":"homeowner.last_name","typeLabel":"string"},"state":{"type":"string","uniqueKey":"homeowner.state","typeLabel":"string"},"zip":{"type":"string","uniqueKey":"homeowner.zip","typeLabel":"string"},"email":{"type":"string","format":"email","uniqueKey":"homeowner.email","typeLabel":"string\u003cemail>"},"phone":{"type":"string","uniqueKey":"homeowner.phone","typeLabel":"string"}},"required":["first_name","address","city","country"],"uniqueKey":"homeowner","typeLabel":"object"},"prospect_id":{"type":"string","format":"uuid","description":"Prospect to attach the presentation to. Alone, homeowner data is fetched from the prospect's journey; with `homeowner`, the prospect is attached and the supplied data is used as-is. Must be visible to your credential.","uniqueKey":"prospect_id","typeLabel":"string\u003cuuid>"},"voice_settings":{"type":"object","uniqueKey":"voice_settings","typeLabel":"object"},"language_settings":{"type":"object","uniqueKey":"language_settings","typeLabel":"object"},"price_inputs":{"type":"object","additionalProperties":{"type":"number","uniqueKey":"price_inputs.additionalProperties","typeLabel":"number"},"description":"Values for deck-level price variables (used to evaluate formulas). Optional — omitted variables result in deferred pricing rather than an error.","uniqueKey":"price_inputs","typeLabel":"object"},"measurement_strategy":{"type":"string","enum":["manual","auto"],"default":"manual","description":"Set to `auto` to resolve measurement-backed price variables from automated roof measurements instead of supplying them in `price_inputs`. Only variables referenced by a formula on the deck's product-pricing slides are deferred to measurements.","uniqueKey":"measurement_strategy","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"prospect_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","voice_settings":{},"language_settings":{},"price_inputs":{},"measurement_strategy":"manual"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"76d43791-9877-44ce-b370-6da82c2761bc":{"description":"Presentation created","content":{"application/json":{"schema":{"type":"object","properties":{"deck_presentation_id":{"type":"string","format":"uuid","uniqueKey":"deck_presentation_id","typeLabel":"string\u003cuuid>"},"url":{"type":"string","format":"uri","description":"Shareable presentation URL: the homeowner short link (`https://mypresi.co/\u003cslug>`) where the short-link host is configured, else the `/p/` URL","uniqueKey":"url","typeLabel":"string\u003curi>"},"status":{"type":"string","enum":["not_started","pending","processing","ready","failed"],"uniqueKey":"status","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"deck_presentation_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","url":"\u003cstring>","status":"not_started"}}},"exampleType":"generated"}},"exampleType":"generated"},"38f6dd07-c9db-477e-99e6-b8442853cf35":{"description":"Bad request — malformed input, or the deck has no slides (`\"Deck has no slides\"`). A presentation cannot be created from an empty deck.","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"},"e941c8bc-9b9e-4769-9e78-ce66b24ff6bf":{"description":"Unauthorized","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"},"c4caa765-c57d-4c85-a1b5-b0ba81829116":{"description":"Not found","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"},"b069544c-92dd-4597-89c4-9f3ecf38f8cd":{"description":"Conflict: `DECK_GENERATING` — the deck is still being generated. This check runs before the empty-deck check, so a job that has not written its first slide yet returns 409, not 400. Transient; retry once the job settles.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["DECK_GENERATING"],"uniqueKey":"code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"DECK_GENERATING"}}},"exampleType":"generated"}},"exampleType":"generated"},"59a245a8-936b-4b20-9dd6-f5f3a3c06d13":{"description":"Unprocessable: `INVALID_ADDRESS` (address could not be verified), `PROSPECT_NOT_FOUND` (prospect_id does not exist or belongs to another organization — permanent, do not retry), or `PROSPECT_CREATE_FAILED` (prospect data was rejected upstream)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["INVALID_ADDRESS","PROSPECT_NOT_FOUND","PROSPECT_CREATE_FAILED"],"uniqueKey":"code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"INVALID_ADDRESS"}}},"exampleType":"generated"}},"exampleType":"generated"},"39d46967-c0a1-484b-bbfc-d3f5f951428b":{"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"},"bb4a1612-b83e-4261-9758-45215b4c4ee5":{"description":"Upstream service is unreachable — retry with backoff","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":{"8d6432e1-f2d2-410f-8809-7e4b85626f58":{"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":"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":"Create a presentation - Demand IQ Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T19:16:29.373Z","originalFileLocation":"api-reference/presentations/create-a-presentation.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=\"Creates a personalized presentation. Provide homeowner, prospect_id, or both — at least one is required. With only homeowner, a new prospect is created from it. With only prospect_id, homeowner data is fetched from that prospect\u0026#x27;s journey. With both, the supplied homeowner data is used as-is and the existing prospect is attached (it must be visible to your credential — otherwise 422 PROSPECT_NOT_FOUND). The address is validated via Google Geocoding. Returns a shareable URL immediately; audio generation may continue in the background. Price inputs are optional. If a product pricing slide uses formula variables that are not supplied, the price is deferred — the slide displays a placeholder instead of failing. Deferred prices can be resolved later when the missing values become available (e.g., after roof measurements). AI Presentations defers a measurement-backed variable only when a formula on one of the deck\u0026#x27;s product-pricing slides references it. Price variables left in the deck\u0026#x27;s settings after their product slide was removed, or after its formula stopped referencing them, are ignored. While the deck itself is still being generated, the request is refused with 409 DECK_GENERATING: a presentation is a permanent snapshot of the deck at creation time, so one taken mid-generation would be permanently missing slides. Retry once the generation job completes.\">\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=\"Create a presentation - Demand IQ Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a personalized presentation. Provide homeowner, prospect_id, or both — at least one is required. With only homeowner, a new prospect is created from it. With only prospect_id, homeowner data is fetched from that prospect\u0026#x27;s journey. With both, the supplied homeowner data is used as-is and the existing prospect is attached (it must be visible to your credential — otherwise 422 PROSPECT_NOT_FOUND). The address is validated via Google Geocoding. Returns a shareable URL immediately; audio generation may continue in the background. Price inputs are optional. If a product pricing slide uses formula variables that are not supplied, the price is deferred — the slide displays a placeholder instead of failing. Deferred prices can be resolved later when the missing values become available (e.g., after roof measurements). AI Presentations defers a measurement-backed variable only when a formula on one of the deck\u0026#x27;s product-pricing slides references it. Price variables left in the deck\u0026#x27;s settings after their product slide was removed, or after its formula stopped referencing them, are ignored. While the deck itself is still being generated, the request is refused with 409 DECK_GENERATING: a presentation is a permanent snapshot of the deck at creation time, so one taken mid-generation would be permanently missing slides. Retry once the generation job completes.\">\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/presentations/create-a-presentation\">\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=Presentations\u0026amp;title=Create+a+presentation\u0026amp;description=Creates+a+personalized+presentation.+Provide+%60homeowner%60%2C+%60prospect_id%60%2C+or+both+%E2%80%94+at+least+one+is+required.+With+only+%60homeowner%60%2C+a+new+prospect+is+created+fr\u0026amp;theme=6cb71c7b4cbe4450b6bff4c3\u0026amp;signature=7d9e1e8a0f1a54baf6a2ce990aa51e5af91e64ddc6e97f642218392c3086a311\">\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=\"Create a presentation - Demand IQ Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a personalized presentation. Provide homeowner, prospect_id, or both — at least one is required. With only homeowner, a new prospect is created from it. With only prospect_id, homeowner data is fetched from that prospect\u0026#x27;s journey. With both, the supplied homeowner data is used as-is and the existing prospect is attached (it must be visible to your credential — otherwise 422 PROSPECT_NOT_FOUND). The address is validated via Google Geocoding. Returns a shareable URL immediately; audio generation may continue in the background. Price inputs are optional. If a product pricing slide uses formula variables that are not supplied, the price is deferred — the slide displays a placeholder instead of failing. Deferred prices can be resolved later when the missing values become available (e.g., after roof measurements). AI Presentations defers a measurement-backed variable only when a formula on one of the deck\u0026#x27;s product-pricing slides references it. Price variables left in the deck\u0026#x27;s settings after their product slide was removed, or after its formula stopped referencing them, are ignored. While the deck itself is still being generated, the request is refused with 409 DECK_GENERATING: a presentation is a permanent snapshot of the deck at creation time, so one taken mid-generation would be permanently missing slides. Retry once the generation job completes.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://demandiq.mintlify.site/_mintlify/api/og/v2?division=Presentations\u0026amp;title=Create+a+presentation\u0026amp;description=Creates+a+personalized+presentation.+Provide+%60homeowner%60%2C+%60prospect_id%60%2C+or+both+%E2%80%94+at+least+one+is+required.+With+only+%60homeowner%60%2C+a+new+prospect+is+created+fr\u0026amp;theme=6cb71c7b4cbe4450b6bff4c3\u0026amp;signature=7d9e1e8a0f1a54baf6a2ce990aa51e5af91e64ddc6e97f642218392c3086a311\">\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/presentations/create-a-presentation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/presentations/create-a-presentation.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/presentations/create-a-presentation#webpage\",\"url\":\"https://developer.demand-iq.com/api-reference/presentations/create-a-presentation\",\"name\":\"Create a presentation\",\"description\":\"Creates a personalized presentation. Provide homeowner, prospect_id, or both — at least one is required. With only homeowner, a new prospect is created from it. With only prospect_id, homeowner data is fetched from that prospect's journey. With both, the supplied homeowner data is used as-is and the existing prospect is attached (it must be visible to your credential — otherwise 422 PROSPECT_NOT_FOUND). The address is validated via Google Geocoding. Returns a shareable URL immediately; audio generation may continue in the background. Price inputs are optional. If a product pricing slide uses formula variables that are not supplied, the price is deferred — the slide displays a placeholder instead of failing. Deferred prices can be resolved later when the missing values become available (e.g., after roof measurements). AI Presentations defers a measurement-backed variable only when a formula on one of the deck's product-pricing slides references it. Price variables left in the deck's settings after their product slide was removed, or after its formula stopped referencing them, are ignored. While the deck itself is still being generated, the request is refused with 409 DECK_GENERATING: a presentation is a permanent snapshot of the deck at creation time, so one taken mid-generation would be permanently missing slides. Retry once the generation job completes.\",\"dateModified\":\"2026-11-02T19:16:29.373Z\",\"isPartOf\":{\"@id\":\"https://developer.demand-iq.com#website\"},\"breadcrumb\":{\"@id\":\"https://developer.demand-iq.com/api-reference/presentations/create-a-presentation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.demand-iq.com/api-reference/presentations/create-a-presentation#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\":\"Presentations\",\"item\":\"https://developer.demand-iq.com/api-reference/presentations/list-presentations\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create a presentation\",\"item\":\"https://developer.demand-iq.com/api-reference/presentations/create-a-presentation\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developer.demand-iq.com/api-reference/presentations/create-a-presentation#apireference\",\"headline\":\"Create a presentation\",\"name\":\"Create a presentation\",\"description\":\"Creates a personalized presentation. Provide homeowner, prospect_id, or both — at least one is required. With only homeowner, a new prospect is created from it. With only prospect_id, homeowner data is fetched from that prospect's journey. With both, the supplied homeowner data is used as-is and the existing prospect is attached (it must be visible to your credential — otherwise 422 PROSPECT_NOT_FOUND). The address is validated via Google Geocoding. Returns a shareable URL immediately; audio generation may continue in the background. Price inputs are optional. If a product pricing slide uses formula variables that are not supplied, the price is deferred — the slide displays a placeholder instead of failing. Deferred prices can be resolved later when the missing values become available (e.g., after roof measurements). AI Presentations defers a measurement-backed variable only when a formula on one of the deck's product-pricing slides references it. Price variables left in the deck's settings after their product slide was removed, or after its formula stopped referencing them, are ignored. While the deck itself is still being generated, the request is refused with 409 DECK_GENERATING: a presentation is a permanent snapshot of the deck at creation time, so one taken mid-generation would be permanently missing slides. Retry once the generation job completes.\",\"url\":\"https://developer.demand-iq.com/api-reference/presentations/create-a-presentation\",\"mainEntityOfPage\":{\"@id\":\"https://developer.demand-iq.com/api-reference/presentations/create-a-presentation#webpage\"},\"dateModified\":\"2026-11-02T19:16:29.373Z\",\"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","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","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","description":"Returns all non-deleted presentations created from this deck. Each row carries the four status-ladder timestamps (`sentAt`, `emailOpenedAt`, `firstViewedAt`, plus `createdAt`); the badge shows the furthest rung reached along Created → Sent → Email Opened → Viewed. Any of the three delivery-side timestamps is `null` when that rung has not been reached — for example, a rep-shared link that was opened without ever being emailed carries `sentAt: null`, `emailOpenedAt: null`, and a non-null `firstViewedAt`.","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","description":"Partial update for homeowner data, voice settings, language, or price inputs.","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":"Create a presentation - 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"]}