API данных отелей

Обратите внимание! Часть данных можно получить без использования партнёрского токена — это методы получения отеля или локации по названию/координатам. Остальные запросы требуют указания партнёрского токена в запросе.

Методы API данных отелей

Поиск отеля или локации по названию

Адрес: https://engine.hotellook.com/api/v2/lookup.json

Поиск конкретного места или отеля по названию локации.

Обратите внимание! Если вы отправляете запрос без токена, то количество обращений будет ограничено. В header ответа передаются значения ограничений:

  • X-Ratelimit-Interval — интервал в секундах, на который устанавливается лимит;
  • X-Ratelimit-Remaining — сколько запросов осталось из этого лимита;
  • X-Ratelimit-Limit — значение лимита.

Параметры запроса

Полужирным выделены обязательные параметры.

  • query — основной параметр, задаётся:
    • в виде текста, при этом строится автокомплит по тексту;
    • IATA код города;
    • широтой и долготой (указываются через запятую), при этом выводятся ближайшие объекты.
  • lang — язык вывода. Может принимать любой ISO-код языка (ru, es, fr, de, …) — если перевод на запрошенный язык отсутствует в базе, возвращается английское название объекта. По умолчанию «en»;
  • lookFor — объекты, выводимые в результатах:
    • city (города и острова);
    • hotel (отели);
    • both (все объекты, значение по умолчанию).
  • limit — ограничение количества выводимых результатов, от 1 до 10, по умолчанию — 10;
  • convertCase — автоматическое изменение раскладки (актуально для русскоязычных пользователей, например, при запросе «vjcrdf» будет найдена «москва»). Значения — 1 или 0, по умолчанию — 1.

Пример запроса

https://engine.hotellook.com/api/v2/lookup.json?query=moscow&lang=ru&lookFor=both&limit=1

Пример ответа

{
    "results": {
    "locations": [
    {
       "cityName": "Москва",
       "fullName": "Москва, Россия",
       "countryCode": "RU",
       "countryName": "Россия",
       "iata": [
            "BKA",
            "DME",
            "SVO",
            "VKO",
            "MOW"
        ],
        "id": "12153",
        "hotelsCount": "930",
       "location": {
        "lat": "55.752222200",
        "lon": "37.615555600"
        },
        "_score": 3.2695
    }
    ],
    "hotels": [
    {
        "label": "Отель Novotel Moscow City",
        "locationName": "Москва, Россия",
        "locationId": "12153",
        "id": "1074388",
        "fullName": "Отель Novotel Moscow City, Москва, Россия",
        "location": {
        "lat": "55.747160",
        "lon": "37.539302"
        }
    }
    ]
    },
  "status": "ok"
}

Параметры ответа

Блок locations содержит:

  • cityName — название города;
  • fullName — название города и страны, в которой он находится;
  • countryCode — код страны;
  • countryName — название страны;
  • iata — IATA-код аэропортов в данном городе, может быть несколько;
  • id — id локации в базе;
  • hotelsCount — количество отелей в данной локации;
  • location:
    • lat — широта локации;
    • lon — долгота локации.
  • score — внутренний параметр, используемый для сортировки.

Блок hotels содержит:

  • label — название отеля;
  • locationName — местоположение отеля;
  • locationId — id локации в базе;
  • id — id отеля в базе;
  • fullName — полное название отеля с указанием места нахождения;
  • location:
    • lat — широта отеля;
    • lon — долгота отеля.

Поиск отеля или локации по координатам

Адрес: https://engine.hotellook.com/api/v2/lookup.json

Поиск конкретного места или отеля по координатам.

Обратите внимание! Если вы отправляете запрос без токена, то количество обращений будет ограничено. В header ответа передаются значения ограничений:

  • X-Ratelimit-Interval — интервал в секундах, на который устанавливается лимит;
  • X-Ratelimit-Remaining — сколько запросов осталось из этого лимита;
  • X-Ratelimit-Limit — значение лимита.

Параметры запроса

