Quotes
list_quotes
readList quotes
Count and locate shopper submissions, and obtain the ids get_quote takes, without pulling shopper free text into the answer.
Overview
Lists the quote requests and custom-design submissions shoppers made through the connected Store customisers, with each submission id, its type, its submission number, the customiser and form it came from, and its creation date. Filters narrow it by type, customiser, form and UTC date range. Form responses, the design snapshot and any attached files are a separate per-submission read. It requires the quotes:read scope and has no side effects.
Permission
Requires thequotes:readpermission. A connection without it answersinsufficient_scopenaming the permission to approve.
Annotations
Prerequisites
- A merchant has connected this store and approved the quotes:read scope.
Arguments
How many submissions to return per page, between 1 and 100. Defaults to 20.
The opaque next_cursor value from the previous page, sent back with identical filters.
Optional filters. An unknown filter is rejected, never ignored.
Only submissions of this kind. Expected to grow: tolerate unknown values.
One of: quote, custom_design
Only submissions made through this customiser.
Only submissions of this form.
Inclusive UTC start date, YYYY-MM-DD.
Inclusive UTC end date, YYYY-MM-DD.
Result
Up to `limit` submission summaries plus the cursor for the next page. Deliberately narrower than the public API row, which returns each submission in full: responses, files and the design snapshot are get_quote.
The page of submission summaries. Responses, files and the design snapshot are get_quote.
One of: quote, custom_design
Error cases
The connection was approved without quotes:read.
The cursor was altered or reused with different filters; restart with no cursor.
A date filter is not YYYY-MM-DD in UTC, or an id filter is out of range.
A filter value is not one this API accepts; allowed_values lists the accepted set.
Custom-design submissions from one customiser
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_quotes",
"arguments": {
"limit": 1,
"filter": {
"type": "custom_design",
"customiser_id": 42
}
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"structuredContent": {
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t",
"store": {
"id": 12,
"name": "Demo Signs"
},
"quotes": [
{
"id": 8123,
"type": "custom_design",
"submission_number": 14,
"customiser_id": 42,
"form_id": 7,
"created_at": "2026-07-19T01:00:00Z"
}
],
"pagination": {
"has_more": false,
"next_cursor": null
}
}
}
}A submission type that does not exist (error)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_quotes",
"arguments": {
"filter": {
"type": "enquiry"
}
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"isError": true,
"structuredContent": {
"error": {
"code": "invalid_parameter",
"title": "Invalid query parameter",
"detail": "The filter[type] value is not a supported submission type.",
"recovery": "Correct the parameter named in parameter. Dates are YYYY-MM-DD in UTC and identifiers are integers between 1 and 2147483647.",
"parameter": "filter[type]",
"allowed_values": [
"quote",
"custom_design"
]
}
}
}
}