# List sale offers

> Retrieve a paginated list of sale offers.

`GET /rest/api/sale_offers`

Retrieves the collection of Sale Offer resources.

Returns a paginated collection of sale offers in the current organization.

## Headers

| Name                         | Type     | Required | Description                                                                                                                                      |
| ---------------------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `X-Flowkiwi-Organization-Id` | `string` | Yes      | The organization the request acts as. Determines the identity, permissions and ownership applied when reading or modifying data on the instance. |

## Query parameters

| Name           | Type      | Required | Description                  |
| -------------- | --------- | -------- | ---------------------------- |
| `page`         | `integer` | -        | The collection page number   |
| `itemsPerPage` | `integer` | -        | The number of items per page |

## Response

**200** - Sale Offer collection

| Property           | Type           | Required | Description |
| ------------------ | -------------- | -------- | ----------- |
| `hydra:totalItems` | `integer`      | -        |             |
| `hydra:search`     | `object`       | -        |             |
| `hydra:view`       | `object`       | -        |             |
| `hydra:member`     | `Sale.Offer[]` | Yes      |             |

## Errors

**403** - Access denied. The caller is missing one or more identity permissions required for this operation.

| Property             | Type       | Required | Description                                                                                                                                |
| -------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `@context`           | `object`   | -        |                                                                                                                                            |
| `@id`                | `string`   | Yes      |                                                                                                                                            |
| `@type`              | `string`   | Yes      |                                                                                                                                            |
| `type`               | `string`   | -        |                                                                                                                                            |
| `title`              | `string`   | -        |                                                                                                                                            |
| `status`             | `integer`  | -        |                                                                                                                                            |
| `detail`             | `string`   | -        |                                                                                                                                            |
| `missingPermissions` | `string[]` | -        | Identity permissions that the caller is missing for this operation. Present only when the 403 is caused by a denied identity:* permission. |

## Examples

### Example request

```bash
curl -X GET 'https://<tenant>.product-management.flowkiwi.net/rest/api/sale_offers' \
  -H 'Authorization: Bearer {token}' \
  -H 'X-Flowkiwi-Organization-Id: <org_id>' \
  -H 'Accept: application/ld+json'
```

### Example response

```json
{
  "@context": "/contexts/Sale%20Offer",
  "@id": "/rest/api/sale_offers",
  "@type": "hydra:Collection",
  "hydra:totalItems": 1,
  "hydra:member": [
    {
      "@context": "/contexts/Sale%20Offer",
      "@id": "/rest/api/sale_offers/019af8e0-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
      "@type": "Sale Offer",
      "id": "019af8e0-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
      "status": "/rest/api/statuses/ACTIVE",
      "taxExcludedPrice": {
        "@type": "EmbeddedMoneyResource",
        "amount": "9.80",
        "currency": "EUR"
      },
      "taxExcludedPricePerUnit": {
        "@type": "EmbeddedPricePerUnitResource",
        "amount": "14.00",
        "currency": "EUR",
        "unit": "l",
        "value": 1
      },
      "price": {
        "@type": "EmbeddedMoneyResource",
        "amount": "11.76",
        "currency": "EUR"
      },
      "pricePerUnit": {
        "@type": "EmbeddedPricePerUnitResource",
        "amount": "16.80",
        "currency": "EUR",
        "unit": "l",
        "value": 1
      },
      "discountPrice": {
        "@type": "EmbeddedMoneyResource",
        "amount": "9.99",
        "currency": "EUR"
      },
      "discountPricePerUnit": {
        "@type": "EmbeddedPricePerUnitResource",
        "amount": "14.27",
        "currency": "EUR",
        "unit": "l",
        "value": 1
      },
      "discountTaxExcludedPrice": {
        "@type": "EmbeddedMoneyResource",
        "amount": "8.33",
        "currency": "EUR"
      },
      "discountTaxExcludedPricePerUnit": {
        "@type": "EmbeddedPricePerUnitResource",
        "amount": "11.90",
        "currency": "EUR",
        "unit": "l",
        "value": 1
      },
      "startsAt": "2026-03-01T00:00:00+00:00",
      "endsAt": "2026-03-31T23:59:59+00:00",
      "country": "/rest/api/countries/019af8c2-3d4e-7f50-8a61-2b3c4d5e6f70",
      "tax": "/rest/api/taxes/019af8c3-4e5f-7061-9b72-3c4d5e6f7081",
      "variant": "/rest/api/products/019af93e-420e-79f8-800b-6680f03dce20/variants/019af940-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
      "channels": [
        "/rest/api/channels/019af8c0-7a1b-7c2d-8e3f-1a2b3c4d5e6f"
      ],
      "createdAt": "2026-01-15T09:30:00+00:00",
      "updatedAt": "2026-02-03T14:45:12+00:00"
    }
  ]
}
```
