Skip to main content
PUT
/
auth
/
update-profile
Update User Profile
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
  }
}

Body

application/json
id
string

The user's unique identifier

email
string

The user's email address

displayName
string

The user's display name

firstName
string

The user's first name

lastName
string

The user's last name

pronouns
enum<string>

The user's preferred pronouns

Available options:
Don't Specify,
He/Him,
She/Her,
They/Them,
Other
otherPronouns
string

Custom pronouns when pronouns is 'Other'

phoneNumber
string | null

The user's phone number

photoURL
string

URL to the user's profile photo

userType
enum<string>

The type of user account

Available options:
artist,
client,
studio
howDidYouHearAboutUs
string

How the user discovered the platform

preferences
object

User preferences

artistInfo
object

Artist-specific information if userType is 'artist'

clientInfo
object

Client-specific information if userType is 'client'

studioInfo
object

Studio-specific information if userType is 'studio'

isSetupFlow
boolean

Indicates if this update is part of the initial setup flow. Used to trigger additional setup actions like importing Instagram photos.

Response

Profile updated successfully

success
boolean
profile
object