Skip to main content

List membership types

GET /membership-types

Requires the membership_types:read permission. Returns records belonging to the authenticated organisation, including unpublished or inactive records unless filtered.

Authorization​

X-API-Key required

Parameters​

NameLocationTypeRequiredDefaultLimitsDescription
pagequeryintegerNo1min 1, max 1000000Page number
limitqueryintegerNo10min 1, max 100Results per page
activequerybooleanNoWhether the membership type is active
groupIdquerystringNoRemyPass membership type group _id
renewalModequerynone, requiredNoMatches a pricing option with this renewal mode
updatedSincequerystring (date-time)NoInclusive ISO 8601 lower bound on updatedAt
createdAfterquerystring (date-time)NoInclusive ISO 8601 lower bound on createdAt
createdBeforequerystring (date-time)NoInclusive ISO 8601 upper bound on createdAt
searchquerystringNomax length 200Case-insensitive literal search over name

Data and reconciliation​

Amounts use minor currency units (for example, GBP 25.50 is returned as 2550). Currency codes are lowercase. Relationship fields contain RemyPass record IDs; use the matching get endpoint to fetch related records. Optional relationships and dates may be absent or null. Checkout tokens, internal metadata, payment-provider credentials and worker leases are excluded.

List responses sort by updatedAt ascending, then _id ascending. Keep the same filters while paging. updatedSince is inclusive and requires a timezone. See incremental sync for overlap, deduplication and deletion handling.

Request Examples​

curl -X GET "https://api.remypass.com/api/v1/public/membership-types" \
  -H "Accept: application/json" \
  -H "X-API-Key: YOUR_API_KEY"

Responses​

StatusDescription
200Success
400Bad request. The top-level message explains what is invalid and, where applicable, the errors array contains structured field details.
401Missing or invalid API key.
403The caller is not allowed to access this resource.
429Rate limit exceeded.
500Server error.

200 Response Example​

{
"success": true,
"message": "Success",
"data": [
{
"_id": "507f1f77bcf86cd799439011",
"createdAt": "2026-10-06T12:00:00.000Z",
"updatedAt": "2026-10-06T12:00:00.000Z",
"name": "Example",
"description": "example",
"benefits": "example",
"active": true,
"group": "507f1f77bcf86cd799439011",
"sortOrder": 0,
"price": {
"amount": 25,
"currency": "gbp"
},
"expiration": {
"interval": "year",
"intervalCount": 1,
"customInterval": "day"
},
"expiryPolicy": {
"mode": "rolling",
"timeZone": "example",
"rules": [
{}
]
},
"introductoryOffer": {
"enabled": false,
"audience": "new_members_only",
"type": "free_first_period"
},
"pricingOptions": [
{
"optionId": "example",
"label": "example",
"automaticRenewal": "none",
"minimumTermCycles": 1,
"_id": "507f1f77bcf86cd799439011",
"price": {},
"expiration": {},
"introductoryOffer": {}
}
],
"pass": {
"issueOnPurchase": true,
"template": "507f1f77bcf86cd799439011",
"sendEmail": true
},
"lifecycle": {
"cancellationAction": "deactivate",
"refundAction": "revoke",
"paymentFailureAction": "do_nothing",
"gracePeriodDays": 7
}
}
],
"pagination": {
"currentPage": 1,
"totalPages": 5,
"totalItems": 47,
"itemsPerPage": 10,
"hasNextPage": true,
"hasPrevPage": false
}
}

Response Fields​

FieldTypeDescriptionAttributes
successboolean
messagestring
dataarray of object
Show child attributes
  • _id: string — RemyPass record _id
  • createdAt: string (date-time) — created At
  • updatedAt: string (date-time) — updated At
  • name: string — name
  • description: string — description
  • benefits: string — benefits
  • active: boolean — active
  • group: string — Related RemyPass record _id
  • sortOrder: number — sort Order
  • price: object
    Show child attributes
    • amount: number — Money in minor currency units
    • currency: string — currency
  • expiration: object
    Show child attributes
    • interval: day, week, month, year, lifetime, custom — interval
    • intervalCount: number — interval Count
    • customInterval: day, week, month, year — custom Interval
  • expiryPolicy: object
    Show child attributes
    • mode: rolling, scheduled — mode
    • timeZone: string — time Zone
    • rules: array of object — rules
      Show child attributes
      • label: string — label
      • transactionStart: string — transaction Start
      • transactionEnd: string — transaction End
      • expiryMonthDay: string — expiry Month Day
  • introductoryOffer: object
    Show child attributes
    • enabled: boolean — enabled
    • audience: new_members_only — audience
    • type: free_first_period — type
  • pricingOptions: array of object — pricing Options
    Show child attributes
    • optionId: string — option Id
    • label: string — label
    • automaticRenewal: required, none — automatic Renewal
    • minimumTermCycles: number — minimum Term Cycles
    • _id: string — Related RemyPass record _id
    • price: object
      Show child attributes
      • amount: number — Money in minor currency units
      • currency: string — currency
    • expiration: object
      Show child attributes
      • interval: day, week, month, year, lifetime, custom — interval
      • intervalCount: number — interval Count
      • customInterval: day, week, month, year — custom Interval
    • introductoryOffer: object
      Show child attributes
      • enabled: boolean — enabled
      • requiresAdminReview: boolean — requires Admin Review
      • audience: new_members_only — audience
      • type: free_first_period — type
  • pass: object
    Show child attributes
    • issueOnPurchase: boolean — issue On Purchase
    • template: string — Related RemyPass record _id
    • sendEmail: boolean — send Email
  • lifecycle: object
    Show child attributes
    • cancellationAction: do_nothing, deactivate, expire, revoke — cancellation Action
    • refundAction: do_nothing, deactivate, expire, revoke — refund Action
    • paymentFailureAction: do_nothing, deactivate, expire, revoke — payment Failure Action
    • gracePeriodDays: number — grace Period Days
paginationobject
Show child attributes
  • currentPage: integer
  • totalPages: integer
  • totalItems: integer
  • itemsPerPage: integer
  • hasNextPage: boolean
  • hasPrevPage: boolean