Skip to main content
Create a new booking
curl --request POST \
  --url http://localhost:3000/api/bookings/create-booking \
  --header 'Content-Type: application/json' \
  --data '
{
  "userId": "<string>",
  "artistUserId": "<string>",
  "requestType": "Flash",
  "preferredLocationIds": [
    "<string>"
  ],
  "isCoverUp": true,
  "tattooPlacement": [
    "<string>"
  ],
  "selectedDates": [
    "2023-12-25"
  ],
  "desiredTimeOfDay": "Morning",
  "isOver18": true,
  "isPolicyAccepted": true,
  "description": "<string>",
  "color": "<string>",
  "length": "<string>",
  "width": "<string>",
  "otherTattooPlacement": "<string>",
  "tattooStyle": [
    "<string>"
  ],
  "images": [
    "<string>"
  ],
  "links": [
    "<string>"
  ],
  "additionalDateComments": "<string>",
  "medicalConditions": "<string>",
  "flashIds": [
    "<string>"
  ]
}
'
{
  "success": true
}

Body

application/json

Request to create a booking. Can be either Flash or Custom type. Required fields vary by requestType.

userId
string
required

ID of the user making the booking

artistUserId
string
required

ID of the artist being booked

requestType
enum<string>
required

Type of booking request. Determines which additional fields are required.

Available options:
Flash,
Custom
preferredLocationIds
string[]
required

IDs of preferred locations for the booking

Minimum array length: 1
isCoverUp
boolean
required

Whether this is a cover-up tattoo

tattooPlacement
string[]
required

Selected placement areas for the tattoo

selectedDates
string<date>[]
required

Preferred dates for the tattoo session

desiredTimeOfDay
enum<string>
required

Preferred time of day for the session

Available options:
Morning,
Afternoon,
Either
isOver18
boolean
required

Confirmation that the client is over 18 (must be true)

isPolicyAccepted
boolean
required

Confirmation that the client accepts the policy (must be true)

description
string

Description of the tattoo request. Optional for Flash bookings (max 1000 chars), required for Custom bookings (min 30 chars).

Maximum string length: 1000
color
string

Color preference for the tattoo. Required for Custom bookings only.

length
string

Length of the tattoo in appropriate units (optional, must be a positive number if provided). For Custom bookings only.

width
string

Width of the tattoo in appropriate units (optional, must be a positive number if provided). For Custom bookings only.

otherTattooPlacement
string

Custom placement description if not in standard options

tattooStyle
string[]

Selected tattoo styles (optional, for Custom bookings only)

images
string[]

Array of image URLs for reference (optional)

Reference links for the tattoo design (optional)

additionalDateComments
string

Additional comments about date preferences

medicalConditions
string

Any relevant medical conditions

flashIds
string[]

Array of flash listing IDs (for Flash booking type only, can be empty array)

Response

Booking created successfully

success
boolean
required

Whether the operation was successful