Сценарий из mcp-everything. Актуально на 2026-10-24.
Поиск отелей на даты поездки: от строки «Сочи» до списка отелей с ценами и всех тарифов выбранного отеля.
AUTH='<KEY_ID>:<API_KEY>'
API=https://api.ratehawk.com/api/b2b/v3
curl --user "$AUTH" "$API/search/multicomplete/" -H 'Content-Type: application/json' \
-d '{"query": "Сочи", "language": "ru"}'
curl --user "$AUTH" "$API/search/serp/region/" -H 'Content-Type: application/json' \
-d '{"checkin": "2026-11-20", "checkout": "2026-11-23", "residency": "ru", "language": "ru",
"guests": [{"adults": 2, "children": []}], "region_id": <region_id>, "currency": "RUB",
"hotels_limit": 50, "filter": {"star_rating": [4, 5]}}'
curl --user "$AUTH" "$API/search/hp/" -H 'Content-Type: application/json' \
-d '{"hid": <hid>, "checkin": "2026-11-20", "checkout": "2026-11-23", "residency": "ru",
"language": "ru", "guests": [{"adults": 2, "children": []}], "currency": "RUB"}'
https://api.ratehawk.comhttps://api-sandbox.ratehawk.comapi.worldota.netТип: Basic Auth
HTTP Basic Authentication ключом API вида <KEY_ID>:<API_KEY>: KEY_ID — имя пользователя, API_KEY — пароль. Ключи бывают трёх типов: sandbox, test (только тестовый отель hid = 8473727, брони реальные) и production. Ключи видны в разделе API настроек договора (доступ — у Master-аккаунта).
curl --user '<KEY_ID>:<KEY>' --data '{"id":"city_hotel_berlin_east","language":"en"}' "https://api.ratehawk.com/api/b2b/v3/hotel/info/"
Автодополнение по части названия; до 5 результатов в каждой категории.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
query |
body | string | да | Часть названия отеля или региона |
language |
body | string | нет | Язык, например ru, en |
Не рекомендуется давать пользователю выбирать тарифы из этого ответа: точного совпадения с search/hp не гарантируется.
Также есть поиск по ID отелей (/api/b2b/v3/search/serp/hotels/) и по координатам.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
checkin |
body | string | да | Дата заезда, не позже 730 дней от текущей |
checkout |
body | string | да | Дата выезда, не позже 30 дней от заезда |
region_id |
body | integer | да | ID региона |
residency |
body | string | нет | Гражданство гостей, ISO 3166-1 alpha-2 |
guests |
body | array | нет | Гости по номерам |
guests[].adults |
body | integer | да | Число взрослых в номере |
guests[].children |
body | array | нет | Возраст детей |
currency |
body | string | нет | Валюта цен |
language |
body | string | нет | Язык данных отеля |
hotels_limit |
body | integer | нет | Максимум отелей в ответе |
timeout |
body | number | нет | Максимальное время поиска, секунд |
filter.star_rating |
body | array | нет | Звёздность 1–5 |
filter.kind |
body | array | нет | Тип отеля |
filter.meal_type |
body | string | нет | Тип питания, например all-inclusive |
filter.price_from |
body | integer | нет | Минимальная цена |
filter.price_to |
body | integer | нет | Максимальная цена |
Пример запроса:
curl --user '<KEY_ID>:<API_KEY>' 'https://api.ratehawk.com/api/b2b/v3/search/serp/region/' \
--header 'Content-Type: application/json' \
--data '{
"checkin": "2026-10-22",
"checkout": "2026-10-25",
"residency": "gb",
"language": "en",
"guests": [
{
"adults": 2,
"children": []
}
],
"region_id": 6053839,
"currency": "EUR",
"filter": {
"star_rating": [],
"kind": [],
"meal_type": [
"all-inclusive"
]
}
}'
Вызывается, когда пользователь выбрал отель; рекомендуемое время жизни тарифа — 30 минут.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
hid |
body | integer | да | ID отеля (числовой); старое поле id устарело |
checkin |
body | string | да | Дата заезда |
checkout |
body | string | да | Дата выезда |
residency |
body | string | нет | Гражданство гостей |
guests[].adults |
body | integer | да | Число взрослых в номере |
guests[].children |
body | array | нет | Возраст детей |
currency |
body | string | нет | Валюта |
language |
body | string | нет | Язык |
timeout |
body | number | нет | Время поиска, секунд |
filter |
body | object | нет | Фильтры: star_rating, kind, meal_type, price_from, price_to |
data строки запроса), POST — для создания, изменения и удаления; тело — JSON-объект.search/hp → hotel/prebook → booking/form → booking/finish → booking/finish/status (или вебхук).partner_order_id уникален в рамках договора и используется во всех вызовах после создания брони.hid = 8473727 реальные — их нужно отменять.en, валюта обычно USD/EUR, число тарифов ограничено 5, 3D Secure не поддерживается.Если этого недостаточно — официальная документация: https://docs.emergingtravel.com/docs/overview/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/ostrovok-etg.md