List Quotes
Overview
The List Quotes endpoint retrieves a paginated list of all quotes associated with your business account. Quotes represent estimates or proposals sent to customers, which can later be converted to invoices.
This endpoint supports pagination via query parameters for page and per_page. By default, it returns 25 quotes per page.
HTTP Method
GET
Endpoint URL
https://api.koteshen.com/api/v1/quotes
Path Parameters
None.
Query Parameters
| Parameter | Type | Required | Description | Default |
|---|---|---|---|---|
page |
Integer | No | The page number to retrieve (1-indexed). | 1 |
per_page |
Integer | No | Number of quotes to return per page (max 100). | 25 |
status |
String | No | Filter by quote status (e.g., draft, sent, accepted, expired). |
All |
Request Headers
Authorization: Bearer<your_oauth2_token>(handled separately)Content-Type: application/jsonAccept: application/json
Request Body
None.
Success Response
Status Code
200 OK
Response Body
The response is a JSON object containing an array of quote resources, pagination metadata, and links for navigation.
{ "data": [ { "id": 1, "number": "QT-001", "issued_at": "2025-10-12T10:00:00.000Z", "expires_at": "2025-10-28T10:00:00.000Z", "status": "sent", "currency": "USD", "customer_id": 13, "customer": { "id": 13, "name": "Texas Ins", "email": "procurement@texas.com" }, "summary": "Design and development services", "subtotal": "4080.00", "discount_type": "percent", "discount_value": 10, "discount_amount": "408.00", "tax_amount": "0.00", "total": "3672.00", "notes": "Valid for 30 days. Payment terms: Net 30.", "items": [ { "id": 174, "name": "Design and development", "quantity": 12, "unit_price": "340.00", "total": "4080.00" } ], "url": "https://api.koteshen.com/api/v1/quotes/1", "pdf_url": "https://api.koteshen.com/api/v1/quotes/1/pdf", "created_at": "2025-10-12T10:00:00.000Z", "updated_at": "2025-10-12T10:00:00.000Z" } ], "meta": { "pagination": { "current_page": 1, "prev_page": null, "next_page": null, "total_pages": 1, "total_count": 1 } }, "links": { "first": "https://api.koteshen.com/api/v1/quotes?page=1", "last": "https://api.koteshen.com/api/v1/quotes?page=1", "self": "https://api.koteshen.com/api/v1/quotes?page=1" } }
Response Headers
Content-Type: application/jsonETag: Entity tag for cachingX-Request-Id: Unique request identifier
Error Responses
401 Unauthorized
If the token is invalid or expired.
{ "error": "Unauthorized", "message": "Invalid access token" }
422 Unprocessable Entity
If query parameters are invalid (e.g., per_page > 100).
{
Example Request (cURL)
curl -X GET "https://koteshen.com/api/v1/quotes?page=1&per_page=10&status=sent" \ -H "Authorization: Bearer <your_oauth2_token>" \ -H "Accept: application/json"
Example Response (cURL)
See Success Response above.
Usage Notes
- Use the
linksfor HATEOAS navigation in paginated results. - Quotes are ordered by
created_atdescending (newest first). - For large datasets, implement client-side pagination to avoid rate limits.