---
title: "Compute totals without creating anything (API key / Bearer auth, no usage fee)"
method: POST
path: "/v1/quotes/preview"
---

# Compute totals without creating anything (API key / Bearer auth, no usage fee)

`POST /v1/quotes/preview`

## Request

- Base URL: `https://sendquotenow.com`
- URL: `https://sendquotenow.com/v1/quotes/preview`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Also exposed as the preview_quote tool on the MCP server at /mcp.

## Request body

- object
  - `company` object: Optional branding override: name, email, phone, address, terms
  - `customer` object: Quote recipient: name, email, phone
  - `services` object[], required: Line items for the quote
    - `name` string, required
    - `description` string
    - `quantity` number
    - `unit_price` number, required
  - `tax_rate` number: Decimal, e.g. 0.08 for 8%
  - `discount` object: { type: "percent"|"fixed", value: n }
  - `currency` 'USD' | 'CAD' | 'EUR' | 'GBP' | 'AUD'
  - `expiration_days` integer
  - `template` 'standard' | 'slate' | 'emerald' | 'noir' | 'violet'
  - `industry` string: Styling hint only, e.g. hvac, photography
  - `notes` string
  - `scope_of_work` string: Rendered as a Scope of Work section on the document.
  - `auto_scope` boolean: If true and scope_of_work is omitted, the server writes it via the Claude API from the line items/notes/industry. Adds LLM latency (~2s) beyond the normal <2s response; no-ops (returns no scope) if the server has no Claude API key configured. Ignored if scope_of_work is provided.
  - `delivery` object: { method: "email", to, cc, message }
  - `document_type` 'quote' | 'invoice' | 'purchase_order': "invoice" issues a standalone, immediately-payable invoice (same hosted page/PDF/payment link as a quote, just numbered INV-xxxx). To convert an existing quote after the fact, use POST /v1/quotes/{id}/convert-to-invoice instead.

## Response `200`

Quote or invoice-labeled quote created: hosted PDF, QR code, Stripe payment link, expiration

- object

## Other responses

- `401`: Missing or invalid API key

---

[API](https://skmtc.dev/sendquotenow/apis/sendquotenow-quote-estimate-generator-for-ai-agents.md) · [All operations](https://skmtc.dev/sendquotenow/apis/sendquotenow-quote-estimate-generator-for-ai-agents/llms.txt) · [OpenAPI document](https://skmtc.dev/sendquotenow/apis/sendquotenow-quote-estimate-generator-for-ai-agents/revisions/a40bd195585c?raw)
