List Quotes
Retrieve a paginated list of quotes with optional filtering, searching, and sorting. Archived quotes are left out, the same as in the Quotes list in EquipDash; Get Quote still returns one by its id.
GET /v1/quotes
Authenticationโ
Requires a valid API key with quotes:read scope.
Query Parametersโ
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
per_page | integer | Items per page, max 100 (default: 25) |
state | string | Filter by derived state: draft, sent, viewed, accepted, declined, expired, cancelled |
customer_id | integer | Filter by customer ID |
search | string | Search by quote number or customer name/email |
sort | string | Sort field. Prefix with - for descending. Options: id, created_at, quote_valid_until, price_inc_tax (default: -created_at) |
Request Exampleโ
curl -X GET "https://app.equipdash.com/api/v1/quotes?state=sent&per_page=10" \
-H "Authorization: Bearer eqd_live_your_api_key"
Responseโ
{
"data": [
{
"id": 123,
"quote_number": "Q-123",
"state": "sent",
"reserves_dates": false,
"valid_until": "2026-03-01",
"total": 225.50,
"currency": "USD",
"customer": {
"id": 456,
"name": "Jane Doe",
"email": "jane@example.com"
},
"start_date": "2026-02-15T09:00:00+00:00",
"end_date": "2026-02-17T17:00:00+00:00",
"created_at": "2026-02-01T10:00:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 10,
"total": 4,
"total_pages": 1,
"request_id": "req_abc123",
"timestamp": "2026-02-01T10:30:00+00:00"
},
"links": {
"first": "https://app.equipdash.com/api/v1/quotes?page=1",
"prev": null,
"next": null,
"last": "https://app.equipdash.com/api/v1/quotes?page=1"
}
}
Response Fieldsโ
The list response returns a simplified quote summary. Use Get Quote for full details.
| Field | Type | Description |
|---|---|---|
id | integer | Unique quote identifier |
quote_number | string | Human-readable number, e.g. "Q-123" |
state | string | Derived state (see Quotes Overview) |
reserves_dates | boolean | Whether the quote holds its dates |
valid_until | string|null | Expiry date (YYYY-MM-DD). null = never expires |
total | number | Tax-inclusive total |
currency | string | Currency code (ISO 4217) |
customer | object | Customer summary (id, name, email) |
start_date | string|null | Start date/time (ISO 8601) |
end_date | string|null | End date/time (ISO 8601) |
created_at | string | Creation timestamp (ISO 8601) |
Filtering Examplesโ
By stateโ
GET /v1/quotes?state=viewed
By customerโ
GET /v1/quotes?customer_id=456
Searchโ
GET /v1/quotes?search=jane@example.com
Expiring soonest firstโ
GET /v1/quotes?state=sent&sort=quote_valid_until
Error Responsesโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | Missing or invalid API key |
| 403 | insufficient_scope | API key lacks quotes:read scope |
| 422 | validation_error | Invalid state value |