Полужирным выделены обязательные параметры.

  • query — основной параметр, задаётся:
    • в виде текста, при этом строится автокомплит по тексту;
    • IATA код города;
    • широтой и долготой (указываются через запятую), при этом выводятся ближайшие объекты.
  • lang — язык вывода. Может принимать любой ISO-код языка (ru, es, fr, de, …) — если перевод на запрошенный язык отсутствует в базе, возвращается английское название объекта. По умолчанию «en».
  • lookFor — объекты, выводимые в результатах:
    • city (города и острова);
    • hotel (отели);
    • both (все объекты, значение по умолчанию).
  • limit — ограничение количества выводимых результатов, от 1 до 10, по умолчанию — 10;
  • convertCase — автоматическое изменение раскладки (актуально для русскоязычных пользователей, например, при запросе «vjcrdf» будет найдена «москва»). Значения — 1 или 0, по умолчанию — 1.

Пример запроса

https://engine.hotellook.com/api/v2/lookup.json?query=55.0291,82.9059&lang=ru&lookFor=both&limit=1

Пример ответа

{
    "results": {
    "locations": [
    {
        "id": "12167",
        "type": "City",
        "countryIso": "RU",
        "name": "Новосибирск",
        "state": "",
        "fullname": "Новосибирск, Россия",
        "geo": {
            "lat": "55.028705000",
            "lon": "82.906898000"
        }
  }
  ],
  "hotels": [
    {
        "id": "380923",
        "name": "AZIMUT Отель Сибирь",
        "locationId": "12167",
        "location": {
            "lat": "55.029140",
            "lon": "82.905990"
            }
        }
    ]
    },
    "status": "ok"
}

Параметры ответа

Блок locations содержит:

  • id — id локации в базе;
  • type — тип локации (город, остров);
  • countryIso — буквенный код страны;
  • name — название локации;
  • state — код штата, если есть;
  • fullname — полное название локации с указанием названия страны;
  • geo:
    • lat — широта локации;
    • lon — долгота локации.

Блок hotels содержит:

  • id — id отеля в базе;
  • name — название отеля;
  • locationId — id локации в базе;
  • location:
    • lat — широта отеля;
    • lon — долгота отеля.

Вывод стоимости проживания в отелях

Адрес: https://engine.hotellook.com/api/v2/cache.json

Запрос используется для получения из кэша стоимости проживания в отеле за указанный период. Не содержит информацию о наличии свободных номеров.

Обратите внимание! Если вы отправляете запрос без токена, то количество обращений будет ограничено. В header ответа передаются значения ограничений:

  • X-Ratelimit-Interval — интервал в секундах, на который устанавливается лимит;
  • X-Ratelimit-Remaining — сколько запросов осталось из этого лимита;
  • X-Ratelimit-Limit — значение лимита.

Пример запроса

https://engine.hotellook.com/api/v2/cache.json?location=Moscow&currency=rub&checkIn=2020-12-10&checkOut=2020-12-12&limit=10

Параметры запроса

Полужирным выделены обязательные параметры.

  • location — имя локации (может использоваться IATA-код локации);
  • checkIn — дата заселения;
  • checkOut — дата выселения;
  • locationId — id локации (может использоваться вместо location);
  • hotelId — id отеля;
  • hotel — имя отеля (при вводе имени обязательно указывать location или locationId);
  • adults — количество гостей (по умолчанию 2);
  • limit — количество отелей. Если данный параметр используется в запросе без указания точного id или названия отеля, то действует следующее правило:
    • limit = 4 (значение по умолчанию) — вернётся по одному отелю каждой категории (звёздности);
    • limit = 5 — вернётся два пятизвёздочных отеля и по одному других категорий;
    • limit = 6 — по два 5-ти и 4-х звёздочных отеля и остальные по одному;
    • limit = 7 — по два 5, 4 и 3-х звёздочных отеля и один двухзвездочный;
    • limit = 8 — всех по два. И так далее, с ростом параметра по очереди увеличивается количество отелей каждой звёздности. Если отелей указанной звёздности больше нет, то в выдачу начнут попадать отели 1 и 0 звёздности по такому же правилу.
  • customerIp — параметр используется для указания ip пользователя, если запрос отправляется не напрямую, а через какое-либо серверное проксирование;
  • currency — валюта ответа;
  • token — ваш партнерский токен.

Пример ответа

{
"location":{
"country":"Russia",
"geo":{
"lon":37.617508,
"lat":55.752041
},
"state":null,
"name":"Moscow"
},
"priceAvg":60897.74,
"pricePercentile":{
"3":28863.56,
"10":28863.56,
"35":47805.27,
"50":59531.09,
"75":65435,
"99":120128.17
},
"hotelName":"Mercure Arbat Moscow",
"stars":4,
"locationId":12153,
"hotelId":333561,
"priceFrom":28863.56
}

