Products search
Products search returns a list of products that match specified search criteria.
Products are grouped by their GIATA ID. If that is not possible (eg. GIATA ID is missing), they are grouped by their product code.
For example, a use case for this request would be requesting a list of hotels that have bookable dates for a specific search (usually limited to a specific region).
Another use case might be, to request a list of all hotels that might be bookable out of a larger list of hotels (specified by their GIATA IDs).
Note
This request does not return a list of bookable dates. For
this use dates
request.
Warning
Sending too generic query might result in an error due to too many matches. We recommend limiting the number of possible matches by restricting search to a specific geographical region (or a region group).
API Endpoints
It's API endpoint is, /search/<content type>/products
For example:
- For hotel:
/search/hotel/products
- For pauschal:
/search/pauschal/products
- For trips:
/search/trips/products
Response structure
Any entries that are either not applicable to the given content type, or are missing (ie. empty) are not displayed.
typedef Results = array{
struct{
Product struct{
# For hotel and pauschal types, this is a hotel name.
# For trips this a trip name.
OfferName string
# Unique GIATA ID for this offer. Some offers might be
# missing those.
GiataID bigint
Picture struct{
# URL to object thumbnail picture (about 100x66 px)
Thumbnail string
# URL to object full-scale picture
Full string
}
# Object category (1-5)
Category int
# Rating of the offer (0-100)
OfferRating int
# Percentage of guests recommending this object (0-100)
RecommendationPercentage int
Location struct{
# Location name and its corresponding ID of this object
LocationName string
LocationID int
# Region group and region (with coressponding IDs) this
# object belongs to
RegionGroupID int
RegionGroupName string
RegionID int
RegionName string
# Object exact latitude and longitude. This information
# is missing for some objects
Latitude float
Longitude float
}
Facts map{
# Facts are short factoids about object properties.
# Key in this map is a fact short code, and it's value
# is a human-readable description of a factoid.
string => string
}
# Contains additional GIATA tags. Key is tag name, which
# usually corresponds to a specific fact in facts map.
AdditionalTags map{
string => struct{
Value string # Human readable translation of an tag
}
}
}
# Minimum price of this offer found for a given search query
MinimumPrice int
ServiceTypes map{
# List of service types found for a given search query
# Key is a service code and value is a human-readable description
string => string
}
RoomTypes map{
# List of room types found for a given search query
# Key is a room code and value is a human-readable description
string => string
}
TourOperators map{
# Key is a tour operator code
string => struct{
Name string # Human readable tour operator name
Logo string # URL To tour operator logo
}
}
# Contains list of tour operator offer codes for this product as
# found by given search query
ProductCodes => array{string}
# Contains list of offer subtypes for this product as found by
# given search query
SubTypes => array{string}
# List of regions this product belongs to. Only applicable to
# trips content type
Regions => map{
# Key is an region ID and value is an region name.
string => string
},
# List of trips durations that match a given query. Applicable
# only to trips content type
Durations => array{int}
# List of starting dates that match a given query. Applicable
# only to trips content type.
StartDates => array{string}
}
}
Filters and sorts
This request supports the following filters for the following content types:
Filter | Description | Trips | Hotel | Pauschal |
---|---|---|---|---|
TourOperator | Filter by tour operators | ✔️ | ✔️ | ✔️ |
ServiceType | Filter by service types | x | ✔️ | ✔️ |
RoomType | Filter by room types | x | ✔️ | ✔️ |
SubType | Filter by product sub-types | ✔️ | ✔️ | ✔️ |
Location | Filter by product location | x | ✔️ | ✔️ |
Region | Filter by product region | ✔️ | ✔️ | ✔️ |
OverallRating | Filter by product overall rating | x | ✔️ | ✔️ |
Category | Filter by product category | x | ✔️ | ✔️ |
Duration | Filter by trip duration | ✔️ | x | x |
Sorting is possible by the following fields for the following content types:
Filter | Description | Trips | Hotel | Pauschal |
---|---|---|---|---|
OfferName | Sorts by product name | ✔️ | ✔️ | ✔️ |
GiataID | Sorts by product GiataID | ✔️ | ✔️ | ✔️ |
Price | Sorts by product Price | ✔️ | ✔️ | ✔️ |
LocationName | Sorts by product location name | x | ✔️ | ✔️ |
Category | Sorts by product category | x | ✔️ | ✔️ |
OverallRating | Sorts by product overall rating | x | ✔️ | ✔️ |
Notable content differences
Regions
, Durations
and StartDates
are displayed only for trips
content
type.
Trips content type also lacks ServiceType
, RoomType
fields. In Product
structure the following fields are also not present: Facts
, Location
,
RecommendationPercentage
, OfferRating
, Category
.
Example response
This response had a lot of content removed for brevity.
{
"Count": 276,
"Pages": 28,
"Page": 0,
"Sorts": {
"OfferName": null,
"GiataID": null,
"Price": "asc"
},
"Filters": {
"TourOperator": {
"KOMP": {
"Value": "Kompas"
},
"PALM": {
"Value": "Palma"
},
"SONH": {
"Value": "Son\u010dek"
}
},
"ServiceType": {
"AI": {
"Value": "all inclusive"
},
"HP": {
"Value": "half board"
},
"VP": {
"Value": "full board"
},
"VP+": {
"Value": "full board plus"
}
},
"RoomType": {
"3Z": {
"Value": "triple room"
},
"AP": {
"Value": "apartment"
},
"SU": {
"Value": "suite"
},
"VI": {
"Value": "villa"
},
"WM": {
"Value": "mobile house"
}
},
"SubType": {
"catalog": {
"Value": "catalog"
},
"earlybird": {
"Value": "earlybird"
},
"lastmin": {
"Value": "lastmin"
}
},
"Location": {
"10100": {
"Value": "Folgaria - Lavarone"
},
"1179822579": {
"Value": "Kronplatz \/ Niederolang"
},
"12052": {
"Value": "Nassfeld \/ Hermagor"
},
"9628": {
"Value": "Folgaria-Costa"
},
"997348672": {
"Value": "Krvavec"
}
},
"Region": {
"100030": {
"Value": "Trentino-S\u00fcdtirol \/ Dolomiten"
},
"100089": {
"Value": "East Tyrol"
},
"100434": {
"Value": "Kvarner"
},
"940000": {
"Value": "Spa & wellness"
},
"940100": {
"Value": "Mountains"
},
"99990062": {
"Value": "Dolomites"
}
}
},
"RFilters": {
"Price": {
"Minimum": 28,
"Maximum": 1596
}
},
"Results": [
{
"Product": {
"OfferName": "Ad Turres",
"GiataID": 34649,
"Picture": {
"Thumbnail": "http:\/\/ors.si\/giata-pics\/34649\/thumb.jpg",
"Full": "http:\/\/ors.si\/giata-pics\/34649\/full.jpg"
},
"Category": 3,
"OfferRating": 38,
"RecommendationPercentage": 50,
"Location": {
"LocationName": "Crikvenica-Dramalj",
"LocationID": 2693,
"RegionGroupID": "100023",
"RegionGroupName": "Croatia",
"RegionID": 100434,
"RegionName": "Kvarner",
"Latitude": 45.1884,
"Longitude": 14.6754
},
"Facts": {
"ben": "near the beach (approx. 100-500m)",
"chf": "family-friendly",
"ani": "animation program",
"spt": "a wide range of sports activities",
"pol": "pool",
"stn": "tennis",
"sth": "other sports activities",
"chl": "children's discounts",
"yun": "for young people",
"wifi": "wifi",
"pet": "pets allowed",
"park": "parking"
}
},
"MinimumPrice": 35,
"ServiceTypes": {
"HP": "half board",
"VP+": "full board plus"
},
"RoomTypes": {
"DZ": "double room"
},
"TourOperators": {
"KOMP": {
"Name": "Kompas",
"Logo": "http:\/\/www.ors.si\/orslib\/ikonce\/toc\/komp.gif"
},
"PALM": {
"Name": "Palma",
"Logo": "http:\/\/www.ors.si\/orslib\/ikonce\/toc\/palm.gif"
}
},
"ProductCodes": [
"89398",
"132238",
"132239",
"132335",
"132336",
"132339",
"132340",
"132236",
"132237"
],
"SubTypes": [
"catalog",
"earlybird"
]
},
{
"Offer": {
"OfferName": "Valamar Diamant Hotel",
"GiataID": 6714,
"Picture": {
"Thumbnail": "http:\/\/ors.si\/giata-pics\/6714\/thumb.jpg",
"Full": "http:\/\/ors.si\/giata-pics\/6714\/full.jpg"
},
"Category": 4,
"OfferRating": 80,
"RecommendationPercentage": 76,
"Location": {
"LocationName": "Porec",
"LocationID": 1266,
"RegionGroupID": "100023",
"RegionGroupName": "Croatia",
"RegionID": 1108,
"RegionName": "Istria",
"Latitude": 45.213819833246,
"Longitude": 13.599421977997
},
"Facts": {
"ben": "near the beach (approx. 100-500m)",
"chf": "family-friendly",
"ani": "animation program",
"spt": "a wide range of sports activities",
"wel": "rich wellness offer",
"pol": "pool",
"ipl": "indoor swimming pool",
"wms": "massage",
"wcu": "cure application",
"wsn": "steam bath (Turkish bath)",
"wbf": "beauty farms",
"sws": "water sports",
"sbs": "ball sports",
"shb": "hiking, biking",
"srd": "horseback riding",
"sae": "aerobics",
"sfr": "fitness",
"stn": "tennis",
"sdv": "diving",
"sth": "other sports activities",
"whc": "wheelchair accessible",
"yun": "for young people",
"sen": "seniors",
"cup": "for couples",
"wifi": "wifi",
"air": "air condition",
"park": "parking"
}
},
"MinimumPrice": 35,
"ServiceTypes": {
"HP": "half board"
},
"RoomTypes": {
"DZ": "double room",
"JS": "junior suite"
},
"TourOperators": {
"KOMP": {
"Name": "Kompas",
"Logo": "http:\/\/www.ors.si\/orslib\/ikonce\/toc\/komp.gif"
},
"SONH": {
"Name": "Son\u010dek",
"Logo": "http:\/\/www.ors.si\/orslib\/ikonce\/toc\/sonh.gif"
},
"PALM": {
"Name": "Palma",
"Logo": "http:\/\/www.ors.si\/orslib\/ikonce\/toc\/palm.gif"
}
},
"ProductCodes": [
"75857",
"75856",
"98644",
"99672",
"131617",
"131618",
"131681",
"131682",
"108352",
"113251",
"130469",
"130471"
],
"SubTypes": [
"catalog",
"earlybird"
]
},
{
"Offer": {
"OfferName": "Ribno",
"GiataID": 20326,
"Picture": {
"Thumbnail": "http:\/\/ors.si\/giata-pics\/20326\/thumb.jpg",
"Full": "http:\/\/ors.si\/giata-pics\/20326\/full.jpg"
},
"Category": 3,
"OfferRating": 67,
"RecommendationPercentage": 100,
"Location": {
"LocationName": "Bled",
"LocationID": 573,
"RegionGroupID": "920000",
"RegionGroupName": "Slovenia",
"RegionID": 920300,
"RegionName": "Gorenjska",
"Latitude": 46.36600112915,
"Longitude": 14.114000320435
},
"Facts": {
"spt": "a wide range of sports activities",
"wel": "rich wellness offer",
"wms": "massage",
"wsn": "steam bath (Turkish bath)",
"wbf": "beauty farms",
"sws": "water sports",
"sbs": "ball sports",
"sgl": "golf",
"srd": "horseback riding",
"stn": "tennis",
"sth": "other sports activities",
"wifi": "wifi",
"pet": "pets allowed",
"park": "parking"
}
},
"MinimumPrice": 41,
"ServiceTypes": {
"UF": "bed & breakfast"
},
"RoomTypes": {
"DZ": "double room"
},
"TourOperators": {
"PALM": {
"Name": "Palma",
"Logo": "http:\/\/www.ors.si\/orslib\/ikonce\/toc\/palm.gif"
}
},
"ProductCodes": [
"122171",
"122172"
],
"SubTypes": [
"catalog"
]
}
],
"RequestID": "d17c4dcc-5de7cad78d6c2869668312"
}