We are using cookies to improve your experience!

By clicking "Allow all", you agree to use of all cookies. Visit our Privacy Policy to learn more.

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/json
  • Accept: 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/json
  • ETag: Entity tag for caching
  • X-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 links for HATEOAS navigation in paginated results.
  • Quotes are ordered by created_at descending (newest first).
  • For large datasets, implement client-side pagination to avoid rate limits.