Skip to content

Update Customization

PUT
/api/managing-entity/{managingEntityIdentifier}/studio/customization/{customizationIdentifier}
curl --request PUT \
--url https://api.wink.travel/api/managing-entity/company-1/studio/customization/customization-1 \
--header 'Content-Type: application/json' \
--header 'Wink-Version: 2.0' \
--data '{ "name": "", "appendToPageTitle": "", "googleAnalyticsMeasurementId": "", "googleTagManagerContainerId": "", "googleMapsAPIKey": "", "defaultCurrency": "USD", "defaultLanguage": "en", "defaultLifestyle": "LIFESTYLE_HEALTH_FITNESS", "logos": "", "hostedBookingEngineUrl": "https://ota.wink.travel", "selfHosted": false, "themeColors": "", "cardLayout": "HORIZONTAL", "layout": "INFORMATIONAL", "cardDesign": "DEFAULT", "numberOfAdvanceDays": "", "numberOfStayDays": "", "startDate": "", "endDate": "", "roomConfigurations": "", "useDays": false, "promotionalCodes": "", "sendBookingNotificationEmailsToProperty": true, "sendBookingNotificationEmailsToBooker": true, "sendBookingNotificationEmailsToChannelManager": true, "wcBookClickAction": "FORWARD_TO_IBE", "showUnavailableCard": false, "showRankings": false, "showSearch": false, "trackingPixels": "", "fontId": "UI_SANS_SERIF" }'

Update an existing customization.

managingEntityIdentifier
required
string
""

Update customization for this company

Example
company-1
customizationIdentifier
required
string
""

Update customization with this application

Example
customization-1
Wink-Version
string
default: 2.0.0
Allowed values: 2.0
Media type application/json
object
name
required

Engine configuration name

string
"" >= 1 characters
Example
Engine Configuration 1
appendToPageTitle

Whether to append text to the existing booking customization page title.

string
""
googleAnalyticsMeasurementId

If you want to track analytics with Google Analytics and GTM for your self-hosted booking customization, you need to import our GTM profile into your GTM container and link it with your Google Analytics account. More about that here

string
""
googleTagManagerContainerId

If you want to track analytics and you have a GTM Container ID, enter it here.

string
""
googleMapsAPIKey

If you want your users to see Google Maps in your hosted booking customization, go to Google Maps and create an API key for your site.

string
""
Example
google-maps-api-123
defaultCurrency

Control which currency your users see prices in initially.

string
default: USD
Example
USD
defaultLanguage

Control which language your users see text in initially.

string
default: en
Example
en
defaultLifestyle

Control which lifestyle contextx your users see initially.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
Example
LIFESTYLE_HEALTH_FITNESS
logos

Customize booking confirmation emails by adding a custom logo to your configuration.

Array<object>
""

Multimedia that contains less information than Multimedia object

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
Example
image-1
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
Example
cloudinary-image-1
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
Example
IMAGE
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
Example
CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
Example
10
angle

Media angle

string
""
Example
-90
width
required

Media width in pixels.

integer format: int32
"" >= 1
Example
2560
height
required

Media height in pixels.

integer format: int32
"" >= 1
Example
1600
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
Example
true
category

Supported OTA specification PIC code. See OTA geoname data

string
""
Example
1
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""
object
name
required

Use as title or short text description

string
""
Example
An example title
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
Example
LIFESTYLE_HEALTH_FITNESS
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string
""
Example
https://maps.google.com/maps/contrib/111628493169070103594
name
required

Name of contributor

string
"" >= 1 characters
Example
Samuel Adams
isLandscape

True if media width is greater or equal to height

boolean
Example
true
hostedBookingEngineUrl

If you are self-hosting our booking customization, let us know where it is hosted. Note: This url needs to be secured with SSL.

string
default: https://ota.wink.travel
Example
https://my.customtravelsite.com/book
selfHosted

Flag to indicate you are self-hosting our booking customization and not using our default booking customization url.

boolean
Example
true
themeColors

Choose how you want our web components to look and more closely match with your own site style.

