# Demand IQ Docs ## Docs - [Classify user intent](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/actions/classify-user-intent.md): Classify a user's response after Q&A to determine whether they want to continue the presentation, go back, or ask another question. - [Classify voice/text action](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/actions/classify-voicetext-action.md): Classify user voice or text input as a presentation control command (navigation, audio, CTA) or route to Q&A. Uses AI classification with regex fallback. - [Validate an address](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/address/validate-an-address.md): Validate an address via geocoding. Returns coordinates, formatted address, and normalized fields. - [Get current user](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/auth/get-current-user.md): Return the authenticated user's profile and organization info. - [Log in](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/auth/log-in.md): Authenticate with email and password. Returns user and organization info and sets a session cookie. - [Log out](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/auth/log-out.md): Revoke the current session and clear the session cookie. - [Get branding](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/branding/get-branding.md): Retrieve the branding configuration for a deck including colors, logo, fonts, and CTA. - [Update branding](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/branding/update-branding.md): Create or update branding for a deck. Requires at minimum a color palette and CTA configuration. - [Complete KB document upload](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/company/complete-kb-document-upload.md): Mark a document upload as complete and trigger background processing (chunking, embedding). - [Delete a KB document](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/company/delete-a-kb-document.md): Remove a knowledge base document from storage and the database. - [Get a KB document](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/company/get-a-kb-document.md): Retrieve a single knowledge base document by ID. - [Get company contact](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/company/get-company-contact.md): Retrieve your organization's contact information. - [Get knowledge base profile](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/company/get-knowledge-base-profile.md): Retrieve your organization's knowledge base profile used for AI-powered Q&A responses. - [Initialize KB document upload](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/company/initialize-kb-document-upload.md): Start a knowledge base document upload. Returns a presigned S3 upload URL. Validates file type, size, and document count limits. - [List KB documents](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/company/list-kb-documents.md): List all knowledge base documents for your organization. - [Update company contact](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/company/update-company-contact.md): Update your organization's contact information. - [Update knowledge base profile](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/company/update-knowledge-base-profile.md): Create or update your organization's knowledge base profile. - [Get Demand IQ settings](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/config/get-demand-iq-settings.md): Retrieve company settings from the Demand IQ platform, including pricing defaults. - [Get Maps API key](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/config/get-maps-api-key.md): Retrieve the Google Maps API key for client-side address autocomplete. Returns `null` if not configured. - [Create an action config](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/contracts/create-an-action-config.md): Create a new contract or LOI template for a deck. - [Delete an action config](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/contracts/delete-an-action-config.md): Remove a contract or LOI template from a deck. - [Get an action config](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/contracts/get-an-action-config.md): Retrieve a specific action config by ID. - [Get contract template](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/contracts/get-contract-template.md): Retrieve the contract template for preview. Returns the template markdown, requirements, rep name, company info, and product selections. - [Import a contract document](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/contracts/import-a-contract-document.md): Upload a contract document (PDF or Word, max 10 MB) for AI analysis. Extracts variables and template structure for use as a contract template. - [List action configs](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/contracts/list-action-configs.md): List all action configurations (contract and LOI templates) for a deck. - [Sign a contract](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/contracts/sign-a-contract.md): Sign a contract for a presentation. Validates the signature against the customer name, resolves template variables, and creates a signed document record. - [Update an action config](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/contracts/update-an-action-config.md): Update a contract or LOI template. - [Create a deck](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/decks/create-a-deck.md): Create a new presentation deck with a name, type, and optional configuration. - [Delete a deck](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/decks/delete-a-deck.md): Delete a deck and all associated data (slides, FAQs, branding). - [Delete intro page](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/decks/delete-intro-page.md): Remove the intro page configuration from a deck. - [Generate preview audio](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/decks/generate-preview-audio.md): Generate preview audio for all slides that have personalization tokens but no preview audio yet. - [Generate slides from images](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/decks/generate-slides-from-images.md): Start async generation of slides from uploaded images for image-based decks. Uses AI vision analysis to extract content and generate narration. Returns a job ID for tracking progress. - [Get a deck](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/decks/get-a-deck.md): Retrieve a deck with all its content including slides, FAQs, branding, and Q&A settings. - [Get generation status](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/decks/get-generation-status.md): Check the status of a slide generation job. Reports progress, current slide count, and any errors. - [Get intro page](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/decks/get-intro-page.md): Retrieve the intro page configuration for a deck. - [Get preview status](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/decks/get-preview-status.md): Check how many slides need preview audio generation. - [List decks](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/decks/list-decks.md): List all decks for your organization, ordered by creation date (newest first). - [Update a deck](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/decks/update-a-deck.md): Update a deck's metadata fields such as name, description, type, and pricing configuration. - [Update intro page](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/decks/update-intro-page.md): Create or update the intro page for a deck. Enabling an intro page automatically sets the deck to lazy generation mode. - [Create an FAQ](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/faqs/create-an-faq.md): Add an FAQ to a deck. Automatically generates TTS audio for the answer. - [Delete an FAQ](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/faqs/delete-an-faq.md): Remove an FAQ from its deck. - [List FAQs](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/faqs/list-faqs.md): List all FAQs for a deck. - [Update an FAQ](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/faqs/update-an-faq.md): Update an FAQ's question, answer, or related slide. Regenerates TTS audio when the answer text changes. - [List fonts](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/fonts/list-fonts.md): List available Google Fonts for deck branding. - [Health check](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/health/health-check.md): Returns the health status of the API. - [Delete an image](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/images/delete-an-image.md): Remove an image from storage and the database. - [List images](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/images/list-images.md): List all images for your organization with pagination. - [Upload an image](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/images/upload-an-image.md): Upload and optimize an image (max 10 MB). Supports JPEG, PNG, WebP, and SVG. Images are automatically resized and compressed. - [Batch generate narration](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/narration/batch-generate-narration.md): Generate narration for multiple slides at once. Uses session-based caching and processes uncached slides sequentially. - [Generate narration](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/narration/generate-narration.md): Synthesize speech for a slide's narration script using the configured TTS provider. - [Generate Q&A prompt audio](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/narration/generate-q&a-prompt-audio.md): Generate and store audio for Q&A resume or transition prompts. Replaces any existing audio. - [Generate resume narration](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/narration/generate-resume-narration.md): Generate a bridge narration for resuming the presentation after a Q&A interaction. - [Generate single slide narration](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/narration/generate-single-slide-narration.md): Synthesize speech for a single slide with session-based caching. Returns cached results for previously generated slides. - [Create a subscription](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/notifications/create-a-subscription.md): Subscribe to events via webhook, email, or console. Configure which event types to receive and the delivery channel. - [Delete a subscription](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/notifications/delete-a-subscription.md): Remove a notification subscription. - [Get a subscription](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/notifications/get-a-subscription.md): Retrieve a notification subscription by ID. - [List events](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/notifications/list-events.md): Query the event log for your organization with optional filtering by event type, aggregate, and date range. - [List notification subscriptions](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/notifications/list-notification-subscriptions.md): List all notification subscriptions for your organization. - [Update a subscription](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/notifications/update-a-subscription.md): Update a notification subscription's name, event type, channel, config, scope, or active status. - [Create a presentation](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/presentations/create-a-presentation.md): Create a personalized presentation for a homeowner. Validates the address, evaluates pricing formulas, snapshots slides, and begins audio generation. Returns a shareable presentation URL. - [Delete a presentation](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/presentations/delete-a-presentation.md): Soft-delete a presentation. The presentation URL will no longer be accessible. - [Get presentation status](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/presentations/get-presentation-status.md): Poll the generation status of a presentation. Use this to track progress during audio generation. - [Get product selections](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/presentations/get-product-selections.md): Retrieve all product tier selections made by a homeowner for a presentation. - [Ingest presentation event](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/presentations/ingest-presentation-event.md): Submit a presentation event for tracking. Supports multiple event types: Q&A interactions, slide views, CTA clicks, and presentation opens. Requires HMAC authentication via the `_token` field. - [List presentations](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/presentations/list-presentations.md): List all presentations for a deck, ordered by creation date (newest first). - [Refresh event token](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/presentations/refresh-event-token.md): Exchange a recently expired event ingest token for a new 24-hour token. The expired token must be within 7 days of expiration. - [Save product selection](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/presentations/save-product-selection.md): Save a homeowner's product tier selection for a specific slide. - [Start presentation generation](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/presentations/start-presentation-generation.md): Trigger lazy generation for a presentation. Call this when the homeowner clicks the CTA on the intro page. Safe to call multiple times — duplicate requests are ignored. - [Update a presentation](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/presentations/update-a-presentation.md): Update editable fields on a presentation such as homeowner data, voice settings, and price inputs. - [Load presentation for viewer](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/public-presentations/load-presentation-for-viewer.md): Load complete presentation data for the public viewer. Returns slides with narration audio, branding, FAQs, and Q&A settings. - [Ask a question](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/q&a/ask-a-question.md): Submit a question during a presentation. Routes through FAQ matching (exact, then semantic) and falls back to AI generation. Supports both authenticated admin and public access. - [Get Q&A settings](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/q&a/get-q&a-settings.md): Retrieve the Q&A settings for a deck, including resume and transition prompt text and audio. - [Update Q&A settings](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/q&a/update-q&a-settings.md): Update Q&A resume and transition prompt text. Changing the text clears any previously generated audio so it can be regenerated. - [Cancel measurement](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/roof-measurements/cancel-measurement.md): Cancel or skip a roof measurement request. Use `cancel` to abort entirely or `skip` to allow manual entry. - [Get measurement status](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/roof-measurements/get-measurement-status.md): Poll the status of a roof measurement request. Each poll processes one orchestration step. - [Start roof measurement](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/roof-measurements/start-roof-measurement.md): Request a roof measurement for a homeowner's address. Validates the address and creates a pending measurement request. - [Analyze slide image](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/slides/analyze-slide-image.md): Upload a slide image for AI analysis. Extracts title and key points using GPT-4o Vision, then generates a narration script. - [Create a slide](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/slides/create-a-slide.md): Add a new slide to a deck. Provide a title, narration script, and optional bullet points and hero image. - [Delete a slide](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/slides/delete-a-slide.md): Remove a slide from its deck. - [Get product data](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/slides/get-product-data.md): Retrieve product pricing tiers (good/better/best) for a slide. - [List slides](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/slides/list-slides.md): List all slides for a deck, ordered by position. Includes product data for product pricing slides. - [Remove product data](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/slides/remove-product-data.md): Remove product data from a slide, converting it back to a standard slide. - [Reorder slides](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/slides/reorder-slides.md): Update the position of slides in a deck by providing an array of slide ID and order index pairs. - [Update a slide](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/slides/update-a-slide.md): Update a slide's content including title, bullets, narration script, audio, and hero image. - [Update product data](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/slides/update-product-data.md): Create or update product pricing tiers for a slide. Automatically sets the slide type to `product_pricing_v1`. - [List voices](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/api-reference/voices/list-voices.md): List available TTS voices curated for sales presentations. - [Introduction](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/introduction.md): Sales CoPilot API documentation for building and managing AI-powered sales presentations. - [Quickstart](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/quickstart.md): Create your first AI-narrated presentation in a few API calls. ## OpenAPI Specs - [openapi](https://demandiq-mintlify-api-docs-1773849651.mintlify.app/openapi.json)