Authentication
Update User Profile
Updates the authenticated user’s profile information
Update User Profile
curl --request PUT \
--url http://localhost:3000/api/auth/update-profile \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"email": "<string>",
"displayName": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"otherPronouns": "<string>",
"phoneNumber": "<string>",
"photoURL": "<string>",
"howDidYouHearAboutUs": "<string>",
"isSetupFlow": true
}
'import requests
url = "http://localhost:3000/api/auth/update-profile"
payload = {
"id": "<string>",
"email": "<string>",
"displayName": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"otherPronouns": "<string>",
"phoneNumber": "<string>",
"photoURL": "<string>",
"howDidYouHearAboutUs": "<string>",
"isSetupFlow": True
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: '<string>',
email: '<string>',
displayName: '<string>',
firstName: '<string>',
lastName: '<string>',
otherPronouns: '<string>',
phoneNumber: '<string>',
photoURL: '<string>',
howDidYouHearAboutUs: '<string>',
isSetupFlow: true
})
};
fetch('http://localhost:3000/api/auth/update-profile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://localhost:3000/api/auth/update-profile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'id' => '<string>',
'email' => '<string>',
'displayName' => '<string>',
'firstName' => '<string>',
'lastName' => '<string>',
'otherPronouns' => '<string>',
'phoneNumber' => '<string>',
'photoURL' => '<string>',
'howDidYouHearAboutUs' => '<string>',
'isSetupFlow' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:3000/api/auth/update-profile"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"email\": \"<string>\",\n \"displayName\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"otherPronouns\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"photoURL\": \"<string>\",\n \"howDidYouHearAboutUs\": \"<string>\",\n \"isSetupFlow\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("http://localhost:3000/api/auth/update-profile")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"email\": \"<string>\",\n \"displayName\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"otherPronouns\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"photoURL\": \"<string>\",\n \"howDidYouHearAboutUs\": \"<string>\",\n \"isSetupFlow\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/auth/update-profile")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"<string>\",\n \"email\": \"<string>\",\n \"displayName\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"otherPronouns\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"photoURL\": \"<string>\",\n \"howDidYouHearAboutUs\": \"<string>\",\n \"isSetupFlow\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"profile": {
"id": "<string>",
"email": "<string>",
"displayName": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"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>",
"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
}
],
"useCustomBookingFlow": true,
"customBookingType": "<string>",
"customBookingUrl": "<string>",
"isVerified": true,
"bookingFaqs": [
{
"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
}
}{
"message": "<string>"
}Body
application/json
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
Available options:
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
Available options:
artist, client, studio How the user discovered the platform
User preferences
Show child attributes
Show child attributes
Artist-specific information if userType is 'artist'
Show child attributes
Show child attributes
Client-specific information if userType is 'client'
Show child attributes
Show child attributes
Studio-specific information if userType is 'studio'
Show child attributes
Show child attributes
Indicates if this update is part of the initial setup flow. Used to trigger additional setup actions like importing Instagram photos.
Previous
Update User EmailUpdates the user's email address in Firebase Auth, particularly for Instagram users with temporary emails
Next
⌘I
Update User Profile
curl --request PUT \
--url http://localhost:3000/api/auth/update-profile \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"email": "<string>",
"displayName": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"otherPronouns": "<string>",
"phoneNumber": "<string>",
"photoURL": "<string>",
"howDidYouHearAboutUs": "<string>",
"isSetupFlow": true
}
'import requests
url = "http://localhost:3000/api/auth/update-profile"
payload = {
"id": "<string>",
"email": "<string>",
"displayName": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"otherPronouns": "<string>",
"phoneNumber": "<string>",
"photoURL": "<string>",
"howDidYouHearAboutUs": "<string>",
"isSetupFlow": True
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: '<string>',
email: '<string>',
displayName: '<string>',
firstName: '<string>',
lastName: '<string>',
otherPronouns: '<string>',
phoneNumber: '<string>',
photoURL: '<string>',
howDidYouHearAboutUs: '<string>',
isSetupFlow: true
})
};
fetch('http://localhost:3000/api/auth/update-profile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://localhost:3000/api/auth/update-profile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'id' => '<string>',
'email' => '<string>',
'displayName' => '<string>',
'firstName' => '<string>',
'lastName' => '<string>',
'otherPronouns' => '<string>',
'phoneNumber' => '<string>',
'photoURL' => '<string>',
'howDidYouHearAboutUs' => '<string>',
'isSetupFlow' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:3000/api/auth/update-profile"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"email\": \"<string>\",\n \"displayName\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"otherPronouns\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"photoURL\": \"<string>\",\n \"howDidYouHearAboutUs\": \"<string>\",\n \"isSetupFlow\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("http://localhost:3000/api/auth/update-profile")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"email\": \"<string>\",\n \"displayName\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"otherPronouns\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"photoURL\": \"<string>\",\n \"howDidYouHearAboutUs\": \"<string>\",\n \"isSetupFlow\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/auth/update-profile")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"<string>\",\n \"email\": \"<string>\",\n \"displayName\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"otherPronouns\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"photoURL\": \"<string>\",\n \"howDidYouHearAboutUs\": \"<string>\",\n \"isSetupFlow\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"profile": {
"id": "<string>",
"email": "<string>",
"displayName": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"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>",
"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
}
],
"useCustomBookingFlow": true,
"customBookingType": "<string>",
"customBookingUrl": "<string>",
"isVerified": true,
"bookingFaqs": [
{
"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
}
}{
"message": "<string>"
}