Параметры ответа

В ответе содержатся:

  • stars — количество звёзд;
  • locationId — id локации данного отеля;
  • priceFrom — минимальная цена за проживание в номере отеля за указанный период;
  • priceAvg — средняя цена за проживание в номере за указанный период;
  • pricePercentile — распределение цен по долям (например, запись вида «50»:59531.09 означает, что 50% цен находится в диапазоне до 59531.09 руб.);
  • hotelName — название отеля;
  • location — информация о локации отеля:
    • geo — координаты локации (города);
    • name — название локации (города);
    • state — штат, в котором расположен город;
    • country — страна отеля.
  • hotelId — id отеля.

Список отелей в архиве

Адрес: https://yasen.hotellook.com/tp/v1/hotels

С помощью запроса https://yasen.hotellook.com/tp/v1/hotels?language=ru можно скачать список всех отелей для указанного языка.

Параметр language может принимать значения:

  • ru (русский);
  • en (английский);
  • th (тайский);
  • de (немецкий);
  • es (испанский);
  • fr (французский);
  • it (итальянский);
  • pl (польский).

Файл со списком отелей содержит следующую данные:

  • id — уникальный id отеля;
  • name — название отеля;
  • location_name — название места расположение отеля;
  • location_id — уникальный id локации отеля;
  • location_iata — IATA-код локации отеля;
  • country_name — название страны, в которой расположен отель;
  • photos_count — количество фотографий отеля в базе.

Файл с отелями обновляется один раз в неделю в час ночи (GMT) с субботы на воскресенье.

Подборки отелей

Адрес: https://yasen.hotellook.com/tp/public/widget_location_dump.json

Запрос возвращает подборку отелей, определённой тематики, по ID локации. Подборка формируется за определённый период (даты заезда и выселения).

Если не указать период, то в подборку попадают отели, найденные за последние три дня. У таких отелей может быть указана скидка за проживание.

Пример запроса

https://yasen.hotellook.com/tp/public/widget_location_dump.json?currency=rub&language=ru&limit=5&id=12209&type=popularity&check_in=2021-02-02&check_out=2021-02-17&token=Укажите_здесь_ваш_токен

Параметры запроса

  • check_in — дата заселения;
  • check_out — дата выселения;
  • currency — валюта ответа;
  • language — язык ответа;
  • limit — ограничение на выводимое количество отелей;
  • type — типы отелей из запроса /tp/public/available_selections.json (см. ниже);
  • id — id города (из запроса Города).

Пример ответа

{
  "popularity":[
  {
    "hotel_id":713859,
    "distance":6.68,
    "name":"Президент Отель",
    "stars":4,
    "rating":87,
    "property_type":"hotel",
    "hotel_type":[
        "Отель для индивидуальных путешественников"
    ],
    "last_price_info":{
        "price":39707,
        "old_price":42761,
        "discount":7,
        "insertion_time":1485464441,
        "nights":15,
        "search_params":{
            "adults":2,
            "children":{},
          "checkIn":"2021-02-02",
          "checkOut":"2021-02-17"
        },
        "price_pn":2647,
        "old_price_pn":2851
    },
    "has_wifi":true
    }
]}

Параметры ответа

  • hotel_id — уникальный id отеля;
  • distance — расстояние от отеля до центра города;
  • name — название отеля;
  • stars — количество звёзд;
  • rating — рейтинг отеля среди посетителей;
  • property_type — тип отеля:
    • apartment;
    • apartmen_hotel;
    • guest_house;
    • hotel;
    • hostel;
    • other.
  • hotel_type — описание типа отеля;
  • last_price_info — информация о последней найденной цене отеля (может отсутствовать)
    • price — стоимость проживания за весь период со скидкой;
    • old_price — стоимость проживания, найденная до скидки;
    • discount — размер скидки;
    • insertion_time — время, когда была найдена подборка;
    • nights — количество ночей.
    • search_params — параметры поиска:
      • adults — количество взрослых;
      • children — количество детей;
      • checkIn — дата заселения;
      • checkOut — дата выселения.
    • price_pn — стоимость ночи в отеле со скидкой;
    • old_price_pn — стоимость ночи в отеле до скидки;
  • has_wifi — наличие в отеле Wi-Fi.

