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

# List Offers

> Get available offers and promotions

# List Offers

Get a paginated list of available offers and promotions for the authenticated user.

## Endpoint

```
GET /{locale}/shop/offers
```

## Authentication

Requires JWT Bearer token (user must be logged in).

## Query Parameters

<ParamField query="page" type="integer">
  Page number

  **Default:** `1`
</ParamField>

<ParamField query="per_page" type="integer">
  Items per page (max 50)

  **Default:** `15`
</ParamField>

<ParamField query="partner_id" type="integer">
  Filter by specific partner
</ParamField>

<ParamField query="category_id" type="integer">
  Filter by category
</ParamField>

<ParamField query="type" type="string">
  Filter by offer type: `discount`, `points_multiplier`, `free_item`, `cashback`
</ParamField>

## Response

<ResponseField name="data" type="array">
  Array of offer objects

  <Expandable title="offer object">
    <ResponseField name="id" type="integer">
      Offer ID
    </ResponseField>

    <ResponseField name="title" type="object">
      Localized title
    </ResponseField>

    <ResponseField name="description" type="object">
      Localized description
    </ResponseField>

    <ResponseField name="type" type="string">
      Offer type
    </ResponseField>

    <ResponseField name="discount_value" type="number">
      Discount amount or percentage
    </ResponseField>

    <ResponseField name="points_required" type="integer">
      Points needed to claim (if applicable)
    </ResponseField>

    <ResponseField name="valid_from" type="string">
      Start date (ISO 8601)
    </ResponseField>

    <ResponseField name="valid_until" type="string">
      End date (ISO 8601)
    </ResponseField>

    <ResponseField name="partner" type="object">
      Partner information
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://staging-api.loyalty.lt/en/shop/offers?per_page=10" \
    -H "Authorization: Bearer your_jwt_token"
  ```
</RequestExample>

<ResponseExample>
  ```json Success Response (200) theme={null}
  {
    "success": true,
    "code": 200,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "data": [
      {
        "id": 1,
        "title": {
          "lt": "20% nuolaida kavai",
          "en": "20% off coffee"
        },
        "description": {
          "lt": "Gaukite 20% nuolaida bet kuriai kavai",
          "en": "Get 20% off any coffee"
        },
        "type": "discount",
        "discount_value": 20,
        "discount_type": "percentage",
        "points_required": 0,
        "valid_from": "2024-12-01T00:00:00Z",
        "valid_until": "2024-12-31T23:59:59Z",
        "partner": {
          "id": 45,
          "name": "Coffee Paradise"
        }
      }
    ],
    "meta": {
      "current_page": 1,
      "last_page": 1,
      "per_page": 10,
      "total": 1
    }
  }
  ```
</ResponseExample>
