# Demand IQ Docs ## Docs - [Book an appointment](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/appointments/book-an-appointment.md): Books an appointment for the presentation viewer. Optionally updates the prospect's email and phone number. - [Get available appointment slots](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/appointments/get-available-appointment-slots.md): Fetches available appointment time slots and any existing appointment for the presentation viewer. Slots are grouped by date in the prospect's timezone. - [Get current user](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/authentication/get-current-user.md): Returns the authenticated user's identity and organization. - [Log in](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/authentication/log-in.md): Authenticates with email and password. Returns user and organization info and sets a session cookie. Rate-limited to prevent brute-force attacks. - [Log out](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/authentication/log-out.md): Revokes the current session and clears the session cookie. - [Get branding](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/branding/get-branding.md) - [Upsert branding](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/branding/upsert-branding.md): Creates or replaces the branding configuration for a deck. - [Complete document upload](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/company/complete-document-upload.md): Marks a document as uploaded after the client finishes uploading to S3. Triggers background processing (text extraction, chunking, and embedding). - [Delete a knowledge base document](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/company/delete-a-knowledge-base-document.md): Removes the document from S3 and the database. Associated chunks are deleted automatically. - [Get a knowledge base document](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/company/get-a-knowledge-base-document.md) - [Get company contact info](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/company/get-company-contact-info.md): Returns the organization's contact details used in contracts and branding. - [Get knowledge base profile](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/company/get-knowledge-base-profile.md): Returns the company's knowledge base profile that guides how the AI answers customer questions. - [Initiate document upload](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/company/initiate-document-upload.md): Validates the file and returns a presigned S3 URL for direct upload. Call `/api/company/kb/documents/complete` after the upload finishes. - [List knowledge base documents](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/company/list-knowledge-base-documents.md): Returns all uploaded knowledge base documents for the organization, with usage metadata. - [Update company contact info](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/company/update-company-contact-info.md) - [Update knowledge base profile](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/company/update-knowledge-base-profile.md): Updates the company tagline, about text, trust signals, service coverage, and answer style used by the AI. - [Create an action config](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/contracts/create-an-action-config.md): Creates a new contract template or action configuration for a deck. - [Delete an action config](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/contracts/delete-an-action-config.md) - [Get an action config](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/contracts/get-an-action-config.md) - [Get contract for signing](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/contracts/get-contract-for-signing.md): Returns the contract template, company branding, and product data needed to render the signing view. - [Import a contract document](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/contracts/import-a-contract-document.md): Uploads a contract document (PDF or Word), extracts text, and uses AI to analyze it for template conversion. Returns detected variables that can be used in contract templates. - [List action configs](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/contracts/list-action-configs.md): Returns all action configurations (contract templates) for a deck. - [Sign a contract](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/contracts/sign-a-contract.md): Submits a contract signature. Validates the typed signature against the customer name, resolves the template with variables, and creates an audit-trailed signed document. - [Update an action config](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/contracts/update-an-action-config.md) - [Create a deck](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/decks/create-a-deck.md) - [Delete a deck](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/decks/delete-a-deck.md): Permanently deletes a deck and all associated slides, FAQs, and branding. - [Delete intro page config](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/decks/delete-intro-page-config.md) - [Get a deck](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/decks/get-a-deck.md): Returns the full deck including slides, FAQs, branding, and Q&A settings. - [Get intro page config](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/decks/get-intro-page-config.md): Returns the intro page configuration for a deck, including the background image, headline, and CTA button label. - [List decks](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/decks/list-decks.md): Returns all decks for the authenticated organization, ordered by most recently created. - [Update a deck](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/decks/update-a-deck.md) - [Upsert intro page config](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/decks/upsert-intro-page-config.md): Creates or updates the intro page for a deck. Enabling an intro page switches the deck to lazy generation mode. - [Create a FAQ](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/faqs/create-a-faq.md): Creates a FAQ and automatically generates TTS audio for the answer. - [Delete a FAQ](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/faqs/delete-a-faq.md) - [List FAQs](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/faqs/list-faqs.md) - [Update a FAQ](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/faqs/update-a-faq.md) - [List available fonts](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/fonts/list-available-fonts.md): Returns a list of available Google Fonts for use in deck branding. Results are cached for 24 hours. - [Poll generation status](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/generation/poll-generation-status.md) - [Start AI generation from images](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/generation/start-ai-generation-from-images.md): Accepts uploaded slide images, runs them through GPT-4o Vision to extract content, generates narration scripts, and synthesizes audio. Returns a job ID — poll `/api/decks/{deckId}/generate/status` for progress. - [Delete an image](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/images/delete-an-image.md) - [List images](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/images/list-images.md): Returns all uploaded images for the authenticated organization. - [Upload an image](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/images/upload-an-image.md): Uploads and optimizes an image (max 1920px width, JPEG quality 85). Returns the S3 key and a presigned URL. - [Synthesize narration for multiple slides](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/narration/synthesize-narration-for-multiple-slides.md): Batch TTS generation. Per-slide failures return a fallback audio URL rather than failing the whole batch. - [Synthesize narration for one slide](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/narration/synthesize-narration-for-one-slide.md): Generates TTS audio for a slide script. Results are cached per session. - [Synthesize resume narration](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/narration/synthesize-resume-narration.md): Generates the spoken bridge from Q&A back into the presentation, using the deck's configured transition prompt. - [Create a notification subscription](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/notifications/create-a-notification-subscription.md): Subscribes to an event type via a delivery channel (webhook, email, or console). - [Delete a notification subscription](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/notifications/delete-a-notification-subscription.md) - [Get a notification subscription](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/notifications/get-a-notification-subscription.md) - [List event log](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/notifications/list-event-log.md): Returns a paginated, filterable log of all events for the organization. - [List notification subscriptions](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/notifications/list-notification-subscriptions.md): Returns all notification subscriptions for the organization. - [Update a notification subscription](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/notifications/update-a-notification-subscription.md) - [Create a presentation](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/presentations/create-a-presentation.md): Creates a personalized presentation for a homeowner. The address is validated via Google Geocoding. Returns a shareable URL immediately; audio generation may continue in the background. - [Delete a presentation](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/presentations/delete-a-presentation.md): Soft-deletes a presentation (sets `deletedAt`). The shareable URL stops working immediately. - [Get presentation status](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/presentations/get-presentation-status.md): Returns the current processing status and slide readiness. - [Get product selections](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/presentations/get-product-selections.md): Returns all product tier selections the viewer has made during the presentation. - [List presentations](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/presentations/list-presentations.md): Returns all non-deleted presentations created from this deck. - [Record a presentation event](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/presentations/record-a-presentation-event.md): Ingests interaction events from the presentation viewer (slide views, CTA clicks, Q&A logs). Authenticated via an HMAC token in the request body. - [Save a product selection](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/presentations/save-a-product-selection.md): Saves a product tier selection for a specific slide during the presentation. - [Start a presentation](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/presentations/start-a-presentation.md): Triggers lazy generation when a viewer clicks the CTA on the intro page. Safe to call multiple times — duplicate generation requests are ignored. - [Update a presentation](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/presentations/update-a-presentation.md): Partial update for homeowner data, voice settings, language, or price inputs. - [Answer a question](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/q&a/answer-a-question.md): Answers a viewer question. Checks FAQs first (exact then semantic match at >= 0.6 confidence), falls back to GPT-4o with slide context. Returns answer text plus synthesized audio. - [Get Q&A settings](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/q&a/get-q&a-settings.md): Returns the customizable resume and transition prompts for the deck's Q&A experience. - [Update Q&A settings](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/q&a/update-q&a-settings.md) - [Create a slide](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/slides/create-a-slide.md) - [Delete a slide](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/slides/delete-a-slide.md) - [Get product pricing data](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/slides/get-product-pricing-data.md): Returns the good/better/best product pricing tiers for a product pricing slide. - [List slides](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/slides/list-slides.md) - [Remove product pricing data](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/slides/remove-product-pricing-data.md): Removes product data and resets the slide type to `standard`. - [Reorder slides](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/slides/reorder-slides.md) - [Update a slide](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/slides/update-a-slide.md) - [Upsert product pricing data](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/slides/upsert-product-pricing-data.md): Sets product pricing tiers for a slide. The slide type is automatically set to `product_pricing_v1`. - [Health check](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/utility/health-check.md): Returns `{ ok: true }` if the service is running. - [Validate an address](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/utility/validate-an-address.md): Validates a physical address using geocoding. Returns formatted address, coordinates, and normalized components. - [List available voices](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/api-reference/voices/list-available-voices.md): Returns a curated list of voices suitable for sales presentations. - [Introduction](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/journeys/introduction.md): Journeys is coming soon to Demand IQ. - [Branding](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/sales-copilot/guides/branding.md): Make presentations look like they came from you — your colors, logo, and messaging throughout. - [Setting Up Your First Deck](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/sales-copilot/guides/deck-types.md): Upload your slide images and let Sales CoPilot build a narrated presentation from them. - [FAQs](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/sales-copilot/guides/faqs.md): Pre-build answers to common questions so homeowners always get a consistent, on-brand response. - [Narration & Voices](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/sales-copilot/guides/narration.md): Choose the voice for your presentations and keep narration up to date as you edit slides. - [Introduction](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/sales-copilot/introduction.md): Sales CoPilot is an AI-powered presentation platform with narrated slides, live Q&A, and deck management. - [Quickstart](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/sales-copilot/quickstart.md): Go from zero to a live, personalized AI presentation in minutes. ## OpenAPI Specs - [openapi](https://demandiq-mintlify-appointment-api-docs-1774040661.mintlify.app/openapi.json)