object
primary

Primary color

string
default: #dc3545
Example
#dc3545
secondary

Secondary color

string
default: #6c757d
Example
#6c757d
success

Success color

string
default: #28a745
Example
#28a745
danger

Danger color

string
default: #dc3545
Example
#dc3545
warning

Warning color

string
default: #ffc107
Example
#ffc107
info

Info color

string
default: #17a2b8
Example
#17a2b8
light

Light color

string
default: #f8f9fa
Example
#f8f9fa
dark

Dark color

string
default: #343a40
Example
#343a40
body

Body color

string
default: #212529
Example
#212529
muted

Muted color

string
default: #6c757d
Example
#6c757d
white

White color

string
default: #ffffff
Example
#ffffff
cardLayout

Choose how you large you want our web component cards to be.

string
default: VERTICAL
Allowed values: HORIZONTAL VERTICAL
Example
VERTICAL
layout

Choose how you want our web component cards laid out.

string
default: INFORMATIONAL
Allowed values: INFORMATIONAL TRANSACTIONAL
Example
INFORMATIONAL
cardDesign

Choose the card design to use on our web component cards.

string
default: DEFAULT
Allowed values: DEFAULT
Example
DEFAULT
numberOfAdvanceDays

You can control the initial itinerary date used to retrieve travel inventory prices. You can do it in one of two ways: 1. Dynamically set the date by indicating how long and how many days in advance (this field), of today’s date, you want to display prices for. 2. Set a fixed date to display prices for. Option 1 is the most shared. Option 2 is for when you want to create a new customization and apply it to a specific event that occurs on a specific date. If you don’t use either of these options, the itinerary will default to today’s date with one night stay. ONLY populate this field if you want to control the itinerary date. Also, leave startDate and endDate empty.

integer format: int32
""
Example
10
numberOfStayDays

You can control the initial itinerary date used to retrieve travel inventory prices. You can do it in one of two ways: 1. Dynamically set the date by indicating how long (this field) and how many days in advance, of today’s date, you want to display prices for. 2. Set a fixed date to display prices for. Option 1 is the most shared. Option 2 is for when you want to create a new customization and apply it to a specific event that occurs on a specific date. If you don’t use either of these options, the itinerary will default to today’s date with one night stay. ONLY populate this field if you want to control the itinerary date. Also, leave startDate and endDate empty.

integer format: int32
""
Example
2
startDate

Set a fixed itinerary start date. ONLY populate this field if you want to fix the itinerary date. Also, leave numberOfAdvanceDays and numberOfStayDays empty.

string format: date
""
Example
2021-12-24
endDate

Set a fixed itinerary end date ONLY populate this field if you want to fix the itinerary date. Also, leave numberOfAdvanceDays and numberOfStayDays empty.

string format: date
""
Example
2021-12-31
roomConfigurations

Control how many adults / children will be staying and how many rooms. Defaults to: One room, two adults.

Array<object>
""

Room Configuration

object
adults
required

Number of adults

integer format: int32
default: 1 >= 1
Example
2
children

Children configurations

Array<object>

BookingItineraryRoomConfigurationChild configuration

object
quantity
required

Number of children

integer format: int32
"" >= 1
age
required

Age of children

integer format: int32
""
quantity

Number of identical rooms of this configuration being booked

integer format: int32
default: 1 >= 1
Example
1
useDays

If true, we use numberOfAdvanceDays / numberOfStayDays properties - false, we use startDate / endDate

boolean
Example
true
promotionalCodes

If you’ve received special promotional codes from suppliers to give to your audience, you can choose to bake these code directly into the price by entering them here.

Array<string>
""
Example
[
"promo-1"
]
sendBookingNotificationEmailsToProperty

An integrator can choose to disable outgoing emails to properties because they want to do that themselves.

boolean
default: true
Example
true
sendBookingNotificationEmailsToBooker

An integrator can choose to disable outgoing emails to users because they want to do that themselves.

boolean
default: true
Example
true
sendBookingNotificationEmailsToChannelManager

