Skip to content

Create

POST
/api/managing-entity/{managingEntityIdentifier}/studio/static-list
curl --request POST \
--url https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/studio/static-list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Wink-Version: 2.0' \
--data '{ "channelInventoryIdentifiers": [ "8b1d6e0f-3a7c-4d2b-9e5a-1c8f0b4d6e29" ], "name": "Top 3 Hotels in Chiang Mai" }'

Create a new list and seed it with the inventory item supplied in the request.

managingEntityIdentifier
required
string

Create curated list owned by this owner identifier.

Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
Wink-Version
string
default: 2.0.0
Allowed values: 2.0

New list metadata together with the first inventory item to seed the list with

Media typeapplication/json

Request to create a new curated list and optionally seed it with inventory items.

object
channelInventoryIdentifiers

Optionally add channel inventory identifiers to the list upon creation.

Array<string>
name
required

Name of curated list

string
>= 1 characters
Example
Top 3 Hotels in Chiang Mai
Example
{
"channelInventoryIdentifiers": [
"8b1d6e0f-3a7c-4d2b-9e5a-1c8f0b4d6e29"
],
"name": "Top 3 Hotels in Chiang Mai"
}

Newly created curated list with its seeded inventory items

Media typeapplication/json

Contains both the curated list and all its items.

object
items

Travel inventory items contained in list

Array<object>

A single travel inventory entry within a curated list, linking a sales channel inventory item to its parent list.

object
createdDate

Datetime this record was first created

string | null format: date-time
id

Unique identifier for this record.

string format: uuid
item
required

Channel inventory

object
commissionable
required

Whether this is commissionable or not

boolean
enabled
required

Whether this inventory is enabled or not

boolean
default: true
identifier
required

Channel Inventory identifier

string format: uuid
image
required

Main image of inventory

object
angle

Media angle

string
attribution

Whether image has attribution properties

Array<object>
object
name
required

Name of contributor

string
>= 1 characters
url

URL to contributor

string format: uri
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>

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
description
required

Longer text description

string
>= 1 characters <= 2147483647 characters
hashMismatch
boolean
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
md5ContentHash

The md5 hash of the name, description and language.

string
name
required

Use as title or short text description

string
height
required

Media height in pixels.

integer format: int32
>= 1
identifier
required

Use this identifier to communicate with Cloudinary.

string
>= 1 characters
isLandscape

True if media width is greater or equal to height

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
multimediaIdentifier
required

Document identifier

string format: uuid
>= 1 characters
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
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
source
required

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

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
Allowed values: IMAGE VIDEO AUDIO RAW
width
required

Media width in pixels.

integer format: int32
>= 1
inventoryIdentifier
required

Inventory type identifier

string format: uuid
>= 1 characters
inventoryNameInEnglish
required

Name of inventory as traveler is seeing it

string
>= 1 characters
inventoryType
required

Inventory type

string
Allowed values: GUEST_ROOM ADD_ON MEETING_ROOM RESTAURANT SPA ATTRACTION PLACE ACTIVITY
location
required

Location

object
coordinates
Array<number>
type
string
x
number format: double
y
number format: double
lowestDisplayPrice

Best price of the room type or facility ancillary in platform currency

object
amount
required

Monetary amount value

number
currency
required

ISO 4217 currency code

string
>= 1 characters /^[A-Z]{3}$/
lowestPrice

Best price of the room type or facility ancillary

object
amount
required

Monetary amount value

number
currency
required

ISO 4217 currency code

string
>= 1 characters /^[A-Z]{3}$/
pricePoint
required

Level of expensiveness.

string
default: THREE
Allowed values: HALF ONE ONE_HALF TWO TWO_HALF THREE THREE_HALF FOUR FOUR_HALF FIVE
salesChannel
required

Parent sales channel

object
blacklisted
boolean
channelDisabled
boolean
commission
number format: float
enabled
boolean
id
string
ownerIdentifier
string
ownerName
string
percentDiscount
number format: float
selfAcquires
boolean
subType

Type of entity that manages, facilitates, or administers properties, bookings, or payments on the Wink Platform

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
supplierIdentifier
string
supplierName
string
lastUpdate

Datetime this record was last updated

string | null format: date-time
parent
required

Parent list

object
createdDate

Datetime this record was first created

string | null format: date-time
id
required

Unique identifier for this record.

string format: uuid
>= 1 characters
lastUpdate

Datetime this record was last updated

string | null format: date-time
name
required

Name of curated list

string
>= 1 characters
ownerIdentifier
required

List creator

string format: uuid
>= 1 characters
type
required

Every affiliate starts out with a Favorite list. All other lists will be of type NORMAL

string
Allowed values: FAVORITE NORMAL
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
sort

Sort key for controlling display order within the list (0-based)

integer format: int32
status

Availability status of this list item; defaults to ACTIVE

string
Allowed values: ACTIVE INACTIVE REMOVED
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
list
required

Curated list object

object
createdDate

Datetime this record was first created

string | null format: date-time
id
required

Unique identifier for this record.

string format: uuid
>= 1 characters
lastUpdate

Datetime this record was last updated

string | null format: date-time
name
required

Name of curated list

string
>= 1 characters
ownerIdentifier
required

List creator

string format: uuid
>= 1 characters
type
required

Every affiliate starts out with a Favorite list. All other lists will be of type NORMAL

string
Allowed values: FAVORITE NORMAL
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
{
"items": [],
"list": {
"enabled": true,
"id": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"managingEntityIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"name": "Top Hotels in Bangkok"
}
}

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"
}