Skip to content

Update User Profile

PUT
/api/profile
curl --request PUT \
--url https://api.wink.travel/api/profile \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Wink-Version: 2.0' \
--data '{ "personal": { "address1": "123 Petchburi Road", "address2": "Ratchathewi District", "birthDate": "1985-06-15", "childQuantity": 2, "citizenship": "Thailand", "city": "Bangkok", "contactPerson": [ { "email": "[email protected]", "firstName": "Alexandra", "fullName": "Alexandra Beaumont", "lastName": "Beaumont", "phoneNumber": "+12125551212", "secondaryEmail": "[email protected]", "summary": "John Smith ([email protected] / +12125551212)" } ], "country": "TH", "gender": "FEMALE", "language": "en", "maritalStatus": "MARRIED", "petInfo": [ { "name": "Luna", "type": "Golden Retriever" } ], "postalCode": "10400", "preferredCurrency": "USD", "state": "Bangkok" }, "preferences": { "bedTypePref": "King bed", "cuisinePref": "Thai", "foodSrvcPref": "In-room dining", "guestType": "Business traveler", "hotelChainPref": "Mandarin Oriental", "mealPref": "Continental breakfast", "physChalFeaturePref": "Wheelchair accessible rooms", "propertyLocationPref": "Beachfront", "propertyTypePref": "Luxury Resort", "roomLocationPref": "High floor with city view", "smokingAllowed": false }, "share": true, "user": { "email": "[email protected]", "firstName": "Alexandra", "fullName": "Alexandra Beaumont", "lastName": "Beaumont", "phone": "+66212658866", "profilePictureUrl": "https://res.cloudinary.com/wink/image/upload/v1/user/alexandra-beaumont.jpg" } }'

Updates the authenticated user’s profile with the provided information. Persists personal details, preferences, and sharing settings. Returns the updated profile.

Wink-Version
string
default: 2.0.0
Allowed values: 2.0

User profile data to update

Media typeapplication/json

Request payload for creating or updating the authenticated user’s profile

object
personal

Detailed customer information for this profile

object
address1

Primary address line

string

Example

123 Petchburi Road
address2

Secondary address line

string

Example

Ratchathewi District
birthDate

Date of birth in ISO 8601 format

string format: date

Example

1985-06-15
childQuantity

Number of children

integer format: int32

Example

2
citizenship

Country of citizenship

string

Example

Thailand
city

City name

string

Example

Bangkok
contactPerson
Array<object>

Array of emergency contact information for the customer

object
email

Contact E-mail

string format: email
firstName

Contact first name

string

Example

Alexandra
fullName

First and last name

string

Example

Alexandra Beaumont
lastName

Contact last name

string

Example

Beaumont
phoneNumber

Contact phone number

string
/^\+?[1-9]\d{1,14}$/

Example

+12125551212
secondaryEmail

Contact secondary Email

string format: email
summary

Summary

string

Example

John Smith ([email protected] / +12125551212)

Example

{
"email": "[email protected]",
"firstName": "Alexandra",
"fullName": "Alexandra Beaumont",
"lastName": "Beaumont",
"phoneNumber": "+12125551212",
"secondaryEmail": "[email protected]",
"summary": "John Smith ([email protected] / +12125551212)"
}
country

Country code (ISO 3166-1 alpha-2)

string
/^[A-Z]{2}$/

Example

TH
gender

Identifies the gender of the customer.

string
Allowed values: MALE FEMALE OTHER

Example

FEMALE
language

Primary language (ISO 639-1 code)

string
/^[a-z]{2}(-[A-Z]{2})?$/

Example

en
maritalStatus

Marital status of the traveler

string
Allowed values: ANNULLED COHABITATING DIVORCED ENGAGED MARRIED SEPARATED SINGLE WIDOWED UNKNOWN

Example

MARRIED
petInfo
Array<object>

Array of customer’s pets

object
name
required

Pet name

string
>= 1 characters

Example

Luna
type
required

Pet type

string
>= 1 characters

Example

Golden Retriever

Example

{
"name": "Luna",
"type": "Golden Retriever"
}
physChallName
Array<string>
postalCode

Postal code

string

Example

10400
preferredCurrency

Preferred currency for monetary values (ISO 4217 code)

string
/^[A-Z]{3}$/

Example

USD
state

State or province

string

Example

Bangkok

Example

{
"address1": "123 Petchburi Road",
"address2": "Ratchathewi District",
"birthDate": "1985-06-15",
"childQuantity": 2,
"citizenship": "Thailand",
"city": "Bangkok",
"contactPerson": [
{
"email": "[email protected]",
"firstName": "Alexandra",
"fullName": "Alexandra Beaumont",
"lastName": "Beaumont",
"phoneNumber": "+12125551212",
"secondaryEmail": "[email protected]",
"summary": "John Smith ([email protected] / +12125551212)"
}
],
"country": "TH",
"gender": "FEMALE",
"language": "en",
"maritalStatus": "MARRIED",
"petInfo": [
{
"name": "Luna",
"type": "Golden Retriever"
}
],
"postalCode": "10400",
"preferredCurrency": "USD",
"state": "Bangkok"
}
preferences