An integrator can choose to disable notifying the property’s channel manager. Note: This should ONLY be done for testing.

boolean
default: true
Example
true
wcBookClickAction

Action to complete once a user clicks on the CTA button on inventory.

string
""
Allowed values: FORWARD_TO_IBE IBE_MODAL
Example
IBE_MODAL
showUnavailableCard

Show unavailable inventory card when inventory not currently for sale. Otherwise, it displays a normal card but without the price.

boolean
showRankings

Whether to display rankings (lifestyle, eco score and reviews) on hotel landing page.

boolean
showSearch

This feature flag controls whether to let a user move away from the hotel landing page using search.

boolean
trackingPixels

Tracking pixels and web beacons for analytics and conversion tracking.

Array<object>
""
object
identifier
required

Unique identifier for this tracking pixel

string format: uuid
"" >= 1 characters
Example
pixel-1
name
required

User-friendly name for this tracking pixel

string
"" >= 1 characters
Example
Facebook Conversion Pixel
type
required

Type of tracking pixel delivery mechanism

string
""
Allowed values: JAVASCRIPT IMAGE
Example
JAVASCRIPT
provider
required

Tracking pixel provider

string
""
Allowed values: FACEBOOK GOOGLE_ADS GOOGLE_ANALYTICS TIKTOK LINKEDIN PINTEREST SNAPCHAT TWITTER SOJOURN CUSTOM
Example
FACEBOOK
consentCategory
required

Consent category for GDPR/CCPA compliance

string
""
Allowed values: STRICTLY_NECESSARY FUNCTIONAL ANALYTICS MARKETING
Example
MARKETING
enabled

Whether this tracking pixel is currently active

boolean
default: true
Example
true
pixelId

Provider-specific pixel ID (e.g., Facebook Pixel ID, Google Ads Conversion ID)

string
""
Example
1234567890
accessToken

Optional access token for providers that require authentication

string
""
customScript

Custom JavaScript code for CUSTOM provider type. Will be injected into the page.

string
""
customImageUrl

Custom image URL for IMAGE type pixels. Will be loaded as a 1x1 tracking pixel.

string
""
Example
https://example.com/pixel.gif
pageTypes

Page types where this pixel should fire. Empty list or containing ALL means fire on all pages.

Array<string>
""
Allowed values: ALL LANDING_PAGE SEARCH_RESULTS ROOM_SELECTION CHECKOUT CONFIRMATION
triggers

Event triggers that cause this pixel to fire, with optional custom parameters.

Array<object>
""
object
eventType
required

The event type that triggers this pixel

string
""
Allowed values: PAGE_VIEW SEARCH VIEW_CONTENT ADD_TO_CART INITIATE_CHECKOUT ADD_PAYMENT_INFO PURCHASE LEAD SIGN_UP
Example
PURCHASE
parameters

Custom key-value parameters to include with the event

Array<object>
""
object
key
required

Parameter name (e.g., ‘currency’, ‘value’, ‘content_id’)

string
"" >= 1 characters
Example
currency
value
required

Parameter value. Can be a static value or a placeholder like ‘{booking.total}’

string
"" >= 1 characters
Example
USD
fontId

Custom font for the booking engine. Null means use the system default.

string
""
Allowed values: UI_SANS_SERIF UI_SERIF PLAYFAIR_DISPLAY LIBRE_BASKERVILLE CORMORANT_GARAMOND JOSEFIN_SANS RALEWAY LORA SPACE_GROTESK DM_SERIF_DISPLAY OUTFIT CRIMSON_PRO CINZEL BODONI_MODA EB_GARAMOND ITALIANA FORUM TENOR_SANS GILDA_DISPLAY MARCELLUS

OK

Media type application/json
object
id

Document UUID

string
""
createdDate

Datetime this record was first created

string format: date-time
""
lastUpdate

Datetime this record was last updated

string format: date-time
""
version

Version property that shows how many times this document has been persisted. Document will not persist if the version property is less than current version property in the system. Result in an optimistic locking exception.

