> ## Documentation Index
> Fetch the complete documentation index at: https://kliio.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# List Quotes

> Returns a paginated list of all quotes, with optional filters.

### Headers

<ParamField header="Authorization" type="string" required>
  `Bearer YOUR_API_KEY`
</ParamField>

### Query Parameters

<ParamField query="client_id" type="string">
  Filter quotes by client UUID.
</ParamField>

<ParamField query="status" type="string">
  Filter by quote status. One of: `Draft`, `Sent`, `Accepted`, `Declined`, `Expired`.
</ParamField>

<ParamField query="limit" type="integer">
  Records per page. Default `50`, max `100`.
</ParamField>

<ParamField query="offset" type="integer">
  Records to skip. Default `0`.
</ParamField>

### Response

<ResponseField name="data" type="array">
  List of quote objects.

  <Expandable title="Quote object">
    <ResponseField name="id" type="string">Quote UUID</ResponseField>
    <ResponseField name="quote_number" type="string">Auto-generated quote number (e.g. `QUO-0012`)</ResponseField>
    <ResponseField name="amount" type="number">Total amount</ResponseField>
    <ResponseField name="currency" type="string">3-letter currency code</ResponseField>
    <ResponseField name="status" type="string">`Draft`, `Sent`, `Accepted`, `Declined`, or `Expired`</ResponseField>
    <ResponseField name="expires_at" type="string">Valid until date (defaults to 30 days from creation)</ResponseField>
    <ResponseField name="tax_rate" type="number">Tax rate as percentage</ResponseField>
    <ResponseField name="description" type="string">Quote description (nullable)</ResponseField>
    <ResponseField name="line_items" type="array">Line items (nullable)</ResponseField>
    <ResponseField name="client" type="object">Embedded client object</ResponseField>
    <ResponseField name="project" type="object">Embedded project object (nullable)</ResponseField>
    <ResponseField name="created_at" type="string">ISO 8601 timestamp</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="pagination" type="object">
  <Expandable title="Properties">
    <ResponseField name="total" type="integer">Total matching records</ResponseField>
    <ResponseField name="limit" type="integer">Page size used</ResponseField>
    <ResponseField name="offset" type="integer">Offset used</ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://kliio.app/api/v1/quotes?status=Sent" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```js JavaScript theme={null}
  const res = await fetch('https://kliio.app/api/v1/quotes?status=Sent', {
    headers: { Authorization: 'Bearer YOUR_API_KEY' }
  })
  const { data, pagination } = await res.json()
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": [
      {
        "id": "quo-uuid-...",
        "quote_number": "QUO-0012",
        "amount": 3500.00,
        "currency": "USD",
        "status": "Sent",
        "due_date": null,
        "expires_at": "2025-04-14",
        "tax_rate": 10,
        "description": "E-commerce site build",
        "line_items": null,
        "client": {
          "id": "c1d2e3f4-...",
          "name": "Alice Johnson",
          "email": "alice@example.com",
          "company_name": "Acme Corp"
        },
        "project": null,
        "created_at": "2025-03-15T10:30:00.000Z"
      }
    ],
    "pagination": {
      "total": 22,
      "limit": 50,
      "offset": 0
    }
  }
  ```
</ResponseExample>
