Members APIMember Data
Update Member
Update member display information
PATCH
/members/meOverview
Updates core member information including names, display name, avatar, and onboarding status.
This endpoint is for updating member-level data. To update profile preferences (travel, dining, etc.), use the Update Profile endpoint.
Authentication
Requires a valid Clerk JWT token in the Authorization header.
Request Body
All fields are optional. Only include fields you want to update.
firstNamebodystringMember's first name
lastNamebodystringMember's last name
displayNamebodystringCustom display name (if not set, computed from first/last name or email)
avatarUrlbodystringAvatar image URL
onboardingCompletedbodybooleanMark onboarding as completed (sets onboardingCompletedAt timestamp)
dateOfBirthbodystringDate of birth in YYYY-MM-DD format
Note: This updates the profile dateOfBirth field
Request
curl -X PATCH "http://localhost:3000/v1/members/me" \
-H "Authorization: Bearer YOUR_CLERK_JWT" \
-H "Content-Type: application/json" \
-d '{
"firstName": "John",
"lastName": "Doe",
"displayName": "John D.",
"onboardingCompleted": true
}'Response
Returns the complete updated member data, same as GET /members/me.
Response
{
"member": {
"externalId": "user_2abc123def456",
"memberCode": "JRN123456",
"legacyJourneyUserId": null,
"displayName": "John D.",
"firstName": "John",
"lastName": "Doe",
"avatarUrl": "https://example.com/avatar.jpg",
"status": "active",
"enrolledAt": "2023-01-15T10:30:00Z",
"memberSince": "January 2023",
"onboardingCompletedAt": "2024-04-20T12:00:00Z",
"createdAt": "2023-01-15T10:30:00Z",
"updatedAt": "2024-04-20T12:00:00Z"
},
"profile": {
"dateOfBirth": "1990-01-15",
"gender": "male",
"nationality": "United States",
"timezone": "America/Los_Angeles",
"language": "en",
"bio": "Frequent traveler and points enthusiast",
"socialLinks": {
"linkedin": "https://linkedin.com/in/johndoe",
"instagram": "@johndoe"
},
"travelPreferences": {
"preferredAirlines": ["United", "Delta"],
"frequentFlyerPrograms": [
{
"airline": "United",
"number": "UA123456789"
}
],
"seatPreference": "aisle",
"mealPreference": "vegetarian",
"travelClass": "business",
"travelCompanions": ["Jane Doe"],
"passportCountry": "US"
}
},
"contacts": [
{
"type": "email",
"value": "john.doe@example.com",
"isPrimary": true,
"verifiedAt": "2023-01-15T10:30:00Z"
},
{
"type": "phone",
"value": "+15551234567",
"isPrimary": true,
"verifiedAt": "2023-01-15T10:35:00Z"
}
],
"wallet": {
"spendablePoints": 25000,
"validBalance": 23000,
"creditBalance": 2000,
"tierEligiblePoints": 15000
},
"loyalty": {
"tierLevel": 2,
"tierName": "Explorer",
"lifetimePoints": 75000,
"pointsToNextTier": 25000,
"nextTierName": "Voyager",
"earnYear": 2023,
"currentYear": 2024,
"currentYearPoints": 15000,
"statusValidThrough": "December 31, 2025",
"pointsToMaintainTier": 5000,
"tiers": [
{
"tierLevel": 1,
"tierName": "Traveler",
"minPoints": 0
},
{
"tierLevel": 2,
"tierName": "Explorer",
"minPoints": 20000
},
{
"tierLevel": 3,
"tierName": "Voyager",
"minPoints": 50000
},
{
"tierLevel": 4,
"tierName": "Pioneer",
"minPoints": 100000
}
]
}
}Notes
- The
onboardingCompletedflag can only be set totrue, not back tofalse - Setting
onboardingCompletedtotruesets theonboardingCompletedAttimestamp if not already set - The
displayNameis shown in the UI; if not set, it's computed from first/last name or email - The
dateOfBirthfield updates the profile's date of birth
Related Endpoints
- Get Member - Get complete member data
- Update Profile - Update extended profile preferences