# `GET /quote` Protected. Requires a valid session cookie (`credentials: 'include'`). List quotes Lists quotes (`manifest` rows with `type = 'quote'`) for the authenticated user's selected company. ## Query parameters | Param | Required | Type | Description | |-------|----------|------|-------------| | `offset` | no | integer | Number of quotes to skip | | `limit` | no | integer | Number of quotes to return | | `search` | no | string | Free-text search matching quote number, external number, or customer name | | `seekMonths` | no | integer | Negative integer for cutoff months ago (e.g. -1 for quotes older than 1 month) | ## Response `200` Quote list ```json { "quotes": [ { "id": 1, "number": "…", "type": "quote", "entityId": 1, "externalNumber": "…", "date": "2026-08-10T00:00:00.000Z", "createdAt": "2026-08-10T00:00:00.000Z", "positions": 1, "grossTotal": 1, "totalQuantity": 1, "customerName": "…", "lines": [ { "id": 1, "sku": "…", "name": "…", "pu": 1, "amount": 1, "net": 1, "rebate": 1, "taxrate": 1, "comment": "…", "shippable": true } ], "files": [ { "id": 1, "manifestId": 1, "fileId": 1, "sort": 1, "hash": "…", "mimetype": "…", "name": "…", "size": 1, "created": "2026-08-10T00:00:00.000Z", "modified": "2026-08-10T00:00:00.000Z", "skeledash": "…", "thumbx": 1, "thumby": 1, "meta": {} } ] } ], "total": 1, "unfilteredTotal": 1, "offset": 1, "limit": 1 } ``` ## Errors | Status | Description | |--------|-------------| | 400 | Invalid query parameters, invalid offset, invalid limit, or no company selected — `{"error":"…"}` | | 401 | Unauthorized — `{"error":"…"}` | | 403 | Not authorized — `{"error":"…"}` | | 404 | Company not found — `{"error":"…"}` | --- _Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._