Skip to content

Leaderboard by region

POST
/api/analytics/leaderboard/list
curl --request POST \
--url https://api.wink.travel/api/analytics/leaderboard/list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Wink-Version: 2.0' \
--data '{ "currencyCode": "USD", "groupingIdentifier": "654321", "page": 0, "size": 20, "type": "GLOBAL" }'

Return a paged sales leaderboard scoped to a geographic level such as continent, country or city.

Wink-Version
string
default: 2.0.0
Allowed values: 2.0

Leaderboard filter criteria including geographic scope (continent, country or city), pagination and sort settings

Media typeapplication/json

Request parameters for retrieving a paginated booking leaderboard, filtered by currency and geographic grouping.

object
currencyCode
required

Display leaderboard values in this currency

string
default: USD >= 1 characters /^[A-Z]{3}$/
Example
USD
groupingIdentifier

Can be continent, country.geoNameId or city.geoNameId

string
Example
654321
page
required

Which page to access in the record set

integer format: int32
0
Example
0
size
required

Number of result set to retrieve

integer format: int32
default: 100 <= 100
Example
20
type
required

The type of leaderboard to display

string
default: GLOBAL
Allowed values: GLOBAL CONTINENT COUNTRY CITY
Example
GLOBAL
Example
{
"currencyCode": "USD",
"groupingIdentifier": "654321",
"page": 0,
"size": 20,
"type": "GLOBAL"
}

Paginated leaderboard entries for the requested region. Pagination metadata (total, page, size) is in the Page wrapper.

Media typeapplication/json

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

object
content

The elements on this page.

Array<object>

A single entry on the booking leaderboard, representing a managing entity’s booking performance including volume and revenue metrics.

object
averageBookingAmount
required

Average booking value in the display currency.

number
bookings
required

Total number of bookings for this entity.

integer format: int64
city

City of the managing entity.

string
cityGeoNameId

GeoName ID for the city.

string
continent

Continent of the managing entity.

string
country

Country of the managing entity.

string
countryGeoNameId

GeoName ID for the country.

string
currencyCode
required

Currency code for the monetary amounts.

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

Unique identifier of the managing entity (owner) on the leaderboard.

string format: uuid
ownerName
required

Display name of the managing entity.

string
totalPriceAmount
required

Total revenue from bookings in the display currency.

number
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": [
{
"averageBookingAmount": 1500,
"bookings": 42,
"city": "Bangkok",
"cityGeoNameId": "1609350",
"continent": "Asia",
"country": "Thailand",
"countryGeoNameId": "1605651",
"currencyCode": "THB",
"ownerIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"ownerName": "The Siam Residences",
"totalPriceAmount": 63000
}
],
"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"
}