# Ostrovok Hotels Scraper: Отели Островок (`getascraper/ostrovok-hotels-scraper`) Actor

Scrape hotel prices, ratings, and availability from Ostrovok (Островок) by city and dates. Search by city name, filter by price, stars, rating, and free cancellation, then export normalized hotel data with per-night rates in RUB, USD, and EUR.

- **URL**: https://apify.com/getascraper/ostrovok-hotels-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Travel, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.32 / 1,000 hotel rows

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Ostrovok Hotels Scraper: Отели Островок

<table width="100%">
<tr>
<td colspan="2" style="padding:14px 18px;background:#EEF4FC;border-top:3px solid #0E5FC0;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-radius:8px 8px 0 0">
<span style="font-size:16px;font-weight:700;color:#1C1917">Every Ostrovok hotel, price, and guest score for any city and date.</span> <span style="font-size:15px;color:#57534E">Search by city name and get normalized hotel rows with per-night rates in roubles, dollars, and euros. Built for travel analysts, revenue managers, and price-comparison sites.</span>
</td>
</tr>
<tr>
<td colspan="2" style="padding:10px 14px;background:#0A4A96;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">OSTROVOK SUITE</span>
<span style="color:#CFE0F5;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Hotel rates and guest reviews from Russia's largest hotel booking site</span>
</td>
</tr>
<tr>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:50%;background:#EEF4FC;border-radius:0 0 0 8px">
<span style="white-space:nowrap">🏨 &nbsp;<a href="https://apify.com/getascraper/ostrovok-hotels-scraper" style="color:#0E5FC0;text-decoration:none;font-weight:700;font-size:13px">Ostrovok&nbsp;Hotels&nbsp;Scraper</a></span><br>
<span style="color:#0E5FC0;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:50%;background:#FFFFFF;border-radius:0 0 8px 0">
<span style="white-space:nowrap">💬 &nbsp;<a href="https://apify.com/getascraper/ostrovok-reviews-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Ostrovok&nbsp;Reviews&nbsp;Scraper</a></span><br>
<span style="color:#57534E;font-size:11px">Full guest review text and scores</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#EEF4FC;border:1px solid #C5D9F1;border-top:4px solid #0E5FC0;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Type a city name, get every bookable hotel with live prices</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Pull hotel rates, guest ratings, star levels, and availability from Ostrovok (Островок) for any Russian or CIS city and any date range, without building a single search URL by hand.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5D9F1;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#0A4A96">🏙️ Search by city</span><br>
<span style="font-size:12px;color:#57534E">Type "moscow" or "sochi". No URL building, no region codes to look up</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5D9F1;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#0A4A96">💱 Three currencies</span><br>
<span style="font-size:12px;color:#57534E">Every hotel priced in roubles, dollars, and euros on the same row</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5D9F1;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#0A4A96">🎚️ Real filters</span><br>
<span style="font-size:12px;color:#57534E">Narrow by price, star level, guest rating, and free cancellation</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5D9F1;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#0A4A96">📍 Metro distances</span><br>
<span style="font-size:12px;color:#57534E">Coordinates, distance from centre, and the nearest metro in metres</span>
</td>
</tr>
</table>

Ostrovok (Островок) is Russia's largest hotel booking platform, and its search results
carry pricing that changes by the hour. This Actor turns any city and date range into one
clean table: what is bookable, what it costs tonight, and how guests rate it.

### 🔍 What does Ostrovok Hotels Scraper do?

