Skip to main content
POST
/
users
/
create-user
Create User
curl --request POST \
  --url http://localhost:3000/api/users/create-user
{
  "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
}

Response

User created successfully

id
string
required

The user's unique identifier

email
string
required

The user's email address

displayName
string
required

The user's display name

firstName
string
required

The user's first name

lastName
string
required

The user's last name

pronouns
enum<string>
required

The user's preferred pronouns

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

URL to the user's profile photo

createdAt
number
required

Timestamp when the user was created

preferences
object
required

User preferences merged with defaults

otherPronouns
string

Custom pronouns when pronouns is 'Other'

phoneNumber
string | null

The user's phone number

userType
enum<string>

The type of user account

Available options:
artist,
client,
studio
howDidYouHearAboutUs
string

How the user discovered the platform

integrations
object

Connected third-party services (public info only)

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'

isEmailVerified
boolean

Whether the user's email is verified