Customer preferences

object
allergies

Known allergies

Array<string>
bedTypePref

Preferred hotel bed type

string

Example

King bed
beveragePref

Beverage preferences

Array<string>
businessSrvcPref

Preferred business services

Array<string>
cuisinePref

Cuisine preference

string

Example

Thai
foodPref

Food preferences

Array<string>
foodSrvcPref

Preferred food service facilities

string

Example

In-room dining
guestType

Guest type classification

string

Example

Business traveler
hotelChainPref

Preferred hotel chain name

string

Example

Mandarin Oriental
interestPref

Interest preferences

Array<string>
mealPref

Meal preference

string

Example

Continental breakfast
petsPref

Pet-friendly preferences

Array<string>
physChalFeaturePref

Preferred accessibility features

Array<string>

Example

Wheelchair accessible rooms
propertyAmenityPref

Preferred hotel property amenities

Array<string>
propertyLocationPref

Preferred hotel property locations

string

Example

Beachfront
propertyTypePref

Preferred hotel property types

string

Example

Luxury Resort
recreationSrvcPref

Preferred recreation services

Array<string>
roomAmenityPref

Preferred hotel room amenities

Array<string>
roomLocationPref

Preferred hotel room locations

string

Example

High floor with city view
securityFeaturePref

Preferred security features

Array<string>
smokingAllowed

Preference for smoking allowed rooms

boolean

Example

false

Example

{
"bedTypePref": "King bed",
"cuisinePref": "Thai",
"foodSrvcPref": "In-room dining",
"guestType": "Business traveler",
"hotelChainPref": "Mandarin Oriental",
"mealPref": "Continental breakfast",
"physChalFeaturePref": "Wheelchair accessible rooms",
"propertyLocationPref": "Beachfront",
"propertyTypePref": "Luxury Resort",
"roomLocationPref": "High floor with city view",
"smokingAllowed": false
}
share
required

Whether the user wants to share this profile with hotels

boolean

Example

true
user
required

User details

object
email

User email address

string format: email
firstName

User first name

string

Example

Alexandra
fullName

Full name

string

Example

Alexandra Beaumont
lastName

User last name

string

Example

Beaumont
phone

User phone number

string
/^\+?[1-9]\d{1,14}$/

Example

+66212658866
profilePictureUrl

Profile picture URL

string format: uri

Example

https://res.cloudinary.com/wink/image/upload/v1/user/alexandra-beaumont.jpg

Example

{
"email": "[email protected]",
"firstName": "Alexandra",
"fullName": "Alexandra Beaumont",
"lastName": "Beaumont",
"phone": "+66212658866",
"profilePictureUrl": "https://res.cloudinary.com/wink/image/upload/v1/user/alexandra-beaumont.jpg"
}

Example

{
"personal": {
"address1": "123 Petchburi Road",
"address2": "Ratchathewi District",
"birthDate": "1985-06-15",
"childQuantity": 2,
"citizenship": "Thailand",
"city": "Bangkok",
"contactPerson": [
{
"email": "[email protected]",
"firstName": "Alexandra",
"fullName": "Alexandra Beaumont",
"lastName": "Beaumont",
"phoneNumber": "+12125551212",
"secondaryEmail": "[email protected]",
"summary": "John Smith ([email protected] / +12125551212)"
}
],
"country": "TH",
"gender": "FEMALE",
"language": "en",
"maritalStatus": "MARRIED",
"petInfo": [
{
"name": "Luna",
"type": "Golden Retriever"
}
],
"postalCode": "10400",
"preferredCurrency": "USD",
"state": "Bangkok"
},
"preferences": {
"bedTypePref": "King bed",
"cuisinePref": "Thai",
"foodSrvcPref": "In-room dining",
"guestType": "Business traveler",
"hotelChainPref": "Mandarin Oriental",
"mealPref": "Continental breakfast",
"physChalFeaturePref": "Wheelchair accessible rooms",
"propertyLocationPref": "Beachfront",
"propertyTypePref": "Luxury Resort",
"roomLocationPref": "High floor with city view",
"smokingAllowed": false
},
"share": true,
"user": {
"email": "[email protected]",
"firstName": "Alexandra",
"fullName": "Alexandra Beaumont",
"lastName": "Beaumont",
"phone": "+66212658866",
"profilePictureUrl": "https://res.cloudinary.com/wink/image/upload/v1/user/alexandra-beaumont.jpg"
}
}

Profile updated successfully

Media typeapplication/json
object
createdDate

Datetime this record was first created

string | null format: date-time
id

Unique identifier for this record.

string format: uuid
lastUpdate

Datetime this record was last updated

string | null format: date-time
personal
required

Detailed customer information for this profile

object
address1

Primary address line

string
address2

Secondary address line

string
birthDate

Date of birth in ISO 8601 format

string format: date
childQuantity

Number of children

integer format: int32
citizenship

Country of citizenship

string
city

City name

string
contactPerson
Array<object>

Array of emergency contact information for the customer

object
email

Contact E-mail

string format: email
firstName

Contact first name

string
fullName

First and last name

string
lastName

Contact last name

string
phoneNumber

