# Ozon Travel Hotel Scraper - Rooms, Rates & Availability (`zen-studio/ozon-travel-hotel-scraper`) Actor

Extract hotels from Ozon Travel with room types, nightly rates, guest ratings, amenities, addresses and photos. Add check-in and check-out dates for real availability and stay prices. 402 destinations, or paste any search link. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/zen-studio/ozon-travel-hotel-scraper.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Travel
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.49 / 1,000 hotels

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Ozon Travel Hotel Scraper | Парсер отелей Озон Трэвел: номера, тарифы и наличие мест (2026)

<blockquote style="border-left:4px solid #005BFF;background:#EAF0FF;padding:12px 16px;margin:12px 0">
<span style="font-size:16px;font-weight:700;color:#1C1917">100 отелей с номерами и тарифами за 10 секунд:</span> <span style="font-size:15px;color:#57534E">30 полей на отель, 402 направления, цены по датам заезда и выезда.</span>
</blockquote>

<a href="https://console.apify.com/actors/JXjWMSacJu36ODZGq/input"><img src="https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/ozon-travel-hotel-scraper-hero.png" alt="Ozon Travel (Озон Трэвел) hotel scraper: hotel name, stars, guest rating, room types with nightly rates, amenities, photos and coordinates as structured JSON" style="max-width:100%"></a>

<blockquote style="border-left:4px solid #E7E5E4;padding:8px 14px;margin:12px 0">
<span style="font-size:14px;color:#57534E">⚡ Замер 2026-08-11: 100 отелей Москвы за 10 секунд, 100 из 100 с ценой.<br>⚡ Measured 2026-08-11: 100 Moscow hotels in 10 seconds, 100 of 100 priced.</span>
</blockquote>

<table>
<tr>
<td colspan="4" style="padding:10px 14px;background:#005BFF;border:none;border-radius:4px 4px 0 0">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">Ozon Scraper Suite</span>
<span style="color:#CCE0FF;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Complete Ozon marketplace and travel intelligence</span>
</td>
</tr>
<tr>
<td style="background:#D8E4FF;padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;border-right:none;border-top:none;vertical-align:top;width:25%">
<img alt="Hotels — Ozon scraper suite" src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-JXjWMSacJu36ODZGq-Vjceeadow6-ozon-traevl-scraper-logo.png" width="20" height="20" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/ozon-travel-hotel-scraper" style="color:#005BFF;text-decoration:none;font-weight:700;font-size:13px">Hotels</a><br>
<span style="color:#005BFF;font-size:11px;font-weight:600">&#10148; You are here</span>
</td>
<td style="background:#EAF0FF;padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:25%">
<img alt="Hotel Reviews — Ozon scraper suite" src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-oUpcHyhfZNv3IpdbQ-fMySiQP7wQ-ozon-traevl-scraper-logo.png" width="20" height="20" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/ozon-travel-hotel-reviews-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Hotel Reviews</a><br>
<span style="color:#78716C;font-size:11px">Guest reviews &amp; stay dates</span>
</td>
<td style="background:#EAF0FF;padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:25%">
<img alt="Product Scraper — Ozon scraper suite" src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-APa5EQZZaXHWBmogv-XA8teXUHbn-ozon-scraper-logo.png" width="20" height="20" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/ozon-scraper-pro" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Product Scraper</a><br>
<span style="color:#78716C;font-size:11px">Prices, specs, variants &amp; sellers</span>
</td>
<td style="background:#EAF0FF;padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:25%">
<img alt="Buybox Tracker — Ozon scraper suite" src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-BiCr8o67m4A7ie2o1-2AuqeGRZM4-ozon-scraper-logo.png" width="20" height="20" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/ozon-buybox-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Buybox Tracker</a><br>
<span style="color:#78716C;font-size:11px">All sellers, prices &amp; position</span>
</td>
</tr>
</table>

