Skip to content

Retrieve User Profile

GET
/api/profile
curl --request GET \
--url https://api.wink.travel/api/profile \
--header 'Authorization: Bearer <token>' \
--header 'Wink-Version: 2.0'

Retrieves the authenticated user’s complete profile including personal details, preferences, and contact information. Returns HTTP 404 if no profile exists.

Wink-Version
string
default: 2.0.0
Allowed values: 2.0

Profile retrieved 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
Examplegenerated
{
"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
Examplegenerated
{
"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
Examplegenerated
{
"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
Examplegenerated
{
"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
Examplegenerated
{
"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
Examplegenerated
{
"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
Examplegenerated
{
"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
Examplegenerated
{
"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
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}