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

# List memberships

> Return a paginated list of individual memberships for the authenticated group, with optional server-side filters on start date, end date, creation date, amount, contact, and membership price. Ordered by start date (newest first) by default. Maximum limit is 1000.

**Date ranges:** `start_from`/`start_to`, `end_from`/`end_to`, or `created_from`/`created_to`.

**Contacts / prices:** repeat or comma-separate `contact_id` and `membership_price_id`.

Use `end_from`/`end_to` to find memberships expiring within a window (renewal campaigns).


## OpenAPI

````yaml /src/autogen/donation-membership-transaction-openapi3.0.yaml get /v1/memberships
openapi: 3.1.0
info:
  description: >-
    This OpenAPI 3.1 specification describes the public API of the Qomon
    platform. It is generated from the code and serves both as documentation for
    API consumers and as a contract for future development.
  title: Qomon API Reference
  version: 0.0.1
servers:
  - description: Production
    url: https://incoming.qomon.app
security:
  - bearerAuth: []
tags:
  - description: >-
      Create, read, update, and delete transaction bundles. A bundle is a single
      payment event grouping one or more transactions with optional donations
      and memberships.
    name: Transaction bundles
  - description: >-
      Read individual transactions (the payment legs of a bundle) with
      server-side filtering by date, amount, status, payment method and
      campaign, plus a contact's full transaction history.
    name: Transactions
  - description: >-
      List donations directly, filtered by donation date, contact, price or
      amount — without fetching whole bundles.
    name: Donations
  - description: >-
      List memberships directly, filtered by start/end/creation date, contact,
      price or amount.
    name: Memberships
  - description: >-
      Read-only configuration resources: transaction settings, statuses,
      donation and membership prices, and code campaigns.
    name: Settings and configuration
