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

        # 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": [
        {
            "Offer": {
                "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"
}