# Островок — ETG API (RateHawk): POST /api/b2b/v3/search/serp/region/ — Поиск цен по региону

Не рекомендуется давать пользователю выбирать тарифы из этого ответа: точного совпадения с `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"
 ]
 }
}'
```

## Базовые URL

- Боевой и тестовый: `https://api.ratehawk.com`
- Песочница: `https://api-sandbox.ratehawk.com`
- Старые хосты  и  устарели.: `api.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/"
```

## Нюансы

- GET — для получения данных (параметры в `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 не поддерживается.
- Лимиты и доступные эндпоинты ключа — метод Retrieve endpoints; лимиты повышают только после сертификации.

## Сценарии с этим методом

- [Найти отели и цены в городе](https://mcp-everything.ru/integrations/ostrovok-etg/scenarios/nayti-oteli-i-tseny-v-gorode.md)

---

Если этого недостаточно — официальная документация: https://docs.emergingtravel.com/docs/overview/
Вся интеграция одним документом: https://mcp-everything.ru/integrations/ostrovok-etg.md