Типы отельных подборок

Адрес: https://yasen.hotellook.com/tp/public/available_selections.json

Запрос возвращает список всех существующих отельных подборок. Данный тип используется в получении подборок отелей.

Пример запроса

https://yasen.hotellook.com/tp/public/available_selections.json?id=12209&token=Укажите_здесь_ваш_токен

Пример ответа

[
"center",
"tophotels",
"highprice",
"3-stars",
"4-stars",
"5-stars",
"restaurant",
"pets",
"pool",
"cheaphotel_ufa",
"luxury_ufa",
"price",
"rating",
"distance",
"popularity",
"2stars",
"3stars",
"4stars",
"5stars"
]

Параметры ответа

  • center — отели в центре города;
  • tophotels — лучшие отели;
  • highprice — самые дорогие отели;
  • 3-stars, 4-stars, 5-stars — автоматическая подборка отелей с 3, 4 или 5 звёздами;
  • restaurant — наличие собственного ресторана;
  • pets — можно ли держать животных;
  • pool — наличие бассейна;
  • cheaphotel — самые дешёвые отели;
  • luxury — отели высшего качества;
  • price — вручную сформированные подборки по цене;
  • rating — отели с наибольшим рейтингом;
  • distance — расстояние от аэропорта;
  • popularity — популярность отеля (используется внутренний алгоритм);
  • 2stars, 3stars, 4stars, 5stars — вручную собранные подборки с соответствующим количеством звёзд.

Статические данные по отелям

Запросы, в результате которых партнер получает информацию о странах, городах и отелях.

Обратите внимание! По умолчанию установлено ограничение: 60 запросов в минуту. Если требуется обрабатывать больше запросов, напишите на support@travelpayouts.com.

Запрос «Страны»

Адрес: https://engine.hotellook.com/api/v2/static/countries.json

Параметры запроса

  • token — ваш партнёрский токен.

Пример запроса

https://engine.hotellook.com/api/v2/static/countries.json?token=УкажитеВашТокен

Пример ответа

[{ "id": "9",
   "code": "DZ",
   "name": {
      "EN": [{
         "isVariation": "0",
         "name": "Algeria"
      }],
      "RU": [{
         "isVariation": "0",
         "name": "\u0410\u043b\u0436\u0438\u0440"
      }]
   }
},
{
   "id": "10",
   "code": "AO",
   "name": {
      "EN": [{
         "isVariation": "0",
         "name": "Angola"
      }],
      "RU": [{
         "isVariation": "0",
         "name": "\u0410\u043d\u0433\u043e\u043b\u0430"
      }]
   }
}]

Параметры ответа

В ответе содержатся:

  • id — id страны;
  • code — код страны;
  • Блок EN:
    • isVariation — указывает, основное или дополнительное название отображается. 1 — дополнительное, 0 — основное. Например, Санкт-Петербург (0), Ленинград (1), Питер (1);
    • name — название страны на английском.
  • Блок RU:
    • isVariation — указывает, основное или дополнительное название отображается;
    • name — название страны на русском.

Запрос «Города»

Адрес: https://engine.hotellook.com/api/v2/static/locations.json

Параметры запроса

  • token — ваш партнёрский токен.

Пример запроса

https://engine.hotellook.com/api/v2/static/locations.json?token=УкажитеВашТокен

Пример ответа

[{
   "id": "373",
   "code": "",
   "countryId": "77",
   "latitude": "15.501950000",
   "longitude": "73.910090000",
   "name": {
      "EN": [{
         "isVariation": "0",
         "name": "Goa"
      }],
      "RU": [{
         "isVariation": "0",
         "name": "\u0413\u043e\u0430"
      }]
   }
}]

Параметры ответа

В ответе содержатся:

  • id — id города (locationId);
  • code — IATA-код города;
  • countryId — id страны;
  • latitude — широта города;
  • longitude — долгота города;
  • Блок DE:
    • isVariation — указывает, основное или дополнительное название отображается. 1 — дополнительное, 0 — основное;
    • name — название города на немецком.
  • Блок EN:
    • isVariation — указывает, основное или дополнительное название отображается;
    • name — название города на английском.
  • Блок RU:
    • isVariation — указывает, основное или дополнительное название отображается;
    • name — название города на русском.

