List Quotes
GET /crm/quotes
Group: CRM › Quotes · Operation ID: listQuotes
Returns a list of quotes, most recently created first. To filter by memo text, quote number or sales arrangement, or by more than one value of a field, use POST crm/quotes/search.
Only ids, enums, booleans and dates filter this endpoint. To filter by the memo text, quoteNumber or salesArrangementId, or to pass more than one value of a field, use POST crm/quotes/search. An unrecognized filter value matches nothing rather than failing. The item schema here is the quote header alone. GET crm/quotes/:id and POST crm/quotes/search also return the quote's priced lines.
Open in the interactive reference
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Api-Version |
header | "v1" |
yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1. |
quoteId |
query | string | no | Limits results to the quote with this id. |
quoteType |
query | string | no | Limits results to quotes of this kind. Possible values: 'new', 'upsell', 'renewal', 'changeOrder'. Omit for every kind. |
status |
query | string | no | Limits results to quotes in this business state. Possible values: 'created', 'underApproval', 'approved', 'underSigning', 'signed', 'completed'. Omit for every state. |
approvalStatus |
query | string | no | Limits results to quotes in this approval state. Possible values: 'pendingSubmission', 'pendingApproval', 'approved', 'rejected'. Omit for every state. |
isPrimary |
query | boolean | no | Limits results to primary quotes when true, or non-primary quotes when false. Pair with opportunityId to find an opportunity's primary quote. Omit for both. |
opportunityId |
query | string | no | Limits results to quotes of this opportunity. Omit for every opportunity. |
quoteDateFrom |
query | string | no | Limits results to quotes drawn up on or after this date. Format YYYY-MM-DD. Inclusive. |
quoteDateTo |
query | string | no | Limits results to quotes drawn up on or before this date. Format YYYY-MM-DD. Inclusive. |
modifiedFrom |
query | string | no | Limits results to quotes changed at or after this time, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. Inclusive. |
modifiedTo |
query | string | no | Limits results to quotes changed at or before this time, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. Inclusive. |
cursor |
query | string | no | The cursor from the previous response's pagination.nextCursor. Omit on the first request. |
pageSize |
query | number | no | The number of quotes per page. Defaults to 50, and a value above 200 is treated as 200, not rejected. |
Response
200 Success
Under data (listQuotesOutput):
| Field | Type | Required | Description |
|---|---|---|---|
items |
array of object | yes | The quotes on this page, most recently created first. An empty array when nothing matches. |
items[].id |
string | yes | The unique identifier for the quote. |
items[].quoteNumber |
string | no | The system-generated quote number, for example 'QT-1042'. Absent while none has been assigned. |
items[].quoteType |
string | yes | The kind of quote. Possible values: 'new', 'upsell', 'renewal', 'changeOrder'. |
items[].status |
string | no | Where the quote stands in its business process. Possible values: 'created', 'underApproval', 'approved', 'underSigning', 'signed', 'completed'. Absent on a quote that has not entered the process. |
items[].approvalStatus |
string | no | Where the quote stands in its approval process. Possible values: 'pendingSubmission', 'pendingApproval', 'approved', 'rejected'. Absent until the approval process has run. |
items[].isPrimary |
boolean | yes | Whether this is the primary quote of its opportunity. |
items[].quoteDate |
string (date) | yes | The date the quote was drawn up. Format YYYY-MM-DD. Product prices are validated against the opportunity's price book as of this date. |
items[].serviceStartDate |
string (date) | yes | The first date products or services on this quote are delivered. Format YYYY-MM-DD. No subscription on the quote starts before it. |
items[].signDate |
string (date) | no | The date the quote was signed by the customer and the legal entity. Format YYYY-MM-DD. Absent when not recorded. |
items[].paymentTerm |
string | yes | The code of the payment term applied to invoices created from this quote. See code on GET accounting/payment-terms. |
items[].memo |
string | no | A free-text memo recorded on the quote. Absent when none is set. |
items[].needsPSACalculation |
boolean | no | Whether the quote takes its product data from a PSA project rather than from the product catalog. |
items[].currency |
string | no | The currency of every amount on the quote. A quote takes the currency of its opportunity and has none of its own. Format ISO 4217, for example 'USD'. |
items[].totalPrice |
string (decimal) | no | The sum of the quote's lines before tax, less any one-time discount, in the quote's currency. |
items[].oneTimeDiscountAmount |
string (decimal) | no | A one-time discount applied to the whole quote, in the quote's currency. |
items[].oneTimeDiscountAllocation |
string | no | How oneTimeDiscountAmount is spread across the quote's invoices. Possible values: 'firstInvoice', 'alignToInvoiceFrequency', 'custom'. |
items[].billableTimeEstimate |
string (decimal) | no | The estimated total of the quote's billable-time lines, in the quote's currency. |
items[].billableTimeCappedPrice |
string (decimal) | no | The ceiling on the total of the quote's billable-time lines, in the quote's currency. |
items[].opportunityId |
string | yes | The opportunity this quote belongs to. See id on GET crm/opportunities/:id. |
items[].opportunityName |
string | no | The name of the opportunity this quote belongs to. Absent when the opportunity has no name. |
items[].opportunityNumber |
string | no | The opportunity number of the opportunity this quote belongs to, for example 'OP-1042'. Absent while none has been assigned. |
items[].billToAddressId |
string | no | The bill-to address on the quote, a copy the quote keeps of its own rather than the source it was copied from. There is no endpoint for it. |
items[].soldToAddressId |
string | no | The sold-to address on the quote, a copy the quote keeps of its own rather than the source it was copied from. There is no endpoint for it. |
items[].salesArrangementId |
string | no | The sales arrangement this quote is assigned to. Set on change-order quotes. There is no endpoint for it. |
items[].lastModifiedDate |
string (date-time) | yes | The date and time the quote record last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
pagination |
object | yes | The pagination details for this page. |
pagination.nextCursor |
string | no | The cursor for the next page. Pass it back as cursor. Absent on the last page. |
pagination.hasMore |
boolean | yes | Whether another page follows. A full page may still be the last, so branch on this. |
Statuses
400— Invalid request or business failure401— Missing or invalid access token403— Not authorized404— Not found429— Too many requests500— Internal server error