integer format: int64
""
name
required

Engine configuration name

string
"" >= 1 characters
appendToPageTitle

Whether to append text to the existing booking customization page title.

string
""
userIdentifier
required

Authenticated user identifier

string format: uuid
"" >= 1 characters
ownerIdentifier
required

Engine configuration record creator identifier

string format: uuid
"" >= 1 characters
ownerName
required

Name of company owner.

string
"" >= 1 characters
subType
required

Sales channel sub-type.

string
""
Allowed values: TRIP_PAY FACILITATOR DIRECT APPLICATION HOTEL TRAVELIKO CORPORATE TRAVEL_AGENT INFLUENCER BLOGGER DESTINATION CHANNEL_MANAGER PROPERTY_MANAGEMENT_SYSTEM CENTRAL_RESERVATION_SYSTEM GOOGLE_HOTEL_API MANAGEMENT_COMPANY CHAIN BRAND EVENT_ORGANIZER OTHER
primary
required

Indicates whether this configuration is primary. A primary configuration cannot be removed.

boolean
googleAnalyticsMeasurementId

If you want to track analytics with Google Analytics and GTM for your self-hosted booking customization, you need to import our GTM profile into your GTM container and link it with your Google Analytics account. More about that here

string
""
googleTagManagerContainerId

If you want to track analytics and you have a GTM Container ID, enter it here.

string
""
googleMapsAPIKey

If you want your users to see Google Maps in your hosted booking customization, go to Google Maps and create an API key for your site.

string
""
defaultCurrency

Control which currency your users see prices in initially.

string
default: USD
defaultLanguage

Control which language your users see text in initially.

string
default: en
defaultLifestyle

Control which lifestyle contextx your users see initially.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
logos

Customize booking confirmation emails by adding a custom logo to your configuration.

Array<object>
""

Multimedia that contains less information than Multimedia object

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
angle

Media angle

string
""
width
required

Media width in pixels.

integer format: int32
"" >= 1
height
required

Media height in pixels.

integer format: int32
"" >= 1
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
category

Supported OTA specification PIC code. See OTA geoname data

string
""
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""
object
name
required

Use as title or short text description

string
""
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string
""
name
required

Name of contributor

string
"" >= 1 characters
isLandscape

True if media width is greater or equal to height

boolean
hostedBookingEngineUrl

If you are self-hosting our booking customization, let us know where it is hosted. Note: This url needs to be secured with SSL.

string
default: https://ota.wink.travel
selfHosted

Flag to indicate you are self-hosting our booking customization and not using our default booking customization url.

boolean
themeColors

Choose how you want our web components to look and more closely match with your own site style.

object
primary

Primary color

string
default: #dc3545
secondary

Secondary color

string
default: #6c757d
success

Success color

string
default: #28a745
danger

Danger color

string
default: #dc3545
warning

Warning color

string
default: #ffc107
info

Info color

string
default: #17a2b8
light

Light color

string
default: #f8f9fa
dark

Dark color

string
default: #343a40
body

Body color

string
default: #212529
muted

Muted color

string
default: #6c757d
white

White color

string
default: #ffffff
cardLayout

Choose how you large you want our web component cards to be.

string
default: VERTICAL
Allowed values: HORIZONTAL VERTICAL
layout

Choose how you want our web component cards laid out.

string
default: INFORMATIONAL
Allowed values: INFORMATIONAL TRANSACTIONAL
cardDesign

Choose the card design to use on our web component cards.

string
default: DEFAULT
Allowed values: DEFAULT
numberOfAdvanceDays

You can control the initial itinerary date used to retrieve travel inventory prices. You can do it in one of two ways: 1. Dynamically set the date by indicating how long and how many days in advance (this field), of today’s date, you want to display prices for. 2. Set a fixed date to display prices for. Option 1 is the most shared. Option 2 is for when you want to create a new customization and apply it to a specific event that occurs on a specific date. If you don’t use either of these options, the itinerary will default to today’s date with one night stay. ONLY populate this field if you want to control the itinerary date. Also, leave startDate and endDate empty.

