Skip to main content
GET
Get Quote
Retrieve a quote by ID, including its live totalPriceCents, currency, dates, contact and location IDs, and event details. Related objects are included only when requested with expand[]. Use your x-api-key with public API access. These endpoints require Scale or an eligible Grandfathered Pro plan.
Set FLASHQUOTES_API_KEY to your API key and replace the quote ID with one from List Quotes. --data-urlencode safely encodes the brackets in query parameters.

Live quote total

totalPriceCents is calculated on every request from saved line prices, base and travel fees, line and quote discounts, service charges, and tax. It uses the same calculation, rounding, and currency rules as the app. Monetary amounts use the currency’s minor units: 250000 with currency.isoCode: "USD" represents $2,500.00. The total does not reprice services, refresh tax-provider data, include booking-time gratuity, or represent an invoice’s unpaid balance. Expanding related objects does not change the total.
Child pricing changes can change totalPriceCents without changing the quote’s updatedAt. Do not use updated_at filtering as a complete financial change feed.
Repeat expand[] for each relation you need. Single-quote paths have no data. prefix. Comma-separated paths are also accepted. A nested path automatically includes its parents. For example, booking.events.resources includes booking, its events, and each event’s resources. Other relations remain absent unless requested. Expanded single relations return null when missing or inaccessible; empty collections return [].

Services, discounts, and charges

services and addons come from current line-item associations and are deduplicated by ID. Archived services and add-ons are omitted, although their saved pricing still contributes to the total. These objects do not include quantities or unit prices. discounts combines quote-level and line-level definitions, deduplicated by ID, with the quote-level definition first. Use the base discountId to identify the quote-level discount. No line IDs, discount allocations, or realized discount amounts are returned. Attached archived discount and service-charge definitions remain visible. serviceCharges and serviceDays are direct arrays without association wrappers. serviceDays and booking.events are ordered by start time ascending, then ID ascending. Invoice summaries are terminal: they have no expandable children.

Limits and excluded fields

  • Maximum 20 distinct paths per request; duplicates count once. The full list above exceeds this limit.
  • Maximum four segments per path.
  • Unknown, malformed, or unsupported paths return 400 with param: "expand".
  • Quote and invoice line items, quantities, unit prices, pricing configuration, contract content, and signatures are excluded.
For example, lineItems, serviceDays.lineItems, booking.invoices.lineItems, discount, and serviceCharges.serviceCharge are unsupported. Free-text descriptions can still contain details entered by your team. Request only the relations you need. Expanded collections are not independently paginated or truncated; repeated booking/event traversal can produce large responses. These routes do not currently enforce per-key rate or concurrency limits.

Errors

Requesting an unsupported expansion returns:
Quotes and expanded objects are scoped to your company. Missing and inaccessible quote IDs return the same 404. Foreign pricing relationships are excluded from the total; if stored relationships are invalid, this can differ from the app’s total until the data is repaired.

Authorizations

x-api-key
string
header
required

API key for authentication

Path Parameters

id
string
required

Quote ID.

Query Parameters

expand[]
string[]

Use paths without a data. prefix. Repeat expand[] or use comma-separated paths. A nested path includes its parents; unrequested siblings stay absent. Maximum 20 distinct paths per request and four segments, excluding data. Unknown or malformed paths return 400. Allowed paths: lead, location, eventType, services, addons, discounts, taxRate, paymentTerms, serviceCharges, serviceDays, contract, booking, booking.lead, booking.eventType, booking.invoices, booking.events, booking.events.location, booking.events.services, booking.events.staff, booking.events.addons, booking.events.resources, booking.events.booking, booking.events.booking.lead, booking.events.booking.eventType, booking.events.booking.invoices, booking.events.booking.events.

Response

Quote retrieved successfully.

Quote summary with live overall value. Base fields are always present; nullable native values remain null. Relations appear only when expanded. Quote and invoice line items, quantities, unit prices, and pricing configuration are not exposed.

