Create documents from your templates through the API
One call per document: your template, its data items filled from your records, and price-table rows built from your own pricing rules, ready to send or to check first.
- 5/5 on G2
- 4.2 on Capterra
- Building QuoteCloud since 2013
To create a QuoteCloud document through the API, call Create Document with a template, a title, values for the template's data items and, optionally, price-table rows: label, notes, quantity, price, tax, discount and cost. Then add recipients and send it, or leave it as a draft. API access is on Essentials and up.
Last reviewed by the QuoteCloud team
Two overlapping panels with sample data. Behind, Tidewell Pavilion's wedding reception proposal TP-2741 for Hannah Lee and James Okoro, created through the API: data items Event date Saturday 13 March 2027, Guests 96, Space The Boathouse Terrace, Enquiry ID ENQ-50418, and a price table with the Waterside Classic package and beverages for 96 guests, ceremony, styling and DJ, $21,030 plus tax, with the template's extras for the couple to tick. In front, an illustrative create request from Tidewell's server.
Data items filled from the enquiry
Event date- Saturday 13 March 2027From your system · event_date
Guests- 96From your system · guests
Space- The Boathouse TerraceFrom your system · space
Enquiry ID- ENQ-50418From your system · id
Your reception · 96 guests
| Item | Qty | Rate | Amount |
|---|---|---|---|
| Food & beverages | $17,280 | ||
Waterside Classic packagePer guest, from the enquiry's guest count
|
96 guests | $118 | $11,328.00 |
Premium beverages · 5 hoursSparkling, premium wine, beer, soft drinks
|
96 guests | $62 | $5,952.00 |
| Ceremony, styling & music | $3,750 | ||
Ceremony on the lawn60 chairs, arbour, signing table, wet-weather plan
|
1 lot | $1,400 | $1,400.00 |
Theming & stylingCentrepieces for 10 tables, candles and linen
|
1 lot | $1,250 | $1,250.00 |
DJ · 5 hoursCeremony music, first dance and dance floor
|
1 lot | $1,100 | $1,100.00 |
| Extras · from the template Tick to add | |||
Welcome cocktailOn arrival, per guest
|
96 guests | $12 | $1,152.00 |
Late-night grazing stationServed at 9.30 pm, per guest
|
96 guests | $14 | $1,344.00 |
Photo booth · 3 hoursProps and prints
|
1 lot | $890 | $890.00 |
- Subtotal
- $21,030.00
- Tax (10%)
- $2,103.00
- Total
- $23,133.00
- Plus, monthly
- $0.00/mo
- Deposit to confirm your date (20%)
- $4,626.60
Request
# Illustrative only: not QuoteCloud's API reference.# QuoteCloud gives you the endpoint and the credential.POST {QUOTECLOUD_API_URL}Authorization: <credential issued by QuoteCloud>Content-Type: application/json{ "template": "Wedding reception 2027", "title": "Hannah & James's wedding reception", "subtitle": "Saturday 13 March 2027 · 96 guests", "dataItems": { "Event date": "Saturday 13 March 2027", "Guests": 96, "Space": "The Boathouse Terrace", "Enquiry ID": "ENQ-50418" }, "tableId": "reception", "replaceExistingPricingTableRows": true, "rows": [ { "rowType": "heading", "label": "Food & beverages" }, { "rowType": "pricing", "label": "Waterside Classic package", "note": "Per guest", "qty": 96, "price": 118.00, "termBasedProduct": false }, { "rowType": "pricing", "label": "Premium beverages · 5 hours", "qty": 96, "price": 62.00, "termBasedProduct": false } ], "autosend": false}
Illustrative. title, subtitle, tableId, rowType, label, note, qty, price, termBasedProduct, replaceExistingPricingTableRows and autosend are Create Document's fields in QuoteCloud's Zapier app; template and dataItems stand in for the template picker and your own data items.
Why create documents from your own system?
Tidewell Pavilion's booking system already knows the date, the guest count, the space and the package a couple chose. Retyping that into a proposal takes the functions team twenty minutes and is where the wrong guest count creeps in.
With one call from the booking system, QuoteCloud creates the proposal from Tidewell's wedding template: the date and guests in data items, the package priced per guest in the price table, the couple as recipients. Elena Brooks checks it, or it goes straight out.
- The template decides the design, the content blocks and the optional extras; the call fills in the details.
- Your pricing rules stay in your system: the call sends finished rows with quantity and price.
- Keep your own record's ID in a data item, so a later search can find the document again.
What does a create call carry?
Create Document takes a template and a title, values for the template's data items, and price-table rows. Each row has a label, notes, quantity and price, and can carry tax, a discount and a cost for your margin. Headings group rows. Auto send can send it in the same step.
The field names in the sample are the ones QuoteCloud's Zapier app shows for Create Document. The request shape, endpoint and credential are illustrative: QuoteCloud gives you the real ones.
- Document Title is required; Document Subtitle is optional.
- Row Type is pricing or heading; Term Based Product marks a repeating line.
- Table API Link Id names the price table the rows go into.
API & Zapier: Essentials and up · per-document fee for each document created
Where each ID comes fromRequest
# Illustrative only: not QuoteCloud's API reference.# QuoteCloud gives you the endpoint and the credential.POST {QUOTECLOUD_API_URL}Authorization: <credential issued by QuoteCloud>Content-Type: application/json{ "template": "Wedding reception 2027", "title": "Hannah & James's wedding reception", "subtitle": "Saturday 13 March 2027 · 96 guests", "dataItems": { "Event date": "Saturday 13 March 2027", "Guests": 96, "Space": "The Boathouse Terrace", "Enquiry ID": "ENQ-50418" }, "tableId": "reception", "replaceExistingPricingTableRows": true, "rows": [ { "rowType": "heading", "label": "Food & beverages" }, { "rowType": "pricing", "label": "Waterside Classic package", "note": "Per guest", "qty": 96, "price": 118.00, "termBasedProduct": false }, { "rowType": "pricing", "label": "Premium beverages · 5 hours", "qty": 96, "price": 62.00, "termBasedProduct": false } ], "autosend": false}
Response
// Illustrative response: ask QuoteCloud for the real shape.{ "documentNumber": "{DOCUMENT_NUMBER}", "title": "Hannah & James's wedding reception", "status": "Draft"}
Illustrative. title, subtitle, tableId, rowType, label, note, qty, price, termBasedProduct, replaceExistingPricingTableRows and autosend are Create Document's fields in QuoteCloud's Zapier app; template and dataItems stand in for the template picker and your own data items.
Where does each value land in the document?
Tidewell's enquiry record, and where each field goes in TP-2741.
| {}Your system: Your field | Direction | QCQuoteCloud: QuoteCloud field | Goes into | Example (sample data) | Note |
|---|---|---|---|---|---|
| The document (Create Document) | |||||
| names | Your system to QuoteCloud | Document Title | Document field | Hannah & James's wedding reception |
|
| date, guests | Your system to QuoteCloud | Document Subtitle | Document field | Saturday 13 March 2027 · 96 guests |
|
| event_date | Your system to QuoteCloud | Event date | Data item | Saturday 13 March 2027 |
|
| guests | Your system to QuoteCloud | Guests | Data item | 96 |
|
| space | Your system to QuoteCloud | Space | Data item | The Boathouse Terrace |
|
| id | Your system to QuoteCloud | Enquiry ID | Data item | ENQ-50418 |
Find Document by Field can search it later. |
| The price table (rows in the same call) | |||||
| package | Your system to QuoteCloud | Line Item Label, Price | Price-table column | Waterside Classic package · $118.00 |
Your price rules pick the label and price. |
| guests | Your system to QuoteCloud | Quantity | Price-table column | 96 |
|
| your cost | Your system to QuoteCloud | Cost | Price-table column | $520.00 |
For your margin; the client doesn't see it. |
| Who receives it (Add Document Recipient) | |||||
| email, names | Your system to QuoteCloud | Recipient | Contact field | hannah.lee@example.com |
|
Data item names are the ones in your template. All values are sample data.
How do price-table rows work?
Rows go into the price table you name with its Table API Link Id, set in that table's settings. Send a heading row, then the pricing rows under it. With Replace Existing Pricing Table Rows on, the rows already in that table are removed first; without rows, the table is left as the template has it.
Optional extras belong in the template, in their own table or section: your client ticks them in the document, and the totals and deposit follow.
- Quantity and price per row; tax type, tax, discount type, discount and cost if you need them.
- Term Based Product and Term for repeating charges.
- No rows sent? The template's own rows stay.
Price-table rows
// Illustrative: one object per price-table row.// Keys follow Create Document's fields in QuoteCloud's Zapier app.{ "tableId": "reception", "replaceExistingPricingTableRows": true, "rows": [ { "rowType": "heading", "label": "Ceremony, styling & music" }, { "rowType": "pricing", "label": "Ceremony on the lawn", "note": "60 chairs, arbour, signing table", "qty": 1, "price": 1400.00, "cost": 520.00, "termBasedProduct": false, "taxType": "<your tax setting>", "discountType": "<amount or percent>", "discount": 0 }, { "rowType": "pricing", "label": "DJ · 5 hours", "qty": 1, "price": 1100.00, "termBasedProduct": false } ]}
Illustrative. Row keys follow Create Document's line-item fields: Row Type (pricing or heading), Line Item Label, Line Item Notes, Price, Quantity, Term Based Product, Term, Tax Type, Tax, Discount Type, Discount and Cost.
The proposal Hannah and James receive
Tidewell's template, filled by one call: the cover, the data items, the priced package and the extras for the couple to tick before they sign and pay.
Wedding reception proposal
Hannah & James's wedding reception
Prepared for Hannah Lee & James Okoro · Saturday 13 March 2027 · Date held until Thu 5 Nov 2026
Thank you, Hannah and James, for your enquiry. Here is your day on the Boathouse Terrace for 96 guests, priced from the package you chose. Tick any extras you'd like, then both sign and pay the deposit to confirm the date.
Data items filled from the enquiry
Event date- Saturday 13 March 2027From your system · event_date
Guests- 96From your system · guests
Space- The Boathouse TerraceFrom your system · space
Enquiry ID- ENQ-50418From your system · id
Your reception · 96 guests
| Item | Qty | Rate | Amount |
|---|---|---|---|
| Food & beverages | $17,280 | ||
Waterside Classic packagePer guest, from the enquiry's guest count
|
96 guests | $118 | $11,328.00 |
Premium beverages · 5 hoursSparkling, premium wine, beer, soft drinks
|
96 guests | $62 | $5,952.00 |
| Ceremony, styling & music | $3,750 | ||
Ceremony on the lawn60 chairs, arbour, signing table, wet-weather plan
|
1 lot | $1,400 | $1,400.00 |
Theming & stylingCentrepieces for 10 tables, candles and linen
|
1 lot | $1,250 | $1,250.00 |
DJ · 5 hoursCeremony music, first dance and dance floor
|
1 lot | $1,100 | $1,100.00 |
| Extras · from the template Tick to add | |||
| 96 guests | $12 | $1,152.00 | |
| 96 guests | $14 | $1,344.00 | |
| 1 lot | $890 | $890.00 | |
- Subtotal
- $21,030.00
- Tax (10%)
- $2,103.00
- Total
- $23,133.00
- Plus, monthly
- $0.00/mo
- Deposit to confirm your date (20%)
- $4,626.60
Accept, sign and pay your deposit
Hannah Lee · Couple
Signed online ·
Deposit to confirm your date (20%)
$4,626.60
Paid via StripePay with card or PayPal
Certificate of authenticity and audit trail attached
Add the recipients, then send
Add Document Recipient adds a contact you already have, or new recipient details, with a recipient role. Send Document sends now or on a schedule, with your subject and message, and can attach the PDF. Or leave the document as a draft for your team.
Both take the document number QuoteCloud returns when the document is created.
Recipient, then send
# Illustrative: the next two calls, in the order a Zap runs them.# 1. Add Document RecipientPOST {QUOTECLOUD_API_URL}{ "documentNumber": "{DOCUMENT_NUMBER}", "email": "hannah.lee@example.com", "firstName": "Hannah", "lastName": "Lee", "recipientRole": "<signer role>"}# 2. Send DocumentPOST {QUOTECLOUD_API_URL}{ "documentNumber": "{DOCUMENT_NUMBER}", "to": "hannah.lee@example.com, james.okoro@example.com", "emailSubject": "Your wedding proposal from Tidewell Pavilion"}
Illustrative. Add Document Recipient and Send Document are QuoteCloud actions on Zapier; both take the visible document number.
Build the template first
Data items and price tables are set up in the template. Start a free 14-day trial and build it before you write a line of code.
Create your first document in five steps
- 1
Build the template
Design the document once in QuoteCloud, with the content blocks, price table and optional extras every client should see.
- 2
Add data items
Create the data items your system will fill, such as Event date and Enquiry ID, and copy each placeholder into the template. Custom data items are on Essentials and up.
- 3
Name the price table
Turn on API mode in the price table's settings and note its Table API Link Id, so your rows land in the right table.
- 4
Make the call
Send the template, title, data item values and rows from your server, with the credential QuoteCloud gives you.
- 5
Add recipients and send
Add the recipients and send it, or leave it as a draft for your team. Test on the trial before you go live.
Create Document questions
What can a QuoteCloud create call fill in?
The document title and subtitle, the template's data items, and price-table rows with label, notes, quantity, price, tax, discount, cost and term. It can also send the document straight away. Recipients are added with Add Document Recipient, and images go into named image blocks with Upsert Document Image.
Can the API add rows to a price table?
Yes. Create Document takes price-table rows: pricing rows and heading rows, each with label, notes, quantity and price, plus tax, discount, cost and term if you need them. The rows go into the table you name with its Table API Link Id, and can replace the template's rows in that table.
Can the API tick optional items for the client?
No. Optional items stay in the template for your client to tick in the document, and the totals and deposit update when they do. A create call fills data items and adds price-table rows; it doesn't tick options or choose which content blocks appear.
Do documents created through the API cost extra?
Yes. Each document created through the API or Zapier carries a per-document fee of US$2.00, $1.80 or $1.60 by volume, on top of an Essentials plan or higher. Adding recipients, sending and tracking a document you've already created doesn't create another document.
More you can build
React to events, put QuoteCloud behind your website, keep the catalogue in step.
- React to document eventsViewed, signed, paid, expired: the document events QuoteCloud fires, and how to get them to your system.
- Put QuoteCloud behind your website or appA form on your own site becomes a branded, signable proposal, created by your server or a Zap.
- Keep the product catalogue in stepCreate, find and list products by SKU, so quotes price from the same catalogue as your other systems.
- Authentication and the IDs you needHow each route signs in, where to find template, data item, table and document IDs, and what to ask us.
- What the QuoteCloud API can and can't doWhat a call can set, what stays with your team and your client, and what isn't published yet.
- What the QuoteCloud API costsEssentials and up, plus a fee for each document created through the API or Zapier.
- Security for API integrationsWhere documents are stored, how signers are verified, and how to keep your credentials safe.
- FAQAnswers to the questions developers ask before they build on QuoteCloud.
Your records in. A proposal out.
Start a free 14-day trial, build a template with data items and a named price table, then talk to us about API access.
Create documents through the APIFree 14 days · no card
Start free trial