paths:
  /v1/memberships:
    get:
      tags:
        - Memberships
      summary: List memberships
      description: >-
        Return a paginated list of individual memberships for the authenticated
        group, with optional server-side filters on start date, end date,
        creation date, amount, contact, and membership price. Ordered by start
        date (newest first) by default. Maximum limit is 1000.
      operationId: list-memberships
      parameters:
        - description: Maximum number of items to return.
          explode: false
          in: query
          name: limit
          schema:
            default: 20
            description: Maximum number of items to return.
            format: int64
            maximum: 1000
            minimum: 1
            type: integer
        - description: Number of items to skip.
          explode: false
          in: query
          name: offset
          schema:
            default: 0
            description: Number of items to skip.
            format: int64
            minimum: 0
            type: integer
        - description: Only memberships starting on or after this date (RFC 3339).
          explode: false
          in: query
          name: start_from
          schema:
            description: Only memberships starting on or after this date (RFC 3339).
            format: date-time
            type: string
        - description: Only memberships starting on or before this date (RFC 3339).
          explode: false
          in: query
          name: start_to
          schema:
            description: Only memberships starting on or before this date (RFC 3339).
            format: date-time
            type: string
        - description: Only memberships ending on or after this date (RFC 3339).
          explode: false
          in: query
          name: end_from
          schema:
            description: Only memberships ending on or after this date (RFC 3339).
            format: date-time
            type: string
        - description: Only memberships ending on or before this date (RFC 3339).
          explode: false
          in: query
          name: end_to
          schema:
            description: Only memberships ending on or before this date (RFC 3339).
            format: date-time
            type: string
        - description: Only memberships created on or after this date (RFC 3339).
          explode: false
          in: query
          name: created_from
          schema:
            description: Only memberships created on or after this date (RFC 3339).
            format: date-time
            type: string
        - description: Only memberships created on or before this date (RFC 3339).
          explode: false
          in: query
          name: created_to
          schema:
            description: Only memberships created on or before this date (RFC 3339).
            format: date-time
            type: string
        - description: Minimum amount in cents (inclusive).
          explode: false
          in: query
          name: amount_min
          schema:
            description: Minimum amount in cents (inclusive).
            format: int64
            minimum: 0
            type: integer
        - description: Maximum amount in cents (inclusive).
          explode: false
          in: query
          name: amount_max
          schema:
            description: Maximum amount in cents (inclusive).
            format: int64
            minimum: 0
            type: integer
        - description: Filter by one or more contact IDs (repeat or comma-separate).
          explode: false
          in: query
          name: contact_id
          schema:
            description: Filter by one or more contact IDs (repeat or comma-separate).
            items:
              format: int64
              minimum: 0
              type: integer
            type:
              - array
              - 'null'
        - description: >-
            Filter by one or more membership price IDs. See GET
            /v1/membership_prices.
          explode: false
          in: query
          name: membership_price_id
          schema:
            description: >-
              Filter by one or more membership price IDs. See GET
              /v1/membership_prices.
            items:
              format: int64
              minimum: 0
              type: integer
            type:
              - array
              - 'null'
        - description: Sort column.
          explode: false
          in: query
          name: sort
          schema:
            default: start_date
            description: Sort column.
            enum:
              - created_at
              - start_date
              - end_date
              - amount
            type: string
        - description: Sort direction.
          explode: false
          in: query
          name: order
          schema:
            default: desc
            description: Sort direction.
            enum:
              - asc
              - desc
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusListEnvelopeMembership'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Error
components:
  schemas:
    StatusListEnvelopeMembership:
      additionalProperties: true
      properties:
        data:
          items:
            $ref: '#/components/schemas/Membership'
          type:
            - array
            - 'null'
        status:
          description: Operation result.
          examples:
            - success
          type: string
        total:
          description: Total number of matching items.
          format: int64
          type: integer
      required:
        - status
        - data
        - total
      type: object
    ErrorModel:
      additionalProperties: true
      properties:
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    Membership:
      additionalProperties: true
      properties:
        CreatedAt:
          description: Creation timestamp.
          format: date-time
          type: string
        UpdatedAt:
          description: Last update timestamp.
          format: date-time
          type: string
        amount:
          default: 0
          description: Amount in cents.
          examples:
            - 3000
          format: int64
          minimum: 0
          type: integer
        amount_initial:
          description: Initial amount in cents.
          examples:
            - 3000
          format: int64
          minimum: 0
          type: integer
        comment:
          description: Optional comment.
          type: string
        contact:
          $ref: '#/components/schemas/ContactForTransaction'
          description: Associated contact.
        contact_id:
          description: Contact ID - required for memberships.
          format: int64
          minimum: 0
          type: integer
        currency:
          description: Currency code.
          examples:
            - eur
          type: string
        end_date:
          description: Membership end date (ISO 8601 format).
          format: date-time
          type: string
        id:
          description: Membership ID (for updates, omit for new memberships).
          format: int64
          minimum: 0
          type: integer
        membership_price_id:
          description: Membership price ID (must exist in group's membership prices).
          format: int64
          minimum: 0
          type: integer
        rolling_year:
          description: Optional rolling year.
          type: boolean
        start_date:
          description: Membership start date (ISO 8601 format).
          format: date-time
          type: string
      required:
        - amount
        - contact_id
      type: object
    ErrorDetail:
      additionalProperties: true
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    ContactForTransaction:
      additionalProperties: true
      properties:
        firstname:
          description: Contact first name.
          type: string
        group_id:
          description: ID of the group the contact belongs to.
          format: int64
          minimum: 0
          readOnly: true
          type: integer
        id:
          description: Unique identifier.
          format: int64
          minimum: 0
          type: integer
        membership_code:
          description: Membership code.
          type: string
        membership_number:
          description: Membership number.
          format: int64
          minimum: 0
          type: integer
        surname:
          description: Contact surname.
          type: string
      required:
        - id
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: opaque
      description: >-
        OAuth2 access token. Pass the token in the Authorization header as
        `Bearer <token>`. The token is looked up in Redis to resolve the caller
        identity.
      scheme: bearer
      type: http

````