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

# List reward activities

> ⚠️ **BETA endpoint**

This is a work-in-progress documentation of a BETA endpoint. The parameters, fields, request and response bodies, and other data may subject to change. If you want to share feedback or improvements, contact Voucherify support or your Technical Account Manager.

Returns a cursor-paginated audit log of activities for a specific reward.



## OpenAPI

````yaml /openapi/loyalties-v2.json get /v2/loyalties/rewards/{id}/activities
openapi: 3.1.0
info:
  title: Voucherify Loyalty v2 API
  version: 2.0.0
  description: >-
    Complete API documentation for Voucherify Loyalty v2 system. Requires
    LOYALTY_V2 feature flag.
servers:
  - url: https://api.voucherify.io
    description: Production
security:
  - bearerAuth: []
    X-App-Id: []
    X-App-Token: []
tags:
  - name: Card Definitions
    description: >-
      CRUD operations, lifecycle management, and activity history for card
      definitions. Card definitions describe the configuration for loyalty
      cards, including code generation, points expiration, earning/spending
      limits, pending points, refunds, and balance settings.
  - name: Programs
    description: >-
      Loyalty program CRUD, lifecycle management, program-scoped resource
      assignments (card definitions, earning rules, rewards, tier structures),
      member management (create, list, get, activate, deactivate, delete), card
      operations (points adjustment, pending points, expiring points,
      transactions), reward purchases, and activity history.
  - name: Earning Rules
    description: >-
      Manage earning rules that define how customers earn points or receive
      incentives based on triggers (events, segments, custom events). Includes
      CRUD, lifecycle, and activity history.
  - name: Tier Structures
    description: >-
      CRUD operations, lifecycle management, and activity history for tier
      structures. Includes nested tier definitions (create, list, update,
      delete) within tier structures. Tier structures define the tiering model
      for loyalty programs — how members qualify for and move between tiers.
  - name: Incentives
    description: >-
      Manage incentive definitions (fixed points, proportional points, material,
      digital). Includes CRUD, lifecycle transitions, and activity history.
  - name: Rewards
    description: >-
      CRUD, lifecycle operations, and activity history for reward definitions.
      Rewards can be material (product/SKU) or digital (discount coupons, gift
      vouchers).
  - name: Examine
    description: Examines the earning of loyalty points for a loyalty program member.
