---
title: "List Memberships"
method: GET
path: "/customers/memberships"
tags: ["Memberships"]
---

# List Memberships

`GET /customers/memberships`

This endpoint lists the `Membership`s which are associated to the provided site.

By default only active (non-archived) memberships are returned. Pass `archived=true`
to retrieve archived (soft-deleted) memberships instead.

## Query parameters

- `customer_id` string, uuid
- `archived` boolean
- `site_id` string
- `status` string[]
- `membership_type_id` string, uuid
- `membership_type_ids` string[]
- `membership_rate_ids` string[]
- `created_at_from` string, date
- `created_at_to` string, date
- `next_billing_date_from` string, date
- `next_billing_date_to` string, date
- `end_date_from` string, date
- `end_date_to` string, date
- `attention_reason` string
- `manual_payments` boolean
- `billing_frequency` string[]
- `rate_id` string[]
- `membership_number` string
- `external_ref` string
- `organisation_id` string, uuid
- `page` integer
- `per_page` integer

## Response `200`

The `Membership`s were successfully retrieved

- object
  - `data` Membership[], required
    - `id` string, uuid, required — The ID of the membership
    - `attention_reason` 'no_mandate' | 'setup_unpaid' | 'mandate_revoked' | 'payment_failed' | 'payment_disputed' | 'payment_outstanding' | 'site_id', required — A string describing what kind of action needs to take place
    - `basket_id` string, mongo-id, required — The basket ID which was used to purchase this membership, if applicable.
    - `customer` Customer — A guest record — the long-lived profile that bookings, orders, payments, memberships and marketing preferences attach to. Customers are scoped to a site (and, where configured, an organisation) and may have multiple addresses, payment methods and external IDs. Their email is the natural login identifier when self-service is enabled.
      - `id` string, uuid, required — The ID of the customer.
      - `first_name` string, nullable, required — The first name of the customer.
      - `last_name` string, nullable, required — The last name of the customer.
      - `full_name` string, nullable, required — The customer's full name
      - `phone` string, nullable, required — The customer's phone number in E.164 format, or `null` if not provided.
      - `has_password` boolean, required — Whether the user has a password
      - `dob` string, date, nullable, required — The customer's date of birth in YYYY-MM-DD format, or `null` if not provided.
      - `brand_id` string, uuid, required — The ID of the brand this customer belongs to
      - `site_id` string, uuid, required — Identifier of the site the customer was created at. Customer records are scoped per site so each location's CRM data is isolated; cross-site reporting is available via the brand or organisation.
      - `stripe_id` string, nullable, required — The Stripe Customer ID for this customer
      - `express_stripe_id` string, nullable, required — The Stripe Customer ID for this customer if they also exist in Trybe's legacy Stripe integration
      - `email` string, nullable, required — The email address of the customer. The case of the email address is not preserved, so you'll always see this in lowercase.
      - `labels` SchemasCustomerLabel[], required — An array of labels associated with this customer
        - `id` string, uuid, required — The ID of the label
        - `value` string, required — The name of the label
        - `colour` string, required — A hex colour code excluding the preceding \# which this label will be rendered as.
      - `preferred_locale` string, required — The preferred locale of the customer. This must be one of the platform's supported locales, which can be retrieved using the [`listMetaSupportedLocales`](/endpoints/Meta#listMetaSupportedLocales) endpoint.
      - `locked_at` string, date-time, nullable, required — The datetime which the customer was locked, or null if it has not been locked.
      - `created_at` string, date-time, required — The datetime which the customer was created
      - `updated_at` string, date-time, required — The datetime which the customer was last updated
      - `deleted_at` string, date-time, nullable, required — The datetime which the customer was anonymised, or null if it has not been.
      - `last_active_at` string, date-time, nullable, required — The datetime which the customer was last active
      - `email_verified_at` string, date-time, nullable, required — The datetime which the customer verified their email address
      - `last_check_in` LastCheckInSummary, required
        - `checked_in_at` string, date-time, nullable, required — The datetime which the customer was last checked in.
        - `method` string, required — The name of the method used to create this check-in
      - `avatar_id` string, uuid, nullable, required — The media ID of the customer's avatar, or `null` if one hasn't been provided.
      - `avatar` Media, required
        - `id` string, uuid, required — Unique identifier of the uploaded media item, returned from `createMedia`. Pass this ID into any field that accepts a media reference (logos, hero images, product images, etc.).
        - `file_name` string, required — Original filename of the uploaded asset, preserved as provided at upload time. Used for display in the media library and as a hint when serving downloads.
        - `mime_type` string, required — The mime type of the media item.
        - `original_url` string, required — The url of the media resource.
        - `size` integer, required — The size of the media item in bytes.
        - `url` string, required — The url of the converted media resource.
      - `external_ref` string, nullable, required — An external reference for this customer.
    - `end_date` string, date-time, nullable, required — The date which the membership ends
    - `external_ref` string, required — An external reference for this membership.
    - `members` MemberSummary[], required
      - `customer_id` string, uuid, required — The ID of the customer
      - `is_lead` boolean, required — Whether this member is the lead member
      - `membership_number` string, required — The unique membership number of the member
    - `membership_number` string, required — The unique membership number of the lead member. This is always a 10 digit numeric string. Since this field only relates to the lead member, this is now deprecated. Instead, find the membership for the relevant customer in the `members` array.
    - `next_billing_date` string, date-time, nullable, required — The date which the membership will next be billed
    - `next_charge` MembershipChargeSummary — A summary of a membership charge
      - `id` string, uuid, required — The ID of the membership charge
      - `amount` integer, required — The amount of the charge, in minor units
      - `currency` string, required — The currency of the charge. See [Supported Currencies](/endpoints/Meta#listMetaSupportedCurrencies) for a list of supported currencies.
      - `status` 'awaiting_approval' | 'pending' | 'succeeded' | 'processing' | 'errored' | 'failed', required — The status of the charge.
      - `billing_period_from` string, date, required — The first date covered by the charge
      - `billing_period_to` string, date, required — The last date covered by the charge
    - `payment_method` object, nullable, required — Details about the payment method attached to this membership. This payment method is used to take payment on the monthly billing period. If a payment method hasn't been set up, this will be null.
      - `id` string — The ID of the payment method this membership uses for
      - `type` 'card' | 'direct_debit' — The type of payment method.
      - `last_4` string — The last 4 digits of the long card number or the bank account number.
      - `status` string — When the payment method is a Direct Debit mandate, the status shows whether the mandate is usable or not
      - `card_brand` string — The brand of the card
    - `rate` MembershipRate, required
      - `id` string, uuid, required — The ID of the membership rate
      - `membership_type_id` string, uuid, required — The ID of the `MembershipType` which this rate belongs to
      - `name` string, required — The name of the membership rate
      - `currency` string, required — The currency which all monetary values of this rate are in, uppercase, in the ISO4217 format
      - `price` number, required — The price of the rate as an integer of the smallest unit eg pence. This is charged to the customer every billing period according to the `billing_frequency`
      - `joining_fee` number, required — The price of the joining fee as an integer of the smallest unit eg pence.
      - `billing_frequency` string, required — The frequency that this membership is billed. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations
      - `processors` string[], required
      - `default_duration` string, nullable, required — The default duration of the membership. This is used when a customer signs themselves up for a membership. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations
      - `notice_period` 'P7D' | 'P14D' | 'P1M' | 'P3M' | 'P6M' | 'P1Y' | 'null', nullable, required — How much notice a customer must give to cancel a membership on this rate. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations When null, no notice is required.
      - `private` boolean, required — Whether this `MembershipRate` is private. If public, it will be selectable on the self-signup flow.
      - `created_at` string, date-time, required — The datetime which the rate was created
      - `updated_at` string, date-time, required — The datetime which the membership was last updated
    - `site_id` string, uuid, required — The ID of the site this membership belongs to
    - `source` 'self_signup' | 'app' | 'import' | 'unknown', required — Where the membership was created
    - `start_date` string, date-time, required — The date which the membership starts
    - `status` 'active' | 'needs_dd_mandate' | 'needs_attention' | 'reserved' | 'inactive' | 'expired' | 'upcoming', required
    - `status_updated_at` string, date-time, required
    - `type` MembershipType, required
      - `id` string, uuid, required — The ID of the membership type
      - `name` string, required — The name of the membership type
      - `description` string, nullable, required — The description of the membership type
      - `terms` string, nullable, required — Terms and conditions of the membership type
      - `brand_id` string, uuid, required — The ID of the brand this type is linked to
      - `offline_payments` boolean, required — Whether this MembershipType takes "offline" payments. If true, the monthly fee won't automatically be collected using Stripe, which can be useful if a different provider is used for collecting direct debits. You'll need to manually manage the membership status.
      - `disable_confirmation_email` boolean, required — Whether to disable sending the confirmation email when a membership is confirmed.
      - `private` boolean, required — Whether this `MembershipType` is private or not. When a `MembershipType` is private, it won't be shown to users on the site's shop frontend. This field is deprecated and has been superceded by `visibility`.
      - `visibility` 'public' | 'private' | 'link_only' — The visibility of the `MembershipType` on the site's shop frontend.
      - `minimum_start_date` string, date-time, nullable, required — The minimum start date for a membership of this type.
      - `min_members` integer, required — The minimum number of members required to create a membership of this type
      - `max_members` integer, required — The maximum number of members allowed to create a membership of this type
      - `rates` MembershipRate[], required — The public MembershipRates for this type, or if a `MembershipSignupToken` was passed, the rate linked to that.
        - `id` string, uuid, required — The ID of the membership rate
        - `membership_type_id` string, uuid, required — The ID of the `MembershipType` which this rate belongs to
        - `name` string, required — The name of the membership rate
        - `currency` string, required — The currency which all monetary values of this rate are in, uppercase, in the ISO4217 format
        - `price` number, required — The price of the rate as an integer of the smallest unit eg pence. This is charged to the customer every billing period according to the `billing_frequency`
        - `joining_fee` number, required — The price of the joining fee as an integer of the smallest unit eg pence.
        - `billing_frequency` string, required — The frequency that this membership is billed. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations
        - `processors` string[], required
        - `default_duration` string, nullable, required — The default duration of the membership. This is used when a customer signs themselves up for a membership. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations
        - `notice_period` 'P7D' | 'P14D' | 'P1M' | 'P3M' | 'P6M' | 'P1Y' | 'null', nullable, required — How much notice a customer must give to cancel a membership on this rate. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations When null, no notice is required.
        - `private` boolean, required — Whether this `MembershipRate` is private. If public, it will be selectable on the self-signup flow.
        - `created_at` string, date-time, required — The datetime which the rate was created
        - `updated_at` string, date-time, required — The datetime which the membership was last updated
      - `revenue_schedule` string, nullable, required — The schedule that revenues for this membership should be created, as an [RRULE](https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html) string
      - `created_at` string, date-time, required — The datetime which the membership type was created
      - `updated_at` string, date-time, required — The datetime which the membership type was last updated
      - `deleted_at` string, date-time, nullable, required — The datetime which the membership type was archived, or null if it isn't archived.
    - `payment_details_url` string — A URL to a page where the member can provide their payment details.
    - `created_at` string, date-time, required — The datetime which the membership was created
  - `meta` PaginationMeta, required — Counts and positional information for the current page of a list response. Use `current_page` and `last_page` to drive pagination UI, `total` for result counts, and `per_page` to confirm the page size the server actually applied (which may differ from the requested value when capped).
    - `from` integer, required — The item number from which this results set starts from
    - `to` integer, required — The item number from which this results set ends at
    - `total` integer, required — The total number of results
    - `current_page` integer, required — The current page number
    - `last_page` integer, required — The page number of the last result set
    - `per_page` integer, required — The number of results per page
    - `path` string, required — The path of this api request
  - `links` PaginationLinks, required — Hypermedia navigation links for paging through a list response. Each property is a fully-qualified URL that preserves the original query string (filters, sort, page size) and only swaps the `page` parameter. `next` and `prev` are `null` at the ends of the result set; `first` and `last` are always present.
    - `first` string, required — The url of the first page for the paginated results set
    - `next` string, nullable, required — The url of the next page for the paginated results set
    - `prev` string, nullable, required — The url of the previous page for the paginated results set
    - `last` string, required — The url of the last page for the paginated results set

## Other responses

- `401` — The user is unauthenticated

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