Contact phone number

string
/^\+?[1-9]\d{1,14}$/
secondaryEmail

Contact secondary Email

string format: email
summary

Summary

string
country

Country code (ISO 3166-1 alpha-2)

string
/^[A-Z]{2}$/
gender

Identifies the gender of the customer.

string
Allowed values: MALE FEMALE OTHER
language

Primary language (ISO 639-1 code)

string
/^[a-z]{2}(-[A-Z]{2})?$/
maritalStatus

Marital status of the traveler

string
Allowed values: ANNULLED COHABITATING DIVORCED ENGAGED MARRIED SEPARATED SINGLE WIDOWED UNKNOWN
petInfo
Array<object>

Array of customer’s pets

object
name
required

Pet name

string
>= 1 characters
type
required

Pet type

string
>= 1 characters
physChallName
Array<string>
postalCode

Postal code

string
preferredCurrency

Preferred currency for monetary values (ISO 4217 code)

string
/^[A-Z]{3}$/
state

State or province

string
preferences
required

Customer preferences

object
allergies

Known allergies

Array<string>
bedTypePref

Preferred hotel bed type

string
beveragePref

Beverage preferences

Array<string>
businessSrvcPref

Preferred business services

Array<string>
cuisinePref

Cuisine preference

string
foodPref

Food preferences

Array<string>
foodSrvcPref

Preferred food service facilities

string
guestType

Guest type classification

string
hotelChainPref

Preferred hotel chain name

string
interestPref

Interest preferences

Array<string>
mealPref

Meal preference

string
petsPref

Pet-friendly preferences

Array<string>
physChalFeaturePref

Preferred accessibility features

Array<string>
propertyAmenityPref

Preferred hotel property amenities

Array<string>
propertyLocationPref

Preferred hotel property locations

string
propertyTypePref

Preferred hotel property types

string
recreationSrvcPref

Preferred recreation services

Array<string>
roomAmenityPref

Preferred hotel room amenities

Array<string>
roomLocationPref

Preferred hotel room locations

string
securityFeaturePref

Preferred security features

Array<string>
smokingAllowed

Preference for smoking allowed rooms

boolean
profileIdentifier
required

Profile identifier

string format: uuid
>= 1 characters
share
required

Indicates whether the user wants to share this profile of themselves with hotel(s)

boolean
user
required

User details

object
email

User email address

string format: email
firstName

User first name

string
fullName

Full name

string
lastName

User last name

string
phone

User phone number

string
/^\+?[1-9]\d{1,14}$/
profilePictureUrl

Profile picture URL

string format: uri
userIdentifier
required

User identifier

string format: uuid
>= 1 characters
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64

Example

{
"createdDate": "2026-01-14T09:30:00",
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"lastUpdate": "2026-02-03T16:45:12",
"personal": {
"address1": "123 Petchburi Road",
"address2": "Ratchathewi District",
"birthDate": "1985-06-15",
"childQuantity": 2,
"citizenship": "Thailand",
"city": "Bangkok",
"contactPerson": [
{
"email": "[email protected]",
"firstName": "Alexandra",
"fullName": "Alexandra Beaumont",
"lastName": "Beaumont",
"phoneNumber": "+12125551212",
"secondaryEmail": "[email protected]",
"summary": "John Smith ([email protected] / +12125551212)"
}
],
"country": "TH",
"gender": "FEMALE",
"language": "en",
"maritalStatus": "MARRIED",
"petInfo": [
{
"name": "Luna",
"type": "Golden Retriever"
}
],
"postalCode": "10400",
"preferredCurrency": "USD",
"state": "Bangkok"
},
"preferences": {
"bedTypePref": "King bed",
"cuisinePref": "Thai",
"foodSrvcPref": "In-room dining",
"guestType": "Business traveler",
"hotelChainPref": "Mandarin Oriental",
"mealPref": "Continental breakfast",
"physChalFeaturePref": "Wheelchair accessible rooms",
"propertyLocationPref": "Beachfront",
"propertyTypePref": "Luxury Resort",
"roomLocationPref": "High floor with city view",
"smokingAllowed": false
},
"profileIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"share": true,
"user": {
"email": "[email protected]",
"firstName": "Alexandra",
"fullName": "Alexandra Beaumont",
"lastName": "Beaumont",
"phone": "+66212658866",
"profilePictureUrl": "https://res.cloudinary.com/wink/image/upload/v1/user/alexandra-beaumont.jpg"
},
"userIdentifier": "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84",
"version": 3
}

Bad Request — missing or invalid request parameter or body

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri

Example generated

{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Unauthorized — authentication is required or the session has expired

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri

Example generated

{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Forbidden — authenticated but lacking the required permission or scope

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri

Example generated

{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Not Found — the requested resource does not exist

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri

Example generated

{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Method Not Allowed — the HTTP verb is not supported on this endpoint

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri

Example generated

{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri

Example generated

{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Unsupported Media Type — use application/json

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri

Example generated

{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Internal Server Error — an unexpected failure occurred on the server

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri

Example generated

{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Service Unavailable — a downstream dependency is unreachable

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri

Example generated

{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}