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
| Name | Location | Type | Required | Default | Limits | Description |
|---|---|---|---|---|---|---|
page | query | integer | No | 1 | min 1, max 1000000 | Page number |
limit | query | integer | No | 10 | min 1, max 100 | Results per page |
active | query | boolean | No | Whether the membership type is active | ||
groupId | query | string | No | RemyPass membership type group _id | ||
renewalMode | query | none, required | No | Matches a pricing option with this renewal mode | ||
updatedSince | query | string (date-time) | No | Inclusive ISO 8601 lower bound on updatedAt | ||
createdAfter | query | string (date-time) | No | Inclusive ISO 8601 lower bound on createdAt | ||
createdBefore | query | string (date-time) | No | Inclusive ISO 8601 upper bound on createdAt | ||
search | query | string | No | max length 200 | Case-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
| Status | Description |
|---|---|
200 | Success |
400 | Bad request. The top-level message explains what is invalid and, where applicable, the errors array contains structured field details. |
401 | Missing or invalid API key. |
403 | The caller is not allowed to access this resource. |
429 | Rate limit exceeded. |
500 | Server 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
| Field | Type | Description | Attributes |
|---|---|---|---|
success | boolean | ||
message | string | ||
data | array of object | Show child attributes
| |
pagination | object | Show child attributes
|