Skip to content

Grid

POST
/api/managing-entity/{managingEntityIdentifier}/social/post/grid
curl --request POST \
--url https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/social/post/grid \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Wink-Version: 2.0' \
--data '{ "platform": "WINK_LINKS", "scheduledDate": { "endDate": "2020-12-31", "startDate": "2020-12-24" }, "skip": 0, "sort": [ { "dir": "asc", "field": "hotel.name" } ], "status": "APPROVED", "take": 10, "term": "luxury accommodation" }'

Returns a paginated page of scheduled posts for the account driven by the supplied search/filter state.

managingEntityIdentifier
required
string

Fetch posts for this managing entity ID

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

Search and filter criteria

Media typeapplication/json

Paginated search request for managed social posts, supporting filtering by status, platform, keyword, and scheduled date range.

object
platform

Filter by target social platform

Array<string>
Allowed values: WINK_LINKS FACEBOOK INSTAGRAM
Example
WINK_LINKS
scheduledDate

Filter by post scheduled date range

object
endDate
required

Retrieve data range ending with and including this end date

string format: date
Example
2020-12-31
startDate
required

Retrieve data range starting with and including this start date

string format: date
Example
2020-12-24
Example
{
"endDate": "2020-12-31",
"startDate": "2020-12-24"
}
skip

Number of records to be skipped by the pager.

integer format: int32
0
Example
0
sort

Descriptors used for sorting result set.

Array<object>

Descriptor that defines the sort direction and field for ordering a result set.

object
dir

Descriptors used for sorting result set

string
Allowed values: asc desc
Example
asc
field

Data set field to sort on

string
Example
hotel.name
Example
{
"dir": "asc",
"field": "hotel.name"
}
status

Filter by post status (APPROVED, DRAFT, PUBLISHED, CANCELLED, etc)

Array<string>
Allowed values: DRAFT PENDING_APPROVAL APPROVED REJECTED PAUSED PUBLISHED FAILED
Example
APPROVED
take

Number of records to take.

integer format: int32
default: 30 >= 1 <= 180
Example
10
term

Full-text search keyword

string
Example
luxury accommodation
Example
{
"platform": "WINK_LINKS",
"scheduledDate": {
"endDate": "2020-12-31",
"startDate": "2020-12-24"
},
"skip": 0,
"sort": [
{
"dir": "asc",
"field": "hotel.name"
}
],
"status": "APPROVED",
"take": 10,
"term": "luxury accommodation"
}

Paginated list of managed social posts matching the search criteria

Media typeapplication/json

Owned pagination envelope: a page of content plus flat page metadata.

object
content

The elements on this page.

Array<object>

Lightweight projection of a scheduled social media post, used by consumers outside the managed-social module.

object
createdDate

Datetime this record was first created

string | null format: date-time
customizationIdentifier
required

The post customization/template identifier used to create this post

string format: uuid
descriptions
required

A single entry array under most circumstances in the language the post was created for.

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
hashTags
Array<string>
id

Unique identifier for this record.

string format: uuid
lastUpdate

Datetime this record was last updated

string | null format: date-time
link

A link to go with the text

object
caption

Short caption typically showing the domain of the URL

string
description

Human-readable description of the link destination shown alongside the URL

string
url
required

The fully-qualified URL to link from the post

string format: uri
>= 1 characters
location

Optional geo-location

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

Platform-specific metadata for this post

object
key
additional properties
multimedias
Array<object>

CDN image/media assets (most platforms support up to 10 images per post)

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

The managing entity this post belongs to

string format: uuid
platform
required

Which platform to post to.

string
Allowed values: WINK_LINKS FACEBOOK INSTAGRAM
postType
required

The structural intent of this post.

string
Allowed values: TRANSACTIONAL AWARENESS SENTIMENT
scheduledDate
required

Exact date and time when the post will be published (ISO 8601 format)

string format: date-time
status
required

Status of post.

string
Allowed values: DRAFT PENDING_APPROVAL APPROVED REJECTED PAUSED PUBLISHED FAILED
statusText

Human-readable status explanation (typically used for error messages)

string
timezone
required

IANA timezone identifier (e.g. Asia/Bangkok, America/New_York)

string
toneOfVoice
required

The language style used for this post.

string
Allowed values: NEUTRAL FRIENDLY LUXURY FOODIE ADVENTUROUS FAMILY ROMANTIC HUMOROUS ECO LOCAL_INSIDER INCLUSIVE BUDGET
type
required

Type of post.

string
Allowed values: MANUAL TRANSACTIONAL AWARENESS SENTIMENT
userIdentifier
required

The user ID that owns the account

string format: uuid
userTags
Array<string>
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
first

Whether this is the first page.

boolean
last

Whether this is the last page.

boolean
number

Zero-based index of this page.

integer format: int32
numberOfElements

Number of elements on this page.

integer format: int32
size

The requested page size.

integer format: int32
totalElements

Total number of elements across all pages.

integer format: int64
totalPages

Total number of pages for the current page size.

integer format: int32
Example
{
"content": [
{
"customizationIdentifier": "d7e1b4f6-2c8a-4d2b-8f3e-6d9c7b2a0e5f",
"descriptions": [
{
"description": "Experience luxury living in the heart of Bangkok.",
"language": "en",
"name": "Discover The Siam Residences"
}
],
"hashTags": [
"#ThailandTravel"
],
"id": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"ownerIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"platform": "FACEBOOK",
"postType": "TRANSACTIONAL",
"scheduledDate": "2026-03-15T18:30:00Z",
"status": "APPROVED",
"timezone": "Asia/Bangkok",
"toneOfVoice": "NEUTRAL",
"type": "MANUAL",
"userIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"userTags": [
"@luxurytravel"
]
}
],
"first": true,
"last": false,
"number": 0,
"numberOfElements": 20,
"size": 20,
"totalElements": 1234,
"totalPages": 62
}

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