---
title: "List all versions of a quote"
method: GET
path: "/quotes/{lago_id}/versions"
tags: ["quotes"]
---

# List all versions of a quote

`GET /quotes/{lago_id}/versions`

## Request

- Base URL: `https://api.getlago.com/api/v1`
- URL: `https://api.getlago.com/api/v1/quotes/{lago_id}/versions`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/getlago/apis/lago-api-documentation/docs/quotes/:lago_id/versions/get.ts> (a function with typed inputs; its response is checked against the schema)

This endpoint is used to list all the versions of a specific quote, from the most recent to the oldest.
The `content` and `billing_items` of each version are omitted; retrieve a version to get them.
This is a premium feature.

## Query parameters

- `page` integer
- `per_page` integer

## Response `200`

Quote versions

- QuoteVersionsPaginated
  - `quote_versions` QuoteVersionObject[], required
    - `lago_id` string, uuid, required: Unique identifier of the quote version, created by Lago.
    - `lago_quote_id` string, uuid, required: Unique identifier of the quote the version belongs to, created by Lago.
    - `lago_organization_id` string, uuid, required: Unique identifier of the organization, created by Lago.
    - `version` integer, required: The number of the version within the quote. It starts at 1 and increases by 1 for every new version created by cloning.
    - `status` 'draft' | 'approved' | 'voided', required: The status of the quote version. It can be any of the following values: - `draft`: the version is still editable. - `approved`: the version has been approved and an order form has been generated from it. - `voided`: the version is no longer actionable. A quote has at most one version in `draft` or `approved` status at any time; all the other versions are `voided`.
    - `currency` 'null' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'ISK' | 'JMD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'STD' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW', nullable, required
    - `billing_entity_code` string, nullable, required: Unique code identifying the billing entity that issues the deal. It is resolved rather than stored: the version's own entity when it names one, then the entity of the subscription being amended for a `subscription_amendment` quote, then the customer's own. It is `null` when none of them resolves. An amendment cannot name an entity itself, since the subscription it restates is already bound to one, and naming one on an amendment is rejected.
    - `void_reason` 'null' | 'manual' | 'superseded' | 'cascade_of_expired' | 'cascade_of_voided', nullable, required: The reason why the quote version was voided. It is `null` unless the `status` is `voided`. It can be any of the following values: - `manual`: voided explicitly, through the API or the Lago user interface. - `superseded`: voided because the version was cloned into a new draft. - `cascade_of_expired`: voided because the order form generated from the version expired. - `cascade_of_voided`: voided because the order form generated from the version was voided.
    - `approved_at` string, date-time, nullable, required: The date and time in UTC (ISO 8601) when the version was approved. It is `null` unless the `status` is `approved`.
    - `voided_at` string, date-time, nullable, required: The date and time in UTC (ISO 8601) when the version was voided. It is `null` unless the `status` is `voided`.
    - `created_at` string, date-time, required: The date and time in UTC (ISO 8601) when the version was created.
    - `updated_at` string, date-time, required: The date and time in UTC (ISO 8601) when the version was last updated.
  - `meta` PaginationMeta, required
    - `current_page` integer, required: Current page.
    - `next_page` integer, nullable: Next page.
    - `prev_page` integer, nullable: Previous page.
    - `total_pages` integer, required: Total number of pages.
    - `total_count` integer, required: Total number of records.

## Other responses

- `401`: Unauthorized error
- `403`: Forbidden
- `404`: Not Found error

## Changes

- **2026-10-16** `fce1879654d8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getlago/apis/lago-api-documentation/changes/quotes/:lago_id/versions/get.md)

---

[API](https://skmtc.dev/getlago/apis/lago-api-documentation.md) - [All operations](https://skmtc.dev/getlago/apis/lago-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/getlago/apis/lago-api-documentation/revisions/b216574b9612?raw)
