List memberships
GET /memberships
Requires the memberships:read permission. Returns memberships belonging to the authenticated organisation.
Authorization
X-API-Key required
Parameters
| Name | Location | Type | Required | Default | Limits | Description |
|---|---|---|---|---|---|---|
page | query | integer | No | 1 | min 1 | Page number |
limit | query | integer | No | 10 | min 1, max 100 | Results per page |
memberId | query | string | No | RemyPass member _id, not the custom member number | ||
membershipTypeId | query | string | No | Membership tier _id | ||
status | query | pending, active, past_due, canceled, expired, refunded, failed | No | Exact stored membership status | ||
paymentMode | query | one_off, subscription | No | Membership payment mode | ||
updatedSince | query | string (date-time) | No | Inclusive ISO 8601 lower bound on updatedAt |
Membership status and billing
status is the stored RemyPass membership state, updated through payment webhooks. It is separate from pass status and is not a live Stripe subscription lookup. Scheduled cancellation keeps the existing status and sets cancelAtPeriodEnd to true.
Amounts use minor currency units. Dates and relationship IDs may be absent or null when unavailable. stripe contains account, customer and subscription IDs for reconciliation; paymentRecovery contains action-required, attempt-count, next-attempt and grace-period details. Checkout secrets, buyer information and internal metadata are excluded.
Request Examples
curl -X GET "https://api.remypass.com/api/v1/public/memberships" \
-H "Accept: application/json" \
-H "X-API-Key: YOUR_API_KEY"Use Case Examples
List a member’s memberships with pagination
curl -X GET "https://api.remypass.com/api/v1/public/memberships?memberId=507f1f77bcf86cd799439012&limit=25&page=1" \
-H "X-API-Key: YOUR_API_KEY"
Responses
| Status | Description |
|---|---|
200 | Success |
400 | Invalid parameters |
401 | Invalid API key |
403 | Missing permission or plan access |
429 | Rate limit exceeded. |
500 | Server error |
200 Response Example
{
"success": true,
"message": "Success",
"data": [
{
"_id": "507f1f77bcf86cd799439011",
"member": "507f1f77bcf86cd799439012",
"membershipType": "507f1f77bcf86cd799439013",
"passInstance": "507f1f77bcf86cd799439014",
"status": "active",
"paymentMode": "subscription",
"amount": 25000,
"currency": "dkk",
"autoRenews": true,
"cancelAtPeriodEnd": true,
"currentPeriodStart": "2026-10-01T00:00:00.000Z",
"currentPeriodEnd": "2026-11-01T00:00:00.000Z",
"expiresAt": "2026-11-01T23:59:59.999Z",
"activatedAt": "2026-01-01T12:00:00.000Z",
"lastPaymentAt": "2026-10-01T00:00:00.000Z",
"cancellationRequestedAt": "2026-10-06T12:00:00.000Z",
"createdAt": "2026-01-01T12:00:00.000Z",
"updatedAt": "2026-10-06T12:00:00.000Z",
"stripe": {
"accountId": "acct_example",
"customerId": "cus_example",
"subscriptionId": "sub_example"
},
"paymentRecovery": {
"actionRequired": false,
"attemptCount": 0,
"nextPaymentAttempt": null,
"gracePeriodEndsAt": null
}
}
],
"pagination": {
"currentPage": 1,
"totalPages": 1,
"totalItems": 1,
"itemsPerPage": 10,
"hasNextPage": false,
"hasPrevPage": false
}
}
Response Fields
| Field | Type | Description | Attributes |
|---|---|---|---|
success | boolean | ||
data | array of object | Show child attributes
| |
pagination | object | Show child attributes
| |
message | string |