integer format: int32
""
numberOfStayDays

You can control the initial itinerary date used to retrieve travel inventory prices. You can do it in one of two ways: 1. Dynamically set the date by indicating how long (this field) and how many days in advance, of today’s date, you want to display prices for. 2. Set a fixed date to display prices for. Option 1 is the most shared. Option 2 is for when you want to create a new customization and apply it to a specific event that occurs on a specific date. If you don’t use either of these options, the itinerary will default to today’s date with one night stay. ONLY populate this field if you want to control the itinerary date. Also, leave startDate and endDate empty.

integer format: int32
""
startDate

Set a fixed itinerary start date. ONLY populate this field if you want to fix the itinerary date. Also, leave numberOfAdvanceDays and numberOfStayDays empty.

string format: date
""
endDate

Set a fixed itinerary end date ONLY populate this field if you want to fix the itinerary date. Also, leave numberOfAdvanceDays and numberOfStayDays empty.

string format: date
""
roomConfigurations

Control how many adults / children will be staying and how many rooms. Defaults to: One room, two adults.

Array<object>
""

Room Configuration

object
adults
required

Number of adults

integer format: int32
default: 1 >= 1
children

Children configurations

Array<object>

BookingItineraryRoomConfigurationChild configuration

object
quantity
required

Number of children

integer format: int32
"" >= 1
age
required

Age of children

integer format: int32
""
quantity

Number of identical rooms of this configuration being booked

integer format: int32
default: 1 >= 1
useDays

If true, we use numberOfAdvanceDays / numberOfStayDays properties - false, we use startDate / endDate

boolean
promotionalCodes

If you’ve received special promotional codes from suppliers to give to your audience, you can choose to bake these code directly into the price by entering them here.

Array<string>
""
sendBookingNotificationEmailsToProperty

An integrator can choose to disable outgoing emails to properties because they want to do that themselves.

boolean
default: true
sendBookingNotificationEmailsToBooker

An integrator can choose to disable outgoing emails to users because they want to do that themselves.

boolean
default: true
sendBookingNotificationEmailsToChannelManager

An integrator can choose to disable notifying the property’s channel manager. Note: This should ONLY be done for testing.

boolean
default: true
wcBookClickAction

Action to complete once a user clicks on the CTA button on inventory.

string
""
Allowed values: FORWARD_TO_IBE IBE_MODAL
city

Engine application location for reporting purposes.

object
geoNameId

GeoName identifier

string
""
type

GeoNameLightweight type

string
""
Allowed values: CITY ISLAND OTHER
name

Name of city

string
""
urlName

Url name

string
""
asciiName

Ascii name of city

string
""
location

Coordinate points of the city

object
x
number format: double
y
number format: double
type
string
coordinates
Array<number>
featureCode
string
countryCode
string
timezone

Timezone

string
""
country

Country

object
iso

ISO code

string
""
name

Country name

string
""
capital

Country capital

string
""
continent

Continent code

string
""
currencyCode

Currency code

string
""
currencyName

Currency name

string
""
geoNameId

Country GeoNames identifier

string
""
subCountry

Country sub division

object
name

Sub-country name

string
""
asciiName

Sub-country ascii name

string
""
geoNameId

Sub-country GeoNames identifier

string
""
subSubCountry

Country sub sub division

object
name
string
asciiName
string
geoNameId
string
showUnavailableCard

Show unavailable inventory card when inventory not currently for sale. Otherwise, it displays a normal card but without the price.

boolean
showRankings

Whether to display rankings (lifestyle, eco score and reviews) on hotel landing page.

boolean
showSearch

This feature flag controls whether to let a user move away from the hotel landing page using search.

boolean
trackingPixels

Tracking pixels and web beacons for analytics and conversion tracking.

Array<object>
""
object
identifier
required

Unique identifier for this tracking pixel

string format: uuid
"" >= 1 characters
name
required

User-friendly name for this tracking pixel

string
"" >= 1 characters
type
required

Type of tracking pixel delivery mechanism