Выберите один из **402 городов** или вставьте ссылку на поиск [**Ozon Travel**](https://travel.ozon.ru/) — и получите **каждый отель** структурированным JSON.

Укажите даты, и в тарифах появятся реальные цены за проживание. Новым пользователям Apify даётся **$5 кредитов, около 1 250 отелей**.

Pick one of **402 destinations** or paste an [**Ozon Travel**](https://travel.ozon.ru/) search link, and get **every hotel** as structured JSON.

Add dates and the rates become real prices for that stay. New Apify users get **$5 in free credits, about 1,250 hotels**.

#### Copy to your AI assistant

```
zen-studio/ozon-travel-hotel-scraper on Apify. Hotels from Ozon Travel with room types, nightly rates and real availability for a stay. Call ApifyClient("TOKEN").actor("zen-studio/ozon-travel-hotel-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Give destination (enum) or urls; checkIn and checkOut only count together. Full spec: GET https://api.apify.com/v2/acts/zen-studio~ozon-travel-hotel-scraper/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Token: https://console.apify.com/account/integrations
```

### Что собирает парсер отелей Ozon Travel (What it extracts)

- **30 полей на отель** / **30 fields per hotel**: звёзды, оценка, отзывы, адрес, координаты, удобства, описание, правила, фото и видео.
- **Номера с тарифами** / **Rooms with their rates**: цена, питание, условия отмены, способ оплаты.
- **Цены по вашим датам** / **Prices for your dates**: только реально свободные номера, с ценой за проживание и числом ночей.
- **Календарь цен** / **Price calendar**: минимальная цена за ночь по датам на месяцы вперёд.
- **Целый город, без потолка страниц** / **A whole city, no page ceiling**: 411 отелей Выборга за один запуск.
- **Работает на Apify** / **Runs on Apify**: расписание, вебхуки, экспорт в JSON/CSV/Excel, Google Sheets, Make и Zapier.

### Как спарсить отели Ozon Travel (How to scrape Ozon Travel hotels)

1. Откройте Ozon Travel Hotel Scraper и нажмите **Try for free**. / Open the Ozon Travel Hotel Scraper and hit **Try for free**.
2. Выберите город в поле **Destination** или вставьте ссылку на поиск в **URLs**. / Pick a city under **Destination**, or paste a search link into **URLs**.
3. Укажите даты заезда и выезда, если нужны реальные цены за проживание. / Add check-in and check-out dates if you want real prices for a stay.
4. Задайте **Max hotels** и, при желании, фильтры по звёздам, оценке и удобствам. / Set **Max hotels** and, if you like, filters for stars, rating, and amenities.
5. Нажмите **Start** и выгрузите результат в JSON, CSV или Excel из вкладки Storage. / Hit **Start** and export the result as JSON, CSV, or Excel from the Storage tab.

#### Город целиком (A whole destination)

```json
{
    "destination": "Москва",
    "maxResults": 100
}
```

#### Цены на конкретные даты (Rates for specific dates)

```json
{
    "destination": "Сочи",
    "checkIn": "2026-11-10",
    "checkOut": "2026-11-12",
    "adults": 2,
    "maxResults": 50
}
```

#### Фильтры: звёзды, оценка, бассейн (Filters: stars, rating, pool)

```json
{
    "destination": "Казань",
    "stars": ["4", "5"],
    "minRating": "4.5",
    "amenities": ["278618084000"],
    "sorting": "price_asc",
    "maxResults": 50
}
```

#### Своя ссылка или отель (Your own link, or one hotel)

```json
{
    "urls": [
        "https://www.ozon.ru/travel/hotels/product/cosmos-moscow-vdnkh-hotel-612653164/",
        "https://www.ozon.ru/travel/hotels/category/oteli-moskvy-5-zvezd/"
    ],
    "maxResults": 30
}
```

Ссылка используется ровно так, как вы её вставили: её фильтры, сортировка и даты важнее полей ввода. Даты — единственное исключение: если в ссылке их нет, они добавляются, и одну сохранённую ссылку можно прогнать по сетке дат.

A link is used exactly as you pasted it: its own filters, sorting, and dates win over the input fields. Dates are the one exception, added when the link carries none, so one saved search link can be run across a grid of dates.

### Параметры ввода (Input parameters)

| Параметр / Parameter | Тип / Type | По умолчанию / Default | Описание / Description |
|---|---|---|---|
| `destination` | string | | Город или регион из списка, 402 направления. / Destination from the list of 402. |
| `urls` | array | | Ссылки на поиск, подборку или отель. / Search, collection, or hotel links. |
| `checkIn` / `checkOut` | string | | Даты `ГГГГ-ММ-ДД`. Вместе открывают реальное наличие и цену проживания. / `YYYY-MM-DD`. Together they unlock real availability and stay pricing. |
| `adults` | integer | `2` | Число взрослых гостей, учитывается вместе с датами. / Adult guests, applied together with dates. |
| `maxResults` | integer | `100` | Сколько отелей на каждое направление и каждую ссылку. `0` = все. / Hotels per destination and per link. `0` = all of them. |
| `skipDetails` | boolean | `false` | Только карточки из выдачи, без номеров и фото. / Search results only, without rooms and photos. |
| `sorting` | enum | `popular` | По популярности, сначала дешёвые, сначала дорогие, по рейтингу. / Popular, cheapest, most expensive, best rated. |
| `minRating` | enum | | Минимальная оценка гостей: 3+, 4+, 4.5+. / Minimum guest rating. |
| `stars` | array | | Звёздность, можно несколько. / Star rating, multiple allowed. |
| `placementType` | array | | Отель, апарт-отель, квартира, вилла, хостел, санаторий и другие. / Hotel, apart-hotel, apartment, villa, hostel, health resort, and more. |
| `mealType` | array | | Питание, для поиска без дат. / Meal plan, for a search without dates. |
| `amenities` | array | | Wi-Fi, парковка, бассейн, SPA, сауна, трансфер, с питомцами и другие. / Wi-Fi, parking, pool, SPA, sauna, transfer, pets allowed, and more. |

### Какие данные вы получаете (What data can you extract)

Каждая строка содержит / Every row contains:

- **Отель**: `hotelId`, `hotelUrl`, `name`, `stars`, `address`, `coordinates`, `rating`, `reviewCount`, `badges`
- **Цена**: `priceFrom`, `priceFromText`, `availabilityNote`
- **Номера**: `rooms[]` с `name`, `accommodation`, `badges`, `images` и вложенными `tariffs[]` (`price`, `services`, `miles`, `availabilityNote`)
- **Проживание**: `checkIn`, `checkOut`, `nights`, `roomsPending`
- **Об отеле**: `description`, `amenities`, `faq`, `rules`, `checkInFrom`, `checkInTo`, `checkOutUntil`, `pointsOfInterest`
- **Медиа**: `images`, `gallery`
- **Календарь**: `priceCalendar[]` с ценой за ночь по датам

Строки двух типов: `hotel` (полная карточка) и `hotelTile` (только выдача, при `skipDetails`). Набор полей одинаковый, так что таблица не ломается.

Two row types: `hotel` (the full card) and `hotelTile` (search results only, under `skipDetails`). Both carry the same fields, so your table never changes shape.

#### Пример результата (Output example)

```json
{
  "type": "hotel",
  "hotelId": 1635992617,
  "internalHotelId": "5968185146000",
  "hotelUrl": "https://www.ozon.ru/travel/hotels/product/izmaylovo-tvoy-otel-1635992617/",
  "name": "Измайлово Гамма, Дельта - ТВОЙ ОТЕЛЬ",
  "stars": 3,
  "address": "Измайловское шоссе, 71к4Г-Д, Москва, Россия",
  "coordinates": { "lat": 55.79159164428711, "lon": 37.74872589111328 },
  "rating": 4.7,
  "reviewCount": 1935,
  "priceFrom": 9200,
  "priceFromText": "от 9 200 ₽",
  "amenities": ["Сауна", "Парковка", "Wi-Fi", "Ресторан"],
  "badges": ["Авторизуйтесь для скидки", "Выбор Ozon"],
  "availabilityNote": null,
  "images": [
    "https://cdn1.ozonusercontent.com/s3/hotels-media-00/AZX2uKGzd_K1HOOtQXTMFg.jpg",
    "https://cdn1.ozonusercontent.com/s3/hotels-media-00/AZX2uLbkeTSeS2KHqQ2fzQ.jpg"
  ],
  "description": "Гостиница «Измайлово» - единственный в России мегакомплекс, состоящий из трех- и четырехзвездочных гостиниц, более 15-ти ресторанов с различными национальными кухнями.",
  "checkInFrom": "14:00",
  "checkInTo": "00:00",
  "checkOutUntil": "12:00",
  "rules": "Заселение после 14:00, выезд до 12:00. Стойка reception работает круглосуточно.",
  "pointsOfInterest": [
    { "name": "Метро Партизанская", "distance": "500 м" },
    { "name": "Метро Черкизовская", "distance": "1.4 км" }
  ],
  "faq": [
    { "question": "Во сколько заезд и выезд?", "answer": "Заезд с 14:00, выезд до 12:00." }
  ],
  "rooms": [
    {
      "name": "СТАНДАРТ ДВЕ КРОВАТИ - 2МГ (ИЗМАЙЛОВО ОТЕЛЬ ГАММА 3*)",
      "accommodation": "Две односпальные кровати",
      "badges": ["1 комната", "24м2", "Ванная комната в номере"],
      "images": ["https://cdn1.ozonusercontent.com/s3/hotels-media-09/AZsOJ2dleASYiFPP9RsbUQ.jpg"],
      "tariffs": [
        {
          "price": 9200,
          "priceText": "9 200 ₽",
          "services": ["Без питания", "Бесплатная отмена до 8 ноя", "Оплата сейчас"],
          "miles": "+ 92",
          "availabilityNote": "Остался 1 вариант"
        }
      ]
    }
  ],
  "roomsPending": false,
  "priceCalendar": [
    { "date": "2026-11-10", "price": 4600, "isMin": true },
    { "date": "2026-11-11", "price": 4750, "isMin": false }
  ],
  "gallery": [
    { "type": "image", "url": "https://cdn1.ozonusercontent.com/s3/hotels-media-04/AZ8Ar4mYeTC2z1ih2nhuMQ.jpg" },
    { "type": "video", "url": "https://v-1.ozone.ru/vod/video-73/asset_3_h264.mp4", "previewUrl": "https://ir.ozone.ru/s3/video-73/cover_1_not_uniform.jpg" }
  ],
  "checkIn": "2026-11-10",
  "checkOut": "2026-11-12",
  "nights": 2
}
```

Массивы в примере укорочены. В реальном запуске у этого отеля 82 удобства, 9 типов номеров с 36 тарифами и 181 фото и видео.

Arrays are trimmed in the example. In a real run this hotel has 82 amenities, 9 room types with 36 rates, and 181 photos and videos.

### Сценарии использования (Advanced usage)

Готовые конфигурации для мониторинга цен конкурентов, подбора отелей под бюджет, выгрузки целого города и сетки дат. / Ready-made configurations for competitor rate monitoring, budget shortlisting, whole-city exports, and date grids.

#### Мониторинг цен конкурентов (Competitor rate monitoring)

```json
{
    "urls": ["https://www.ozon.ru/travel/hotels/product/cosmos-moscow-vdnkh-hotel-612653164/"],
    "checkIn": "2026-12-24",
    "checkOut": "2026-12-27",
    "adults": 2
}
```

#### Весь город, дёшево (A whole city, cheap)

```json
{
    "destination": "Санкт-Петербург",
    "skipDetails": true,
    "maxResults": 0
}
```

#### Премиум-сегмент (The premium segment)

```json
{
    "destination": "Москва",
    "stars": ["5"],
    "minRating": "4.5",
    "placementType": ["1%3B8%3B12%3B13%3B18%3B19"],
    "sorting": "price_desc",
    "maxResults": 40
}
```

#### Отели у моря с бассейном (Seaside hotels with a pool)

```json
{
    "destination": "Сочи",
    "amenities": ["278618084000", "275470375000"],
    "minRating": "4",
    "maxResults": 60
}
```

### Сколько стоит парсинг отелей Ozon Travel? (How much does it cost?)

**$3.99 за 1 000 отелей** с номерами, тарифами, удобствами и фото. Карточки из выдачи (`skipDetails`) — **$0.99 за 1 000**. / **$3.99 per 1,000 hotels** with rooms, rates, amenities, and photos. Search-result rows (`skipDetails`) are **$0.99 per 1,000**.

| Отели / Hotels | Полная карточка / Full hotel | Только выдача / Results only |
|---|---|---|
| 10 | $0.04 | $0.01 |
| 100 | $0.40 | $0.10 |
| 1 000 | $3.99 | $0.99 |

На платных тарифах Apify цена за отель снижается до $3.49 за 1 000. Даты, фильтры и сортировка не стоят ничего дополнительно.

On paid Apify plans the hotel price drops to $3.49 per 1,000. Dates, filters, and sorting cost nothing extra.

Бесплатный тариф: 500 отелей за всё время, до 50 за запуск. / Free tier: 500 hotels lifetime, up to 50 per run.

### Интеграции и расписание (Integrations and scheduling)

Данные не обязаны оставаться в Apify: подключите **Google Sheets**, **Make**, **Zapier**, **Slack** или свой вебхук, и каждая новая выгрузка уйдёт туда автоматически.

The data does not have to stay in Apify: connect **Google Sheets**, **Make**, **Zapier**, **Slack**, or your own webhook, and every new export goes there automatically.

- **Мониторинг цен** — запуск раз в сутки со ссылками на 10-20 отелей конкурентов и фиксированными датами. Так вы видите, кто и когда меняет цену. / **Rate monitoring** — a daily run with links to 10-20 competitor hotels and fixed dates, so you see who moves price and when.
- **Сетка дат** — одна сохранённая ссылка на поиск и по запуску на каждые выходные вперёд. / **Date grid** — one saved search link and a run per upcoming weekend.
- **Обновление каталога** — раз в неделю по городу с `skipDetails: true`, чтобы дёшево ловить новые отели. / **Catalog refresh** — weekly per city with `skipDetails: true`, to catch new hotels cheaply.

Как запустить парсер и поставить его на расписание (официальные видео Apify) / How to run the scraper and put it on a schedule (official Apify videos):

https://www.youtube.com/watch?v=1OW8gOqlZbY

https://www.youtube.com/watch?v=1jI7WcVQmwM

### FAQ

**Что такое Ozon Travel (Озон Трэвел)? / What is Ozon Travel?**
Ozon Travel is the travel arm of Ozon (Озон), one of Russia's largest online marketplaces. It sells hotel stays, flights, and rail tickets at `travel.ozon.ru`, which is the same platform as `ozon.ru`. This actor covers its hotel side: search results, the hotel card, room types, and rates.

**Есть ли у Ozon Travel открытый API? / Does Ozon Travel have a public API?**
There is no public API for hotel search or hotel cards, so a third-party tool is the only way to get this data as structured JSON. This actor gives you what an API would: one input, one dataset, the same fields on every row, and export to JSON, CSV, or Excel.

**Сколько отелей можно собрать за один запуск? / How many hotels can I scrape in one run?**
As many as the destination has. Pagination runs to the end of the results rather than stopping at the first page, so a whole city is a normal run. Set `maxResults: 0` for everything, or a number to cap it.

**Насколько свежие данные? / How fresh is the data?**
Every run reads the live pages, so prices, availability, and ratings are what the site shows at that moment. Nothing is cached between runs.

**Можно получить цены на конкретные даты? / Can I get rates for specific dates?**
Yes. Set `checkIn` and `checkOut` and each room's `tariffs` carry the real price for that stay, its meal plan, cancellation terms, and payment terms, plus `nights` on the row.

**Почему в результатах с датами нет поля `priceFrom`? / Why do my dated results have no `priceFrom`?**
For a date range the price of a stay lives on the hotel itself, in `rooms[].tariffs[]`, not on the search card. Leave `skipDetails` off and every hotel arrives with its rates. With `skipDetails` on, a dated run gives you which hotels are available, without prices.

**Чем отличаются строки `hotel` и `hotelTile`? / What is the difference between the two row types?**
`hotel` is the full card: rooms, rates, amenities, description, gallery, price calendar. `hotelTile` is the search result only, which is what `skipDetails` produces. Both have the same 30 fields, so the extra ones simply arrive empty on a tile.

**Как получить отзывы гостей? / How do I get the guest reviews?**
Use [Ozon Travel Hotel Reviews Scraper](https://apify.com/zen-studio/ozon-travel-hotel-reviews-scraper). Feed the `hotelUrl` from this actor's output straight into its `urls` input; the two chain without any editing.

**Можно ли вставить свою ссылку вместо города? / Can I paste my own link instead of picking a destination?**
Yes, and it is the way to reach anything outside the 402 listed destinations. Search links, collection links, and single hotel links all work, mixed freely in one run.

**Есть ли фото и видео? / Are photos and videos included?**
Yes. `images` holds the search-card photos and `gallery` holds the hotel's full media, over a hundred items on a large property, with video entries carrying a preview URL.

**Работает ли фильтр питания вместе с датами? / Does the meal filter work together with dates?**
Meal and bed filters apply to a search without dates. With dates they are skipped and the run says so, because each rate in the results states its own meal plan anyway.

**В каких форматах можно выгрузить данные? / How do I export the data?**
JSON, CSV, Excel, XML, or HTML from the run's Storage tab, or through the Apify API. JSON keeps the nested `rooms`, `tariffs`, and `gallery` structures intact; CSV flattens them.

**Законно ли парсить данные об отелях Ozon Travel? / Is it legal to scrape Ozon Travel hotel data?**
The actor reads only publicly visible pages, nothing behind a login. Hotel names, rates, and amenities are business data rather than personal data. You remain responsible for Ozon's terms of use and for data protection law where you operate, including GDPR, CCPA, and Russian Federal Law 152-FZ on Personal Data.

**Что входит в бесплатный тариф? / What is in the free tier?**
500 hotels in total and up to 50 per run, so you can test a real destination before paying for anything.

### Поддержка (Support)

- **Bugs**: Issues tab
- **Features**: Issues tab
- **Нужны другие данные или своя выгрузка? / Need other data, or a custom export?** Open an issue describing what you need.

### Законно ли парсить отели Ozon Travel? (Is it legal?)

Extracts publicly available data. Users must comply with Ozon Travel terms and data protection regulations (GDPR, CCPA, and Russian Federal Law 152-FZ on Personal Data).

### More Zen Studio scrapers for Russian marketplaces and services

**🛒 E-commerce (Маркетплейсы)**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-BiCr8o67m4A7ie2o1-2AuqeGRZM4-ozon-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Ozon (Озон)**
  - [Ozon Product Reviews Scraper](https://apify.com/zen-studio/ozon-product-reviews-scraper)
  - [Ozon Product Scraper](https://apify.com/zen-studio/ozon-scraper-pro)
  - [Ozon Seller Scraper](https://apify.com/zen-studio/ozon-seller-scraper)
  - [Ozon Buybox Scraper](https://apify.com/zen-studio/ozon-buybox-scraper)
  - [Ozon Travel Hotel Reviews Scraper](https://apify.com/zen-studio/ozon-travel-hotel-reviews-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-Tv9w3ikpjLvW0KcYR-STky8VTbvu-wildberries-parser-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Wildberries (Вайлдберриз)**
  - [Wildberries Scraper](https://apify.com/zen-studio/wildberries-scraper)
  - [Wildberries Product Detail Scraper](https://apify.com/zen-studio/wildberries-detail-scraper)
  - [Wildberries Resale Scraper](https://apify.com/zen-studio/wildberries-resale-scraper)
  - [Wildberries Travel Scraper](https://apify.com/zen-studio/wildberries-travel-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-txUbFMvDZI1SnMzJa-9jOYBpMmJc-yandex-market-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Yandex Market (Яндекс Маркет)**
  - [Yandex Market Scraper](https://apify.com/zen-studio/yandex-market-scraper-parser)

**🗺️ Maps & reviews (Карты и отзывы)**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-fRSgBvgbsRB4o7t30-UkaIbH1Yhq-yandex-maps-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Yandex Maps (Яндекс Карты)**
  - [Yandex Maps Scraper](https://apify.com/zen-studio/yandex-maps-scraper)
  - [Yandex Maps Reviews Scraper](https://apify.com/zen-studio/yandex-maps-reviews-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-NBmcHCtkUEhA0DNP3-SrXbUedsVm-2gis-scraper-api-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **2GIS (2ГИС)**
  - [2GIS Places Scraper](https://apify.com/zen-studio/2gis-places-scraper-api)
  - [2GIS Reviews Scraper](https://apify.com/zen-studio/2gis-reviews-scraper)
  - [2GIS Jobs Scraper](https://apify.com/zen-studio/2gis-jobs-scraper)
  - [2GIS Property Scraper](https://apify.com/zen-studio/2gis-property-scraper)

**🏠 Classifieds & real estate (Объявления и недвижимость)**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-4SsKYeXxLtIJLtzHp-86hGQdc67D-avito-listings-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Avito (Авито)**
  - [Avito Listings Scraper](https://apify.com/zen-studio/avito-listings-scraper)
  - [Avito Seller Profile Scraper](https://apify.com/zen-studio/avito-seller-profile-scraper)
  - [Avito Suppliers Directory Scraper](https://apify.com/zen-studio/avito-suppliers-directory-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-XGkKwcU2STh86Tdic-g6vzvWrAHG-yandex-reality-scraper-logo-120.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Yandex Realty (Яндекс Недвижимость)**
  - [Yandex Realty Scraper](https://apify.com/zen-studio/yandex-realty-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-C7iri7mPrAEgVV1UI-esng9Vihs2-domclick-search-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Domclick (Домклик)**
  - [Domclick Search Scraper](https://apify.com/zen-studio/domclick-search-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-oPihlfstoYMoqRdaY-NNwRZ8J527-russian-apartment-valuation-api-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Оценка недвижимости (Property valuation)**
  - [Russian Apartment Valuation](https://apify.com/zen-studio/russian-apartment-valuation-api-ppe)

**🔍 Search (Поиск)**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-Xwfe51BeGXC5iigRL-1AXNaRarjI-yandex-search-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Yandex Search (Яндекс Поиск)**
  - [Yandex Search Scraper](https://apify.com/zen-studio/yandex-search-engine-scraper)

***

*Отели Ozon Travel с номерами, тарифами и наличием мест, структурированным JSON. / Ozon Travel hotels with rooms, rates, and availability, as structured JSON.*

# Actor input Schema

## `destination` (type: `string`):

Начните печатать, чтобы найти город в списке.<br>Start typing to find a city in the list.

## `urls` (type: `array`):

Ссылка на поиск, подборку или конкретный отель — по одной на строку.<br>A search link, a collection link, or a single hotel — one per line.<br>Ссылка используется как есть: её даты, фильтры и сортировка важнее полей ниже.<br>A link is used exactly as pasted: its own dates, filters and sorting win over the fields below.

## `checkIn` (type: `string`):

Дата в формате <code>ГГГГ-ММ-ДД</code>. С датами вы получаете реальные свободные номера и цены за проживание.<br>Date as <code>YYYY-MM-DD</code>. With dates you get the rooms actually available and what the stay costs.

## `checkOut` (type: `string`):

Указывайте вместе с датой заезда.<br>Set together with the check-in date.

## `adults` (type: `integer`):

Сколько взрослых гостей. Учитывается только вместе с датами.<br>How many adult guests. Only matters together with dates.

## `maxResults` (type: `integer`):

Сколько отелей на каждый город и каждую ссылку. <code>0</code> = все найденные.<br>How many hotels per destination and per link. <code>0</code> = every hotel found.

## `skipDetails` (type: `boolean`):

Быстрее и дешевле, но без номеров, тарифов, удобств, описания, фото-галереи и календаря цен. С датами карточки выдачи идут без цен, поэтому для цен на проживание оставьте выключенным.<br>Faster and cheaper, but no rooms, rates, amenities, description, photo gallery or price calendar. With dates, search cards carry no prices at all, so leave this off if you want stay prices.

## `sorting` (type: `string`):

Что показать первым. Вместе с лимитом определяет выборку.<br>What comes first. Combined with the limit, it decides the sample.

## `minRating` (type: `string`):

Минимальная оценка гостей.<br>Minimum guest rating.

## `stars` (type: `array`):

Можно выбрать несколько.<br>Pick as many as you like.

## `placementType` (type: `array`):

Можно выбрать несколько.<br>Pick as many as you like.

## `mealType` (type: `array`):

Можно выбрать несколько. Работает для поиска без дат: если указаны даты, питание каждого тарифа видно в результатах.<br>Pick as many as you like. Works for a search without dates — with dates, each rate in the results states its own meal plan.

## `amenities` (type: `array`):

Можно выбрать несколько.<br>Pick as many as you like.

## Actor input object example

```json
{
  "destination": "Москва",
  "urls": [
    "https://www.ozon.ru/travel/hotels/product/cosmos-moscow-vdnkh-hotel-612653164/"
  ],
  "adults": 2,
  "maxResults": 100,
  "skipDetails": false,
  "sorting": "popular"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "destination": "Москва",
    "urls": [],
    "adults": 2,
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/ozon-travel-hotel-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "destination": "Москва",
    "urls": [],
    "adults": 2,
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/ozon-travel-hotel-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "destination": "Москва",
  "urls": [],
  "adults": 2,
  "maxResults": 100
}' |
apify call zen-studio/ozon-travel-hotel-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zen-studio/ozon-travel-hotel-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/JXjWMSacJu36ODZGq/builds/GsGEICUkZWVbSz5Ew/openapi.json