paths:
  /v2/loyalties/rewards/{id}/activities:
    get:
      tags:
        - Rewards
      summary: List reward activities
      description: >-
        ⚠️ **BETA endpoint**


        This is a work-in-progress documentation of a BETA endpoint. The
        parameters, fields, request and response bodies, and other data may
        subject to change. If you want to share feedback or improvements,
        contact Voucherify support or your Technical Account Manager.


        Returns a cursor-paginated audit log of activities for a specific
        reward.
      operationId: listRewardActivities
      parameters:
        - $ref: '#/components/parameters/RewardId'
        - $ref: '#/components/parameters/RewardQueryLimit'
        - name: order
          in: query
          required: false
          description: Sort order for activities.
          schema:
            oneOf:
              - type: string
                enum:
                  - created_at
                  - '-created_at'
              - type: array
                items:
                  type: string
                  enum:
                    - created_at
                    - '-created_at'
        - $ref: '#/components/parameters/RewardQueryCursor'
        - name: filters
          in: query
          required: false
          description: |
            Filter criteria. Passed via bracket notation in query string.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VLRewardActivitiesFilters'
      responses:
        '200':
          description: Paginated list of reward activities.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VLRewardActivityListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    RewardId:
      name: id
      in: path
      required: true
      description: Unique reward identifier.
      schema:
        type: string
    RewardQueryLimit:
      name: limit
      in: query
      required: false
      description: Maximum number of results to return (1–100, default 10).
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
    RewardQueryCursor:
      name: cursor
      in: query
      required: false
      description: Pagination cursor returned from a previous response.
      schema:
        type: string
  schemas:
    VLRewardActivitiesFilters:
      type: object
      description: Filter criteria for the reward activities list.
      properties:
        junction:
          oneOf:
            - type: string
              enum:
                - AND
                - OR
            - type: 'null'
          description: Logical junction between field filters.
        id:
          oneOf:
            - $ref: '#/components/schemas/IdFilterField'
            - type: 'null'
          description: Filter by activity ID.
        type:
          oneOf:
            - $ref: '#/components/schemas/ActivityTypeFilterField'
            - type: 'null'
          description: Filter by activity type.
        created_at:
          oneOf:
            - $ref: '#/components/schemas/DateFilterField'
            - type: 'null'
          description: Filter by creation date.
      additionalProperties: false
    VLRewardActivityListResponse:
      type: object
      description: Paginated list of reward activities.
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/VLRewardActivityDTO'
        cursor:
          oneOf:
            - $ref: '#/components/schemas/PaginationCursor'
            - type: 'null'
          description: Null when there are no more pages.
        object:
          type: string
          const: list
      required:
        - data
        - cursor
        - object
    IdFilterField:
      type: object
      description: >-
        ID-based filter. Conditions: $is, $is_not, $in (max 100), $not_in (max
        100).
      properties:
        conditions:
          type: object
          properties:
            $is:
              $ref: '#/components/schemas/StringOrSingleArray'
            $is_not:
              $ref: '#/components/schemas/StringOrSingleArray'
            $in:
              $ref: '#/components/schemas/StringOrIdBatchArray'
            $not_in:
              $ref: '#/components/schemas/StringOrIdBatchArray'
          additionalProperties: false
          minProperties: 1
      required:
        - conditions
      additionalProperties: false
    ActivityTypeFilterField:
      type: object
      description: Enum filter for activity type.
      properties:
        conditions:
          type: object
          properties:
            $is:
              $ref: '#/components/schemas/ActivityTypeValue'
            $is_not:
              $ref: '#/components/schemas/ActivityTypeValue'
            $in:
              $ref: '#/components/schemas/ActivityTypeBatchValue'
            $not_in:
              $ref: '#/components/schemas/ActivityTypeBatchValue'
          additionalProperties: false
          minProperties: 1
      required:
        - conditions
      additionalProperties: false
    DateFilterField:
      type: object
      description: >-
        Date-based filter. Supports absolute dates, relative days-ago, and
        presence checks.
      properties:
        conditions:
          type: object
          properties:
            $before:
              $ref: '#/components/schemas/DateValue'
            $after:
              $ref: '#/components/schemas/DateValue'
            $is:
              $ref: '#/components/schemas/DaysAgoValue'
            $more_than:
              $ref: '#/components/schemas/DaysAgoValue'
            $less_than:
              $ref: '#/components/schemas/DaysAgoValue'
            $has_value:
              $ref: '#/components/schemas/PresenceValue'
            $is_unknown:
              $ref: '#/components/schemas/PresenceValue'
          additionalProperties: false
          minProperties: 1
      required:
        - conditions
      additionalProperties: false
    VLRewardActivityDTO:
      type: object
      description: Reward activity audit-log entry.
      properties:
        id:
          type: string
          description: Unique activity identifier.
        type:
          type: string
          enum:
            - vl.reward.created
            - vl.reward.updated
            - vl.reward.deleted
            - vl.reward.assigned
            - vl.reward.unassigned
            - vl.reward.activated
            - vl.reward.deactivated
            - vl.reward.drafted
          description: Activity type.
        data:
          type: object
          description: >
            Activity payload. Always contains `reward`.

            For `assigned` / `unassigned` types also includes `program` and
            `program_reward`.
          properties:
            reward:
              $ref: '#/components/schemas/VLRewardDTO'
          required:
            - reward
          additionalProperties: true
        created_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp.
        group_id:
          type: string
          description: Correlation group identifier.
        source:
          $ref: '#/components/schemas/ActivitySource'
          description: Origin of the activity.
        reward_id:
          type: string
          description: Reward this activity belongs to.
      required:
        - id
        - type
        - data
        - created_at
        - reward_id
    PaginationCursor:
      type: object
      description: Cursor for fetching the next page of results.
      properties:
        next:
          type: string
          description: >-
            Cursor token to pass as the `cursor` query parameter for the next
            page.
        expires_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp when this cursor expires.
      required:
        - next
        - expires_at
    ErrorResponse:
      type: object
      description: Standard error response.
      properties:
        code:
          type: integer
          description: HTTP status code.
        key:
          type: string
          description: Machine-readable error key.
        message:
          type: string
          description: Human-readable error message.
        details:
          type: string
          description: Additional error details.
        request_id:
          type:
            - string
            - 'null'
          description: Request identifier for tracing.
        resource_id:
          type: string
          description: Related resource identifier (when applicable).
        resource_type:
          type: string
          description: Related resource type (when applicable).
      required:
        - code
        - key
        - message
    StringOrSingleArray:
      description: A single string or a one-element string array.
      oneOf:
        - type: string
        - type: array
          items:
            type: string
          minItems: 1
          maxItems: 1
        - type: 'null'
    StringOrIdBatchArray:
      description: A single string or a string array (max 100 items, for ID fields).
      oneOf:
        - type: string
        - type: array
          items:
            type: string
          minItems: 1
          maxItems: 100
        - type: 'null'
    ActivityTypeValue:
      description: Single activity-type enum value.
      oneOf:
        - type: string
          enum:
            - vl.reward.created
            - vl.reward.updated
            - vl.reward.deleted
            - vl.reward.assigned
            - vl.reward.unassigned
            - vl.reward.activated
            - vl.reward.deactivated
            - vl.reward.drafted
        - type: array
          items:
            type: string
            enum:
              - vl.reward.created
              - vl.reward.updated
              - vl.reward.deleted
              - vl.reward.assigned
              - vl.reward.unassigned
              - vl.reward.activated
              - vl.reward.deactivated
              - vl.reward.drafted
          minItems: 1
          maxItems: 1
        - type: 'null'
    ActivityTypeBatchValue:
      description: Activity-type enum values (max 10).
      oneOf:
        - type: string
          enum:
            - vl.reward.created
            - vl.reward.updated
            - vl.reward.deleted
            - vl.reward.assigned
            - vl.reward.unassigned
            - vl.reward.activated
            - vl.reward.deactivated
            - vl.reward.drafted
        - type: array
          items:
            type: string
            enum:
              - vl.reward.created
              - vl.reward.updated
              - vl.reward.deleted
              - vl.reward.assigned
              - vl.reward.unassigned
              - vl.reward.activated
              - vl.reward.deactivated
              - vl.reward.drafted
          minItems: 1
          maxItems: 10
        - type: 'null'
    DateValue:
      description: ISO 8601 date-time string or single-element array.
      oneOf:
        - type: string
          format: date-time
        - type: array
          items:
            type: string
            format: date-time
          minItems: 1
          maxItems: 1
        - type: 'null'
    DaysAgoValue:
      description: >-
        Non-negative integer (days ago) encoded as a string, or single-element
        array.
      oneOf:
        - type: string
          pattern: ^\d+$
        - type: array
          items:
            type: string
            pattern: ^\d+$
          minItems: 1
          maxItems: 1
        - type: 'null'
    PresenceValue:
      description: Presence-check value (any truthy string or empty array).
      oneOf:
        - type: string
        - type: array
          maxItems: 1
        - type: 'null'
    VLRewardDTO:
      type: object
      description: Reward resource representation.
      properties:
        id:
          type: string
          description: Unique reward identifier.
        name:
          type: string
          description: Reward display name.
        type:
          type: string
          enum:
            - MATERIAL
            - DIGITAL
          description: Reward type.
        status:
          type: string
          enum:
            - ACTIVE
            - DRAFT
            - INACTIVE
            - DELETED
          description: Current lifecycle status.
        material:
          $ref: '#/components/schemas/VLRewardMaterialDTO'
          description: Material configuration. Present only when type is MATERIAL.
        digital:
          $ref: '#/components/schemas/VLRewardDigitalDTO'
          description: Digital configuration. Present only when type is DIGITAL.
        metadata:
          type: object
          additionalProperties: true
          description: Key-value metadata.
        created_at:
          type: string
          format: date-time
          description: ISO 8601 creation timestamp.
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
          description: ISO 8601 last-update timestamp. Null if never updated.
        object:
          type: string
          const: reward
      required:
        - id
        - name
        - type
        - status
        - metadata
        - created_at
        - updated_at
        - object
    ActivitySource:
      type: object
      description: Source information for an activity.
      properties:
        channel:
          type: string
          enum:
            - USER_PORTAL
            - API
            - CLIENT_API
            - INTERNAL
          description: Channel through which the activity was triggered.
        user:
          type: object
          properties:
            id:
              type: string
              description: User identifier.
        api_key:
          type: object
          properties:
            name:
              type: string
            app_id:
              type: string
            client_app_id:
              type: string
    VLRewardMaterialDTO:
      type: object
      description: Material reward configuration.
      properties:
        type:
          type: string
          enum:
            - PRODUCT
            - SKU
          description: Material sub-type.
        product:
          $ref: '#/components/schemas/VLRewardMaterialProductDTO'
          description: Present when material type is PRODUCT.
        sku:
          $ref: '#/components/schemas/VLRewardMaterialSKUDTO'
          description: Present when material type is SKU.
      required:
        - type
    VLRewardDigitalDTO:
      type: object
      description: Digital reward configuration.
      properties:
        type:
          type: string
          enum:
            - DISCOUNT_COUPONS
            - GIFT_VOUCHERS
          description: Digital sub-type.
        discount_coupons:
          $ref: '#/components/schemas/VLRewardDigitalDiscountCouponsDTO'
          description: Present when digital type is DISCOUNT_COUPONS.
        gift_vouchers:
          $ref: '#/components/schemas/VLRewardDigitalGiftVouchersDTO'
          description: Present when digital type is GIFT_VOUCHERS.
      required:
        - type
    VLRewardMaterialProductDTO:
      type: object
      properties:
        id:
          type: string
          description: Product identifier.
      required:
        - id
    VLRewardMaterialSKUDTO:
      type: object
      properties:
        product_id:
          type: string
          description: Parent product identifier.
        id:
          type: string
          description: SKU identifier.
      required:
        - product_id
        - id
    VLRewardDigitalDiscountCouponsDTO:
      type: object
      properties:
        campaign_id:
          type: string
          description: Linked discount-coupons campaign identifier.
      required:
        - campaign_id
    VLRewardDigitalGiftVouchersDTO:
      type: object
      properties:
        campaign_id:
          type: string
          description: Linked gift-vouchers campaign identifier.
        balance:
          type: number
          minimum: 0
          description: Gift voucher balance amount.
      required:
        - campaign_id
        - balance
  responses:
    BadRequest:
      description: Validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    X-App-Id:
      type: apiKey
      name: X-App-Id
      in: header
    X-App-Token:
      type: apiKey
      name: X-App-Token
      in: header

````