Skip to main content

Create a member

POST /members

Requires the members:write permission.

Authorization

X-API-Key required

Request Body

FieldTypeRequiredDescription
titleMr, Ms, Mrs, Miss, Sir, Madam, Dr, RevNoOptional member title or honorific.
namestringYesMember full name. Required by the public API. firstName and lastName may also be provided and are stored separately.
firstNamestringNoOptional member first name stored separately from the full name.
lastNamestringNoOptional member last name stored separately from the full name.
emailstring (email)YesMember email address. Used for pass delivery emails when a pass is issued.
addressobjectNo
contactPreferencesobjectNo
memberIdstringNoUnique member identifier. Must not contain spaces.
memberSincestring (date-time)NoDate the member joined. Defaults to now when omitted.
typeMember, VisitorNoMember category. Defaults to Member when omitted.
statusactive, inactiveNoMember account status. Defaults to active when omitted.
locationstringNoMember location or branch.
phonestringNoMember phone number.
dateOfBirthstring (date)NoMember date of birth.
gendermale, female, other, prefer_not_to_sayNoMember gender.
notesstringNoInternal member notes.
flaggedbooleanNoWhether the member is flagged for staff attention.
flagNotestringNoOptional note shown when the member is flagged.
customFieldsobjectNoOrganisation-defined custom field values keyed by custom field key. Use customFields only for fields configured by the organisation; use first-party fields such as phone, dateOfBirth, gender, and notes at the top level.
issuePassbooleanNoSet to true to issue a pass immediately after creating the member.
passTemplateIdstringNoRequired when issuePass is true. Use the id from the List pass templates endpoint.
expiryDatestring (date-time)NoOptional pass expiry date used when issuePass is true.

Request Examples

curl -X POST "https://api.remypass.com/api/v1/public/members" \
  -H "Accept: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Mr",
  "name": "John Doe",
  "firstName": "John",
  "lastName": "Doe",
  "email": "john@example.com",
  "address": {
    "addressLine1": "23 Gastons Road",
    "addressLine2": "",
    "city": "London",
    "region": "Greater London",
    "postalCode": "SW1A 1AA",
    "country": "United Kingdom"
  },
  "contactPreferences": {
    "email": true,
    "post": true,
    "phone": true
  },
  "memberId": "string",
  "memberSince": "2026-01-01T12:00:00.000Z",
  "type": "Member",
  "status": "active",
  "location": "Main Street",
  "phone": "+447700900123",
  "dateOfBirth": "1990-04-20",
  "gender": "male",
  "notes": "Prefers email contact",
  "flagged": true,
  "flagNote": "Check eligibility before issuing renewal",
  "customFields": {
    "membershipLevel": "Gold",
    "favoriteLocation": "Main Street",
    "newsletterOptIn": true
  },
  "issuePass": true,
  "passTemplateId": "507f1f77bcf86cd799439011",
  "expiryDate": "2026-01-01T12:00:00.000Z"
}'

Use Case Examples

Create a new member

curl -X POST https://api.remypass.com/api/v1/public/members \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Dr. Sarah Johnson",
"firstName": "Sarah",
"lastName": "Johnson",
"email": "sarah.johnson@example.com",
"title": "Dr",
"memberId": "MEM001",
"memberSince": "2024-01-15T00:00:00.000Z",
"phone": "+447700900123",
"dateOfBirth": "1990-04-20",
"gender": "female",
"notes": "Prefers email contact",
"type": "Member",
"status": "active",
"customFields": {
"department": "Engineering",
"membershipLevel": "Premium"
}
}'

Create member with immediate pass issuance

curl -X POST https://api.remypass.com/api/v1/public/members \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Ms",
"name": "Emily Chen",
"email": "emily.chen@example.com",
"memberId": "MEM002",
"issuePass": true,
"passTemplateId": "507f1f77bcf86cd799439012",
"expiryDate": "2024-12-31T23:59:59.000Z"
}'

Responses

StatusDescription
201Member created.
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.
500Server error.

Response Fields

FieldTypeAttributes
successboolean
messagestring
dataobject
Show child attributes
  • _id: string
  • title: Mr, Ms, Mrs, Miss, Sir, Madam, Dr, Rev
  • name: string
  • firstName: string
  • lastName: string
  • email: string (email)
  • address: object
    Show child attributes
    • addressLine1: string
    • addressLine2: string
    • city: string
    • region: string
    • postalCode: string
    • country: string
  • contactPreferences: object
    Show child attributes
    • email: boolean
    • post: boolean
    • phone: boolean
  • memberId: string
  • memberSince: string (date-time)
  • type: Member, Visitor
  • status: active, inactive
  • location: string
  • phone: string
  • dateOfBirth: string (date)
  • gender: male, female, other, prefer_not_to_say
  • notes: string
  • flagged: boolean
  • flagNote: string
  • customFields: object
  • passes: integer
  • createdAt: string (date-time)
  • updatedAt: string (date-time)