It searches [Ostrovok](https://ostrovok.ru) for a city and date range you pick, then
returns one row per hotel with live rates, guest scores, star levels, location, and
photos. You can run it on demand or schedule it to track how prices move over time.

<table width="100%"><tr>
<td style="padding:12px 18px;background:#EEF4FC;border-left:4px solid #0E5FC0">
<span style="font-size:15px;color:#1C1917">&#9889; <b>No login, no API key, and no URL building.</b> Enter a city name and this Actor works out the rest, so a first run takes about ten seconds to set up.</span>
</td>
</tr></table>

### 💡 Why use it

* **I run pricing for a hotel group** and need to see what competing properties in my city charge for the same dates, refreshed every morning instead of checked by hand.
* **I build a travel price-comparison site** and want Ostrovok rates alongside my other sources, in one normalized shape I can merge without writing a parser.
* **I am a travel analyst** studying how rates in Moscow or Sochi move across a season, so I schedule this weekly and let the rows pile up.
* **I am a market researcher** sizing hotel supply in a region, and I need star levels, guest ratings, and locations for every property in one export.

### 🚀 How to use it

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#EEF4FC;border:1px solid #C5D9F1;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#0E5FC0;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Name a city</span><br>
<span style="font-size:12px;color:#57534E">Type a city such as moscow or sochi. Pasting a search URL works too.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EEF4FC;border:1px solid #C5D9F1;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#0E5FC0;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Pick dates and filters</span><br>
<span style="font-size:12px;color:#57534E">Set check-in, check-out, and guests, or leave them blank for a 2-night stay.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EEF4FC;border:1px solid #C5D9F1;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#0E5FC0;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Export the table</span><br>
<span style="font-size:12px;color:#57534E">One row per hotel, ready as JSON, CSV, or Excel.</span>
</td>
</tr>
</table>

Leave every filter empty to pull the full list of bookable hotels for your dates.

### 📋 Input

| Field | Type | Required | Description |
|---|---|---|---|
| `city` | string | No | City to search, such as `moscow` or `sochi`. A catalog slug like `russia/moscow` also works. |
| `checkIn` | string | No | Check-in date as `YYYY-MM-DD`. Defaults to tomorrow. |
| `checkOut` | string | No | Check-out date as `YYYY-MM-DD`. Defaults to a 2-night stay. |
| `adults` | integer | No | Adult guests per room. Defaults to 2. |
| `childrenAges` | array of integers | No | Ages of children staying, such as `[5, 12]`. |
| `currency` | enum | No | `RUB`, `USD`, `EUR`, `KZT`, or `GBP`. Defaults to `RUB`. |
| `language` | enum | No | `ru` or `en` for hotel and room names. Defaults to `ru`. |
| `minPrice` | integer | No | Only hotels at or above this total stay price. |
| `maxPrice` | integer | No | Only hotels at or below this total stay price. |
| `minRating` | integer | No | Only hotels rated at or above this score, out of 10. |
| `stars` | array of integers | No | Only these star levels, such as `[4, 5]`. |
| `freeCancellation` | boolean | No | Only hotels offering a free-cancellation rate. |
| `maxItems` | integer | No | Maximum hotels to return. Defaults to 100. |
| `includeRawData` | boolean | No | Attach the original unprocessed hotel data under `raw`. |
| `regionId` | integer | No | Ostrovok's internal region ID, which skips the city lookup. |
| `urls` | array of URLs | No | Ostrovok search URLs to use instead of a city name. |
| `proxyConfiguration` | object | No | Proxy settings. The default works for most runs. |

### 📊 Data table

| Field | Type | Description |
|---|---|---|
| `hotelId` | string | Ostrovok's hotel identifier, reusable in the Reviews Scraper |
| `name` / `nameEn` | string | Hotel name in the chosen language and in English |
| `url` | string | Direct link to the hotel page |
| `starRating` | number | Star level from 1 to 5 |
| `rating` | number | Guest rating out of 10 |
| `ratingCount` | number | How many guest reviews that rating is based on |
| `minPrice` | number | Cheapest total price for the whole stay |
| `minPricePerNight` | number | Cheapest nightly price |
| `currency` | string | Currency of the price fields |
| `priceRub` / `priceUsd` / `priceEur` | number | The same price in roubles, dollars, and euros |
| `freeCancellation` | boolean | Whether any rate can be cancelled free of charge |
| `hasBreakfast` | boolean | Whether any rate includes breakfast |
| `rates` | array | Every rate offer: room name, price, meal, and cancellation terms |
| `ratesCount` | number | How many rate offers were found |
| `address` / `city` / `country` | string | Where the hotel is |
| `latitude` / `longitude` | number | Coordinates for mapping |
| `distanceFromCenterKm` | number | Distance from the city centre |
| `nearestSubway` | string | Closest metro station |
| `nearestSubwayDistanceM` | number | Walking distance to that station in metres |
| `roomsNumber` | number | Total rooms in the property |
| `isSuperhost` / `isGuruHotel` | boolean | Ostrovok quality markers |
| `mainImage` / `images` | string / array | Ready-to-open photo links |
| `checkIn` / `checkOut` | string | The dates these prices apply to |
| `scrapedAt` | string | When the row was captured |

### 💰 Pricing

Pricing is pay per result: you are billed for the hotel rows actually saved to your
dataset. Empty runs cost nothing. There are no subscriptions or fixed monthly fees.

### ⭐ Enjoying Ostrovok Hotels Scraper?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#EEF4FC;border:1px solid #C5D9F1;border-left:5px solid #0E5FC0;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">If this replaced a morning of checking competitor rates by hand, a rating helps a lot.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other revenue managers and travel analysts find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#0E5FC0;border:1px solid #C5D9F1;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/ostrovok-hotels-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### 💡 Tips

* Leave `checkIn` and `checkOut` blank while testing. You get a 2-night stay starting tomorrow, which always has live rates.
* Prices move through the day. Schedule the same city and dates each morning to build a price history.
* Set `language` to `en` if you want English hotel names rather than Russian ones.
* Feed the `hotelId` values straight into the [Ostrovok Reviews Scraper](https://apify.com/getascraper/ostrovok-reviews-scraper) to pull guest reviews for the hotels you found.

### ❓ FAQ

##### Как спарсить цены на отели с Островка?

Enter a city name such as `moscow`, choose your dates, and run the Actor. It returns every
bookable hotel with prices in roubles, dollars, and euros. No login or API key is needed.

##### Нужен ли аккаунт на Ostrovok?

No. Every field this Actor returns is public search data. There is no login, account, or
API key involved.

##### Do I need to build an Ostrovok URL?

No. Type a city name and the Actor resolves the region for you. If you already have a
search URL, you can paste it into `urls` instead.

##### Why do some hotels have no price?

A hotel with no rates for your dates is either fully booked or not bookable then. Change
the dates or widen your filters to see more results.

### 🔗 Other actors

- [Ostrovok Reviews Scraper](https://apify.com/getascraper/ostrovok-reviews-scraper) ↗ - Pulls full guest review text and category scores for any Ostrovok hotel.
- [Yandex Maps Review Monitor](https://apify.com/getascraper/yandex-maps-review-monitor) ↗ - Tracks new Yandex Maps reviews for places you care about.
- [Yandex Eda Scraper](https://apify.com/getascraper/yandex-eda-scraper) ↗ - Extracts restaurant menus and prices from Yandex Eda.
- [Avito Auto Scraper](https://apify.com/getascraper/avito-auto-scraper) ↗ - Collects car listings and prices from Avito.
- [Etagi Property Scraper](https://apify.com/getascraper/etagi-property-scraper) ↗ - Pulls Russian property listings with prices and locations.

# Actor input Schema

## `city` (type: `string`):

City to search, e.g. 'moscow', 'sochi', 'saint-petersburg'. You can also paste a catalog slug like 'russia/moscow'. Leave blank if you supply a region ID or search URLs instead.
## `checkIn` (type: `string`):

Check-in date in YYYY-MM-DD format. Leave blank to use tomorrow.
## `checkOut` (type: `string`):

Check-out date in YYYY-MM-DD format. Leave blank for a 2-night stay.
## `adults` (type: `integer`):

Number of adult guests per room.
## `childrenAges` (type: `array`):

Ages of children staying, for example [5, 12]. Leave empty for adults only.
## `currency` (type: `string`):

Currency for the returned prices.
## `language` (type: `string`):

Language for hotel names and room descriptions.
## `minPrice` (type: `integer`):

Only return hotels at or above this total stay price, in the selected currency.
## `maxPrice` (type: `integer`):

Only return hotels at or below this total stay price, in the selected currency.
## `minRating` (type: `integer`):

Only return hotels rated at or above this score. Ostrovok rates out of 10.
## `stars` (type: `array`):

Only return hotels with these star ratings, for example [4, 5]. Leave empty for any.
## `freeCancellation` (type: `boolean`):

Only return hotels offering at least one free-cancellation rate.
## `maxItems` (type: `integer`):

Maximum number of hotels to return.
## `includeRawData` (type: `boolean`):

Attach Ostrovok's original unprocessed hotel and rate objects under a 'raw' field. Useful if you need a value this Actor does not map yet.
## `regionId` (type: `integer`):

Ostrovok's internal region ID, for example 2395 for Moscow. Skips the city lookup when set.
## `urls` (type: `array`):

Paste Ostrovok search URLs instead of a city name. The region is read from the URL.
## `proxyConfiguration` (type: `object`):

Datacenter proxies (the default) work reliably here and cost far less. Switch to Residential only if a very large run hits rate limits.

## Actor input object example

```json
{
  "city": "moscow",
  "checkIn": "",
  "checkOut": "",
  "adults": 2,
  "childrenAges": [],
  "currency": "RUB",
  "language": "ru",
  "stars": [],
  "freeCancellation": false,
  "maxItems": 100,
  "includeRawData": false,
  "urls": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
````

# 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 = {
    "city": "moscow",
    "checkIn": "",
    "checkOut": "",
    "adults": 2,
    "childrenAges": [],
    "currency": "RUB",
    "language": "ru",
    "stars": [],
    "freeCancellation": false,
    "maxItems": 100,
    "includeRawData": false,
    "urls": [],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/ostrovok-hotels-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 = {
    "city": "moscow",
    "checkIn": "",
    "checkOut": "",
    "adults": 2,
    "childrenAges": [],
    "currency": "RUB",
    "language": "ru",
    "stars": [],
    "freeCancellation": False,
    "maxItems": 100,
    "includeRawData": False,
    "urls": [],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/ostrovok-hotels-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "city": "moscow",
  "checkIn": "",
  "checkOut": "",
  "adults": 2,
  "childrenAges": [],
  "currency": "RUB",
  "language": "ru",
  "stars": [],
  "freeCancellation": false,
  "maxItems": 100,
  "includeRawData": false,
  "urls": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/ostrovok-hotels-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getascraper/ostrovok-hotels-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Ostrovok Hotels Scraper: Отели Островок",
        "description": "Scrape hotel prices, ratings, and availability from Ostrovok (Островок) by city and dates. Search by city name, filter by price, stars, rating, and free cancellation, then export normalized hotel data with per-night rates in RUB, USD, and EUR.",
        "version": "0.1",
        "x-build-id": "BbPojmZcbTXpI2hAM"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getascraper~ostrovok-hotels-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getascraper-ostrovok-hotels-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/getascraper~ostrovok-hotels-scraper/runs": {
            "post": {
                "operationId": "runs-sync-getascraper-ostrovok-hotels-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/getascraper~ostrovok-hotels-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-getascraper-ostrovok-hotels-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "city": {
                        "title": "City or region",
                        "type": "string",
                        "description": "City to search, e.g. 'moscow', 'sochi', 'saint-petersburg'. You can also paste a catalog slug like 'russia/moscow'. Leave blank if you supply a region ID or search URLs instead.",
                        "default": "moscow"
                    },
                    "checkIn": {
                        "title": "Check-in date",
                        "type": "string",
                        "description": "Check-in date in YYYY-MM-DD format. Leave blank to use tomorrow.",
                        "default": ""
                    },
                    "checkOut": {
                        "title": "Check-out date",
                        "type": "string",
                        "description": "Check-out date in YYYY-MM-DD format. Leave blank for a 2-night stay.",
                        "default": ""
                    },
                    "adults": {
                        "title": "Adults",
                        "minimum": 1,
                        "maximum": 6,
                        "type": "integer",
                        "description": "Number of adult guests per room.",
                        "default": 2
                    },
                    "childrenAges": {
                        "title": "Children ages",
                        "type": "array",
                        "description": "Ages of children staying, for example [5, 12]. Leave empty for adults only.",
                        "default": []
                    },
                    "currency": {
                        "title": "Currency",
                        "enum": [
                            "RUB",
                            "USD",
                            "EUR",
                            "KZT",
                            "GBP"
                        ],
                        "type": "string",
                        "description": "Currency for the returned prices.",
                        "default": "RUB"
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "ru",
                            "en"
                        ],
                        "type": "string",
                        "description": "Language for hotel names and room descriptions.",
                        "default": "ru"
                    },
                    "minPrice": {
                        "title": "Minimum price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only return hotels at or above this total stay price, in the selected currency."
                    },
                    "maxPrice": {
                        "title": "Maximum price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only return hotels at or below this total stay price, in the selected currency."
                    },
                    "minRating": {
                        "title": "Minimum guest rating",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Only return hotels rated at or above this score. Ostrovok rates out of 10."
                    },
                    "stars": {
                        "title": "Star ratings",
                        "type": "array",
                        "description": "Only return hotels with these star ratings, for example [4, 5]. Leave empty for any.",
                        "default": []
                    },
                    "freeCancellation": {
                        "title": "Free cancellation only",
                        "type": "boolean",
                        "description": "Only return hotels offering at least one free-cancellation rate.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max hotels",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of hotels to return.",
                        "default": 100
                    },
                    "includeRawData": {
                        "title": "Include raw API data",
                        "type": "boolean",
                        "description": "Attach Ostrovok's original unprocessed hotel and rate objects under a 'raw' field. Useful if you need a value this Actor does not map yet.",
                        "default": false
                    },
                    "regionId": {
                        "title": "Region ID (advanced)",
                        "type": "integer",
                        "description": "Ostrovok's internal region ID, for example 2395 for Moscow. Skips the city lookup when set."
                    },
                    "urls": {
                        "title": "Ostrovok search URLs (optional)",
                        "type": "array",
                        "description": "Paste Ostrovok search URLs instead of a city name. The region is read from the URL.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Datacenter proxies (the default) work reliably here and cost far less. Switch to Residential only if a very large run hits rate limits.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