object
enum<string>
required
Available options:
quote
id
string
required

Quote ID.

createdAt
string<date-time>
required

When the quote was created.

updatedAt
string<date-time>
required

When the quote row was last updated. Child pricing changes can change totalPriceCents without changing this timestamp.

sentAt
string<date-time> | null
required

When the quote was sent, or null.

expiresAt
string<date-time> | null
required

Quote expiration time, or null.

bookedAt
string<date-time> | null
required

When the quote was booked, or null.

lostAt
string<date-time> | null
required

When the quote was marked lost, or null.

lostReason
enum<string> | null
required

Reason the quote was marked lost, or null.

Available options:
PRICE,
DATE_UNAVAILABLE,
WENT_SILENT,
CHOSE_COMPETITOR,
OTHER
leadId
string
required

Contact ID. The related object is named lead in the API.

locationId
string
required

Location ID.

eventTypeId
string | null
required

Event type ID, or null.

bookingId
string | null
required

Booking ID, or null.

discountId
string | null
required

Quote-level discount ID, or null. The discounts expansion also includes line-level discount definitions.

taxRateId
string | null
required

Tax rate ID, or null.

paymentTermsId
string | null
required

Payment terms ID, or null.

contractId
string | null
required

Contract template ID, or null.

numberOfStaff
integer
required

Requested staff count.

numberOfResources
integer
required

Requested resource count.

guestCount
integer
required

Guest count.

eventAddress
string
required

Event address.

eventDescription
string | null
required

Event description, or null.

siteContactName
string | null
required

On-site contact name, or null.

siteContactPhone
string | null
required

On-site contact phone number, or null.

entityToInvoice
string | null
required

Entity to invoice, or null.

currency
object
required
totalPriceCents
integer
required

Live overall quote total in the currency’s minor units (cents for USD), recalculated on every request from saved pricing, fees, discounts, service charges, and tax. Excludes booking-time gratuity; not an unpaid invoice balance. Expansion does not change this value.

Example:

250000

lead
object | null

Present only when lead is expanded (use data.lead on lists). Returns null when the relation is missing or inaccessible.

location
object | null

Present only when location is expanded (use data.location on lists). Returns null when the relation is missing or inaccessible.

eventType
object | null

Present only when eventType is expanded (use data.eventType on lists). Returns null when the relation is missing or inaccessible.

services
object[]

Present only when services is expanded (use data.services on lists). Returns [] when empty. Distinct current line-item service definitions. Archived services are omitted; saved prices still contribute to the total.

addons
object[]

Present only when addons is expanded (use data.addons on lists). Returns [] when empty. Distinct current line-item add-on definitions, without unit prices. Archived add-ons are omitted; saved prices still contribute to the total.

discounts
object[]

Present only when discounts is expanded (use data.discounts on lists). Returns [] when empty. Deduplicated quote-level and line-level definitions, with the quote-level definition first. No allocations or realized discount amounts. Attached archived definitions remain visible.

taxRate
object | null

Present only when taxRate is expanded (use data.taxRate on lists). Returns null when the relation is missing or inaccessible.

paymentTerms
object | null

Present only when paymentTerms is expanded (use data.paymentTerms on lists). Returns null when the relation is missing or inaccessible.

serviceCharges
object[]

Present only when serviceCharges is expanded (use data.serviceCharges on lists). Returns [] when empty. Flat definition array without association wrappers or calculated charge amounts. Attached archived definitions remain visible.

serviceDays
object[]

Present only when serviceDays is expanded (use data.serviceDays on lists). Returns [] when empty. Flat array ordered by serviceStartTime ascending, then id ascending.

contract
object | null

Present only when contract is expanded (use data.contract on lists). Returns null when the relation is missing or inaccessible. Template metadata only; excludes contract content and signatures.

booking
object | null

Present only when booking is expanded (use data.booking on lists). Returns null when the relation is missing or inaccessible.