Updates the authenticated user’s profile information
curl --request PUT \
--url http://localhost:3000/api/auth/update-profile \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"id": "<string>",
"email": "<string>",
"displayName": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"pronouns": "Don't Specify",
"otherPronouns": "<string>",
"phoneNumber": "<string>",
"photoURL": "<string>",
"userType": "artist",
"howDidYouHearAboutUs": "<string>",
"preferences": {
"notifications": {
"bookings": {
"newRequests": true,
"bookingUpdates": true,
"payments": true,
"conversations": true
},
"marketing": true
},
"integrations": {
"stripe": {
"isEnabled": true,
"accountId": "<string>",
"isChargesEnabled": true,
"isPayoutsEnabled": true
}
}
},
"artistInfo": {
"username": "<string>",
"workLocations": [
{
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"latitude": 123,
"longitude": 123
}
],
"tattooStyles": [
"<string>"
],
"bio": "<string>",
"links": [
{
"url": "<string>",
"order": 123
}
],
"stripeAccountId": "<string>",
"useCustomBookingFlow": true,
"customBookingType": "<string>",
"customBookingUrl": "<string>",
"isVerified": true,
"bookingFaqs": [
{
"type": "Cancellation/Rescheduling Policy",
"description": "<string>",
"title": "<string>"
}
],
"displayDailyAvailability": true
},
"clientInfo": {
"preferredStyles": [
"<string>"
],
"homeLocation": {
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"latitude": 123,
"longitude": 123
}
},
"studioInfo": {
"studioName": "<string>",
"studioLocation": {
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"latitude": 123,
"longitude": 123
},
"studioStyles": [
"<string>"
],
"email": "<string>",
"phoneNumber": "<string>",
"artistEmailInvites": [
"<string>"
]
},
"isSetupFlow": true
}
EOF{
"success": true,
"profile": {
"id": "<string>",
"email": "<string>",
"displayName": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"pronouns": "Don't Specify",
"photoURL": "<string>",
"createdAt": 123,
"preferences": {
"notifications": {
"bookings": {
"newRequests": true,
"bookingUpdates": true,
"payments": true,
"conversations": true
},
"marketing": true
},
"integrations": {
"stripe": {
"isEnabled": true,
"accountId": "<string>",
"isChargesEnabled": true,
"isPayoutsEnabled": true
}
}
},
"otherPronouns": "<string>",
"phoneNumber": "<string>",
"userType": "artist",
"howDidYouHearAboutUs": "<string>",
"integrations": {
"instagram": {
"userId": "<string>",
"username": "<string>",
"connectedAt": 123
}
},
"artistInfo": {
"username": "<string>",
"workLocations": [
{
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"latitude": 123,
"longitude": 123
}
],
"tattooStyles": [
"<string>"
],
"bio": "<string>",
"links": [
{
"url": "<string>",
"order": 123
}
],
"stripeAccountId": "<string>",
"useCustomBookingFlow": true,
"customBookingType": "<string>",
"customBookingUrl": "<string>",
"isVerified": true,
"bookingFaqs": [
{
"type": "Cancellation/Rescheduling Policy",
"description": "<string>",
"title": "<string>"
}
],
"displayDailyAvailability": true
},
"clientInfo": {
"preferredStyles": [
"<string>"
],
"homeLocation": {
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"latitude": 123,
"longitude": 123
}
},
"studioInfo": {
"studioName": "<string>",
"studioLocation": {
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"latitude": 123,
"longitude": 123
},
"studioStyles": [
"<string>"
],
"email": "<string>",
"phoneNumber": "<string>",
"artistEmailInvites": [
"<string>"
]
},
"isEmailVerified": true
}
}The user's unique identifier
The user's email address
The user's display name
The user's first name
The user's last name
The user's preferred pronouns
Don't Specify, He/Him, She/Her, They/Them, Other Custom pronouns when pronouns is 'Other'
The user's phone number
URL to the user's profile photo
The type of user account
artist, client, studio How the user discovered the platform
User preferences
Show child attributes
Notification preferences
Show child attributes
Show child attributes
Receive notifications for new booking requests
Receive notifications for booking status updates
Receive notifications for payment events
Receive notifications for new messages
Receive marketing communications
Integration preferences
Show child attributes
Stripe integration preferences
Show child attributes
Whether Stripe integration is enabled
Stripe Connect account ID
Whether the account can accept charges
Whether the account can receive payouts
Artist-specific information if userType is 'artist'
Show child attributes
Artist's unique username for profile URL
List of locations where the artist works
Show child attributes
Street address
City name
State/province
Country
Location latitude
Location longitude
List of tattoo styles the artist specializes in
Artist's biography
Artist's Stripe Connect account ID
Whether to use custom booking flow
Type of custom booking (CustomURL | Email | Instagram)
URL for custom booking flow
Whether the artist is verified by TRAZA
List of booking FAQs for clients
Show child attributes
Whether to show hourly indicators on calendar
Client-specific information if userType is 'client'
Show child attributes
List of tattoo styles the client is interested in
Client's location for map defaults
Show child attributes
Street address
City name
State/province
Country
Location latitude
Location longitude
Studio-specific information if userType is 'studio'
Show child attributes
Name of the studio
Location of the studio
Show child attributes
Street address
City name
State/province
Country
Location latitude
Location longitude
List of tattoo styles offered at the studio
Studio contact email
Studio contact phone number
List of email addresses for artist invites
Indicates if this update is part of the initial setup flow. Used to trigger additional setup actions like importing Instagram photos.
Profile updated successfully
Show child attributes
The user's unique identifier
The user's email address
The user's display name
The user's first name
The user's last name
The user's preferred pronouns
Don't Specify, He/Him, She/Her, They/Them, Other URL to the user's profile photo
Timestamp when the user was created
User preferences merged with defaults
Show child attributes
Notification preferences
Show child attributes
Show child attributes
Receive notifications for new booking requests
Receive notifications for booking status updates
Receive notifications for payment events
Receive notifications for new messages
Receive marketing communications
Integration preferences
Show child attributes
Stripe integration preferences
Show child attributes
Whether Stripe integration is enabled
Stripe Connect account ID
Whether the account can accept charges
Whether the account can receive payouts
Custom pronouns when pronouns is 'Other'
The user's phone number
The type of user account
artist, client, studio How the user discovered the platform
Connected third-party services (public info only)
Artist-specific information if userType is 'artist'
Show child attributes
Artist's unique username for profile URL
List of locations where the artist works
Show child attributes
Street address
City name
State/province
Country
Location latitude
Location longitude
List of tattoo styles the artist specializes in
Artist's biography
Artist's Stripe Connect account ID
Whether to use custom booking flow
Type of custom booking (CustomURL | Email | Instagram)
URL for custom booking flow
Whether the artist is verified by TRAZA
List of booking FAQs for clients
Show child attributes
Type of FAQ
Cancellation/Rescheduling Policy, Pricing Guide, Deposit Policy, Custom FAQ content
Custom title for FAQ (required for Custom type)
Whether to show hourly indicators on calendar
Client-specific information if userType is 'client'
Show child attributes
List of tattoo styles the client is interested in
Client's location for map defaults
Show child attributes
Street address
City name
State/province
Country
Location latitude
Location longitude
Studio-specific information if userType is 'studio'
Show child attributes
Name of the studio
Location of the studio
Show child attributes
Street address
City name
State/province
Country
Location latitude
Location longitude
List of tattoo styles offered at the studio
Studio contact email
Studio contact phone number
List of email addresses for artist invites
Whether the user's email is verified
curl --request PUT \
--url http://localhost:3000/api/auth/update-profile \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"id": "<string>",
"email": "<string>",
"displayName": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"pronouns": "Don't Specify",
"otherPronouns": "<string>",
"phoneNumber": "<string>",
"photoURL": "<string>",
"userType": "artist",
"howDidYouHearAboutUs": "<string>",
"preferences": {
"notifications": {
"bookings": {
"newRequests": true,
"bookingUpdates": true,
"payments": true,
"conversations": true
},
"marketing": true
},
"integrations": {
"stripe": {
"isEnabled": true,
"accountId": "<string>",
"isChargesEnabled": true,
"isPayoutsEnabled": true
}
}
},
"artistInfo": {
"username": "<string>",
"workLocations": [
{
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"latitude": 123,
"longitude": 123
}
],
"tattooStyles": [
"<string>"
],
"bio": "<string>",
"links": [
{
"url": "<string>",
"order": 123
}
],
"stripeAccountId": "<string>",
"useCustomBookingFlow": true,
"customBookingType": "<string>",
"customBookingUrl": "<string>",
"isVerified": true,
"bookingFaqs": [
{
"type": "Cancellation/Rescheduling Policy",
"description": "<string>",
"title": "<string>"
}
],
"displayDailyAvailability": true
},
"clientInfo": {
"preferredStyles": [
"<string>"
],
"homeLocation": {
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"latitude": 123,
"longitude": 123
}
},
"studioInfo": {
"studioName": "<string>",
"studioLocation": {
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"latitude": 123,
"longitude": 123
},
"studioStyles": [
"<string>"
],
"email": "<string>",
"phoneNumber": "<string>",
"artistEmailInvites": [
"<string>"
]
},
"isSetupFlow": true
}
EOF{
"success": true,
"profile": {
"id": "<string>",
"email": "<string>",
"displayName": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"pronouns": "Don't Specify",
"photoURL": "<string>",
"createdAt": 123,
"preferences": {
"notifications": {
"bookings": {
"newRequests": true,
"bookingUpdates": true,
"payments": true,
"conversations": true
},
"marketing": true
},
"integrations": {
"stripe": {
"isEnabled": true,
"accountId": "<string>",
"isChargesEnabled": true,
"isPayoutsEnabled": true
}
}
},
"otherPronouns": "<string>",
"phoneNumber": "<string>",
"userType": "artist",
"howDidYouHearAboutUs": "<string>",
"integrations": {
"instagram": {
"userId": "<string>",
"username": "<string>",
"connectedAt": 123
}
},
"artistInfo": {
"username": "<string>",
"workLocations": [
{
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"latitude": 123,
"longitude": 123
}
],
"tattooStyles": [
"<string>"
],
"bio": "<string>",
"links": [
{
"url": "<string>",
"order": 123
}
],
"stripeAccountId": "<string>",
"useCustomBookingFlow": true,
"customBookingType": "<string>",
"customBookingUrl": "<string>",
"isVerified": true,
"bookingFaqs": [
{
"type": "Cancellation/Rescheduling Policy",
"description": "<string>",
"title": "<string>"
}
],
"displayDailyAvailability": true
},
"clientInfo": {
"preferredStyles": [
"<string>"
],
"homeLocation": {
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"latitude": 123,
"longitude": 123
}
},
"studioInfo": {
"studioName": "<string>",
"studioLocation": {
"address": "<string>",
"city": "<string>",
"state": "<string>",
"country": "<string>",
"latitude": 123,
"longitude": 123
},
"studioStyles": [
"<string>"
],
"email": "<string>",
"phoneNumber": "<string>",
"artistEmailInvites": [
"<string>"
]
},
"isEmailVerified": true
}
}