Запрос «Amenities»

Адрес: https://engine.hotellook.com/api/v2/static/amenities.json

Параметры запроса

  • token — ваш партнёрский токен.

Пример запроса

https://engine.hotellook.com/api/v2/static/amenities.json?token=УкажитеВашТокен

Пример ответа

[{
   "id": "2",
   "name": "Hairdryer",
   "groupName": "Room"
},
{
   "id": "3",
   "name": "Safe",
   "groupName": "Room"
},
{
   "id": "4",
   "name": "TV",
   "groupName": "Room"
}]

Параметры ответа

Ответ отдается на английском языке. В ответе содержатся:

  • id — id удобств в базе;
  • name — название удобств;
  • groupName — расположение удобств.

Чтобы получить ответ на другом языке, необходимо использовать запросы вида:

  • Русский: /api/v2/static/amenities/ru.json;
  • Французский: /api/v2/static/amenities/fr.json;
  • Немецкий: /api/v2/static/amenities/de.json;
  • Испанский: /api/v2/static/amenities/es.json.

Запрос «Hotels list»

Адрес: https://engine.hotellook.com/api/v2/static/hotels.json

Параметры запроса

  • locationId — id локации, обязательный параметр;
  • token — ваш партнёрский токен.

Пример запроса

https://engine.hotellook.com/api/v2/static/hotels.json?locationId=895&token=УкажитеВашТокен

Пример ответа