string
""
Allowed values: JAVASCRIPT IMAGE
provider
required

Tracking pixel provider

string
""
Allowed values: FACEBOOK GOOGLE_ADS GOOGLE_ANALYTICS TIKTOK LINKEDIN PINTEREST SNAPCHAT TWITTER SOJOURN CUSTOM
consentCategory
required

Consent category for GDPR/CCPA compliance

string
""
Allowed values: STRICTLY_NECESSARY FUNCTIONAL ANALYTICS MARKETING
enabled

Whether this tracking pixel is currently active

boolean
default: true
pixelId

Provider-specific pixel ID (e.g., Facebook Pixel ID, Google Ads Conversion ID)

string
""
accessToken

Optional access token for providers that require authentication

string
""
customScript

Custom JavaScript code for CUSTOM provider type. Will be injected into the page.

string
""
customImageUrl

Custom image URL for IMAGE type pixels. Will be loaded as a 1x1 tracking pixel.

string
""
pageTypes

Page types where this pixel should fire. Empty list or containing ALL means fire on all pages.

Array<string>
""
Allowed values: ALL LANDING_PAGE SEARCH_RESULTS ROOM_SELECTION CHECKOUT CONFIRMATION
triggers

Event triggers that cause this pixel to fire, with optional custom parameters.

Array<object>
""
object
eventType
required

The event type that triggers this pixel

string
""
Allowed values: PAGE_VIEW SEARCH VIEW_CONTENT ADD_TO_CART INITIATE_CHECKOUT ADD_PAYMENT_INFO PURCHASE LEAD SIGN_UP
parameters

Custom key-value parameters to include with the event

Array<object>
""
object
key
required

Parameter name (e.g., ‘currency’, ‘value’, ‘content_id’)

string
"" >= 1 characters
value
required

Parameter value. Can be a static value or a placeholder like ‘{booking.total}’

string
"" >= 1 characters
fontId

Custom font for the booking engine. Null means use the system default.

string
""
Allowed values: UI_SANS_SERIF UI_SERIF PLAYFAIR_DISPLAY LIBRE_BASKERVILLE CORMORANT_GARAMOND JOSEFIN_SANS RALEWAY LORA SPACE_GROTESK DM_SERIF_DISPLAY OUTFIT CRIMSON_PRO CINZEL BODONI_MODA EB_GARAMOND ITALIANA FORUM TENOR_SANS GILDA_DISPLAY MARCELLUS
Example
{
"id": "",
"createdDate": "",
"lastUpdate": "",
"version": "",
"name": "",
"appendToPageTitle": "",
"userIdentifier": "",
"ownerIdentifier": "",
"ownerName": "",
"subType": "TRIP_PAY",
"primary": false,
"googleAnalyticsMeasurementId": "",
"googleTagManagerContainerId": "",
"googleMapsAPIKey": "",
"defaultCurrency": "USD",
"defaultLanguage": "en",
"defaultLifestyle": "LIFESTYLE_HEALTH_FITNESS",
"logos": "",
"hostedBookingEngineUrl": "https://ota.wink.travel",
"selfHosted": false,
"themeColors": "",
"cardLayout": "HORIZONTAL",
"layout": "INFORMATIONAL",
"cardDesign": "DEFAULT",
"numberOfAdvanceDays": "",
"numberOfStayDays": "",
"startDate": "",
"endDate": "",
"roomConfigurations": "",
"useDays": false,
"promotionalCodes": "",
"sendBookingNotificationEmailsToProperty": true,
"sendBookingNotificationEmailsToBooker": true,
"sendBookingNotificationEmailsToChannelManager": true,
"wcBookClickAction": "FORWARD_TO_IBE",
"city": "",
"showUnavailableCard": false,
"showRankings": false,
"showSearch": false,
"trackingPixels": "",
"fontId": "UI_SANS_SERIF"
}

Bad Request

object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
}
}

Unauthorized

Media type */*
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties

Forbidden

Media type */*
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties

Internal Server Error

object
Example generated
{}