{
    "gen_timestamp": 1725954055.6464293003,
    "pois": [],
    "hotels": [
        {
            "id": 1915976746,
            "cityId": 895,
            "stars": 1,
            "pricefrom": 0,
            "rating": 0,
            "popularity": 0,
            "propertyType": 1,
            "checkIn": "12:00",
            "checkOut": "11:00",
            "distance": 6.9,
            "photoCount": 46,
            "photos": [
                {
                    "url": "https://photo.hotellook.com/image_v2/limit/h1915976746_0/320/240.auto",
                    "width": 320,
                    "height": 240
                },
                {
                    "url": "https://photo.hotellook.com/image_v2/limit/h1915976746_1/320/240.auto",
                    "width": 320,
                    "height": 240
                },
                {
                    "url": "https://photo.hotellook.com/image_v2/limit/h1915976746_2/320/240.auto",
                    "width": 320,
                    "height": 240
                },
                {
                    "url": "https://photo.hotellook.com/image_v2/limit/h1915976746_3/320/240.auto",
                    "width": 320,
                    "height": 240
                },
                {
                    "url": "https://photo.hotellook.com/image_v2/limit/h1915976746_4/320/240.auto",
                    "width": 320,
                    "height": 240
                },
                {
                    "url": "https://photo.hotellook.com/image_v2/limit/h1915976746_5/320/240.auto",
                    "width": 320,
                    "height": 240
                },
            ],
            "photosByRoomType": {
                "1": 5,
                "12": 4,
                "3": 4,
                "4": 5,
                "38": 8,
                "31": 2
            },
            "yearOpened": null,
            "yearRenovated": null,
            "cntRooms": 9,
            "cntSuites": null,
            "cntFloors": null,
            "facilities": [],
            "shortFacilities": [],
            "location": {
                "lon": 81.19601,
                "lat": 6.20174
            },
            "name": {
                "en": "Hotel Bundala Park View"
            },
            "address": {
                "en": "Weligaththa Junction , Tissa Road"
            },
            "link": "/lk/weerawila-895/hotel_bundala_park_view-1915976746.html",
            "poi_distance": {}
        }
}

Параметры ответа

В ответе содержатся:

  • id — id отеля в базе hotellook;
  • cityId — id города;
  • stars — количество звёзд;
  • pricefrom — минимальная найденная стоимость ночи, в USD;
  • rating — рейтинг посетителей. Параметры рассчитывается на основе рейтинга гостей, который составляется на основе голосования;
  • popularity — популярность отеля. Популярность рассчитывается нами автоматически на основе совокупности многих параметров — их несколько десятков;
  • propertyType — тип отеля (хостел, мотель, вилла, и т. п.);
  • checkOut — время выселения;
  • checkIn — время заселения;
  • distance — расстояние до центра;
  • photoCount — количество фотографий;
  • photos
    • url — ссылка на фотографию;
    • width — ширина фотографии;
    • height — высота фотографии.
  • photosByRoomType — фотографии типов комнат. Ключ — id типа комнаты, значение — количество фотографий;
  • yearOpened — год открытия отеля;
  • yearRenovated — год последней реконструкции отеля;
  • facilities — id удобства в базе;
  • shortFacilities — наличие удобств из списка: 'restaurant', 'parking', 'non-smoking', 'pets', 'tv', 'laundry', 'air conditioning', 'internet', 'pool', 'fitness', 'wi-fi in public areas', 'wi-fi in room', 'hairdryer', 'shared bathroom', 'safe', 'babysitting', 'children care/activities' (список может дополняться и меняться);
  • location
    • lat — широта отеля;
    • lon — долгота отеля.
  • name — название отеля:
    • en — на английском языке (есть всегда);
    • ru — адрес на русском (может отсутствовать).
  • cntFloors — количество этажей;
  • cntSuites — количество люксов;
  • cntRooms — количество комнат;
  • address — адрес отеля:
    • en — на английском языке (есть всегда);
    • ru — адрес на русском (может отсутствовать).
  • link — ссылка на страницу отеля;
    Чтобы преобразовать эту ссылку в полноценный URL, используйте шаблон вида: https://hotellook.com/hotels/hotel- и подставьте код отеля из ответа. Например:
    - Вы получили в ответе "link":"\/lk\/weerawila-895\/bandagiri_village-678963.html"
    - Готовая ссылка будет выглядеть следующим образом:  https://hotellook.com/hotels/hotel-678963
  • poi_distance — расстояние до важных мест (в списке отображается id места из массива pois и расстояние до него в метрах);
  • pois — массив ближайших важных мест:
    • confirmed — подтвержденное место;
    • rating — рейтинг места (если есть);
    • location — координаты;
    • name — название места;
    • geom — координаты точки;
    • category — категория места;
    • id — id места в базе.

Запрос «Типы комнат»

Адрес: https://engine.hotellook.com/api/v2/static/roomTypes.json

Параметры запроса

  • language — язык ответа (поддерживаются языки: pt, en, fr, de, id, it, pl, es, th, ru);
  • token — ваш партнёрский токен.

Пример запроса

https://engine.hotellook.com/api/v2/static/roomTypes.json?language=en&token=УкажитеВашТокен

Пример ответа

{
   "8":"Apartment",
   "18":"Bungalow",
   "15":"Business",
   "73":"Business apartment",
   "86":"Business deluxe",
   ...
}

Ответ содержит id комнаты и её название.

Запрос «Типы отелей»

Параметры запроса

  • language — язык ответа (поддерживаются языки: pt, en, fr, de, id, it, pl, es, th, ru);
  • token — ваш партнёрский токен.

Пример запроса

https://engine.hotellook.com/api/v2/static/hotelTypes.json?language=ru&token=УкажитеВашТокен

Пример ответа

{
   "1":"Hotel",
   "6":"Guest House",
   "4":"Apartment \/ Condominium",
   "3":"Bed & Breakfast",
   "7":"Hostel",
   "8":"Resort",
   "5":"Motel",
   "10":"Vacation Rental",
   "2":"Apartment Hotel",
   "12":"Villa",
   "11":"Lodge",
   "9":"Agriturismo \/ Farm Stay",
   "0":"Other"
}

Запрос «Фотографии отеля». Старый метод

Обратите внимание! Фотографии отелей можно размещать только на личных сайтах/приложениях, в которых используются отельные партнёрские программы от платформы Travelpayouts.

Адрес: https://photo.hotellook.com/image_v2/limit/

Параметры запроса

  • h+Id — буква h + идентификатор отеля (из static/hotels.json);
  • photoId — порядковый номер фотографии отеля;
  • photosize — размер фотографии (указывается в виде «ширина/высота», если указано одно значение, то отобразится квадратная фотография).

Примеры запроса

https://photo.hotellook.com/image_v2/limit/h418520_1/800/520.auto

https://photo.hotellook.com/image_v2/crop/h418520_1/800/520.auto

где

  • limit — возвращает фотографию не больше заданного размера;
  • crop — возвращает фотографию отеля заданного размера. При этом фотография будет отмасштабирована/обрезана под указанный размер;
  • 418520 — id отеля;
  • 1 — порядковый номер фотографии;
  • 800 — ширина;
  • 520 — высота;
  • .auto — ставится для того, чтобы наша система проверила, может ли браузер пользователя принять WebP формат изображения. Если да, сервер предоставит изображение в формате WebP. Если нет, изображение будет в формате JPEG.

Запрос «Фотографии отеля». Новый метод

Обратите внимание! Фотографии отелей можно размещать только на личных сайтах/приложениях, в которых используются отельные партнёрские программы от платформы Travelpayouts.

Отправьте запрос на адрес https://yasen.hotellook.com/photos/hotel_photos?id=27926056,4

где id — это id отелей, указанные через запятую. 

В ответ придет массив id фотографий для каждого отеля:

{
"4":[5162091534,5162091993],"27926056":[7505789398,7505803908]
}

После этого отправьте запрос на адрес https://photo.hotellook.com/image_v2/limit/photo_id/800/520.auto

где вместо photo_id подставьте id фотографии.

Запрос «Фотографии комнат отеля в виде спрайта»

Адрес: http://photo.hotellook.com/rooms/sprite/

Чтобы получить спрайт с фотографиями отеля, используйте код вида:

http://photo.hotellook.com/rooms/sprite/h<hotel_id>_<group_id>/<first_width>/<photos_count-1>/<rest_photos_width>.auto

Параметры запроса

  • h+Id — буква h + идентификатор отеля (из static/hotels.json);
  • group_id — id типа комнаты (из static/hotels.json и internalTypeId из ответа поиска);
  • first_width — ширина первой фотографии в спрайте;
  • photos_count-1 — количество фотографий данного типа комнат минус один (из static/hotels.json). Например, если в ответе приходит, что фотографий данного типа 4 штуки, то вместо этого параметра указывается 3;
  • rest_photos_width — ширина остальных фотографий в спрайте;
  • auto — ставится для того, чтобы наша система проверила, может ли браузер пользователя принять WebP формат изображения. Если да, сервер предоставит изображение в формате WebP. Если нет, изображение будет в формате JPEG.

Пример запроса

https://photo.hotellook.com/rooms/sprite/h4_1/100/3/50.auto

https://photo.hotellook.com/rooms/sprite/h4_12/100/3/50.auto

Чтобы получить спрайт с прямоугольными фотографиями, необходимо вместе с шириной указать высоту фотографий:

https://photo.hotellook.com/rooms/sprite/h4_12/100x50/3/50x25.auto

Дополнительная информация

Чтобы получить фотографию комнаты заданного размера, используйте код вида:

https://photo.hotellook.com/rooms/crop/h<hotel_id>_<group_id>_<photo_idx>/<width>/<height>.auto

При этом фотография будет отмасштабирована и обрезана под указанный размер.

Чтобы получить фотографию не больше заданного размера, используйте код вида:

https://photo.hotellook.com/rooms/limit/h<hotel_id>_<group_id>_<photo_idx>/<width>/<height>.auto

Параметры в запросе аналогичны описанным выше, кроме photo_idx — это индекс фотографии в списке (индекс первой фотографии — 0).

https://photo.hotellook.com/rooms/crop/h4_12_1/200/200.auto

Запрос «Фотография города»

Обратите внимание! Фотографии городов можно размещать только на личных сайтах/приложениях, в которых используются отельные партнёрские программы от платформы Travelpayouts.

Адрес: https://photo.hotellook.com/static/cities/

Чтобы получить фотографию города, используйте запрос вида:

https://photo.hotellook.com/static/cities/960x720/LED.jpg

где 960x720 — размер фотографии, LED — IATA-код города.

Запрос «Логотипы агентств»

Чтобы получить логотип агентства, используйте запрос вида 

https://pics.avs.io/hl_gates/width/height/id.png

где width — ширина логотипа, height — высота логотипа и id — id агентства. Размер можно задавать любой.

Ошибки запросов

Все входные параметры проверяются и выдаются ошибки, если они неверны:

  • errorCode 1 — не все обязательные параметры указаны или указаны неверно;
  • errorCode 2 — как минимум один из параметров не соответствует формату;
  • errorCode 3 — доступ запрещён;
  • errorCode 4 — поиск еще не закончен.

При наличие любой из ошибок запрос завершается с http-статусом, отличным от 200 (например 409, 403, 400 и др.).