Ostrovok Hotels Search Scraper avatar

Ostrovok Hotels Search Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Ostrovok Hotels Search Scraper

Ostrovok Hotels Search Scraper

Scrape hotel search results from Ostrovok.ru — Russia's leading booking platform. Collect names, ratings, prices, room groups, geo-data, and 35+ fields per property. Perfect for travel analysts, price monitors, and OTA researchers.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Stealth mode

Stealth mode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Ostrovok.ru Hotel Search Scraper: Extract Hotel Listings & Rates


What Is Ostrovok.ru?

Ostrovok.ru is one of Russia's largest online travel agencies (OTAs), offering hotel and accommodation bookings across Russia and the CIS region. Its search results pages aggregate rich property data including pricing, ratings, amenities, and availability — making it a valuable source for competitive analysis, market research, and travel tech applications.

Manually collecting this data across hundreds of search pages is impractical. The Ostrovok.ru Hotel Search Scraper automates extraction from search result URLs, returning structured records ready for analysis.


Overview

The Ostrovok Hotel Scraper is built for anyone working with Russian hospitality market data:

  • Travel analysts monitoring hotel supply and pricing by city or region
  • OTA developers aggregating inventory data from Russian platforms
  • Revenue managers benchmarking competitors' rates and star ratings
  • Researchers studying accommodation density, metro proximity, and geo-distribution

The scraper handles paginated search URLs, respects item limits, and continues gracefully through URL failures — making it reliable for large-scale runs.


Input Format

The scraper accepts a simple JSON configuration:

{
"ignore_url_failures": true,
"max_items_per_url": 200,
"urls": [
"https://ostrovok.ru/hotel/russia/moscow/?q=2395&dates=30.05.2026-31.05.2026&guests=2&search=yes&page=2"
]
}

Field Descriptions

FieldTypeDescription
urlsarray of stringsSearch result page URLs from Ostrovok.ru. Each URL should be a hotel listing/search page. You can add multiple URLs one by one or paste a bulk list. Example format includes destination, dates, guest count, and page number as query parameters.
max_items_per_urlintegerMaximum number of hotel records to extract per URL. Default: 20. Set higher (e.g., 200) for full-page collection.
ignore_url_failuresbooleanIf true, the scraper continues running when a URL fails instead of stopping the entire run. Recommended: true for multi-URL batches.

Tip: To collect multiple pages, add each paginated URL separately (e.g., &page=1, &page=2, ...). Include your desired check-in/check-out dates and guest count directly in the URL as Ostrovok encodes these into the search query.


Output Format

Sample Record

{
"ostrovok_id": 0,
"city": "Moscow",
"address": "26A, 3rd Yamskogo Polya St., Moscow",
"country": "Russia",
"geoblock_v2": {
"pois_nearby": [
{
"region_id": 965826134
},
{
"region_id": 965829607
},
{
"region_id": 965824124
},
{
"region_id": 965826105
},
{
"region_id": 965833530
},
{
"region_id": 6001934
},
{
"region_id": 965826250
},
{
"region_id": 965824697
},
{
"region_id": 965879047
},
{
"region_id": 965833532
},
{
"region_id": 965822744
},
{
"region_id": 965848857
},
{
"region_id": 965845988
},
{
"region_id": 965845972
}
],
"neighbourhood_serp_filters": [
{
"region_id": 6297386
},
{
"region_id": 965836214
}
]
},
"images": [
{
"tmpl": "https://cdn.worldota.net/t/{size}/extranet/60/55/605524622d640133c9fd003bf25395f5253db91b.jpeg",
"relative_path": "/t/{size}/extranet/60/55/605524622d640133c9fd003bf25395f5253db91b.jpeg",
"height": 2000,
"width": 3000
},
{
"tmpl": "https://cdn.worldota.net/t/{size}/extranet/6d/65/6d657ef408c80c659c7a971efa8e255a2307f8dc.jpeg",
"relative_path": "/t/{size}/extranet/6d/65/6d657ef408c80c659c7a971efa8e255a2307f8dc.jpeg",
"height": 2000,
"width": 3000
},
{
"tmpl": "https://cdn.worldota.net/t/{size}/extranet/6e/69/6e6970571b25dd79adc230c411ce83d72a083eda.jpeg",
"relative_path": "/t/{size}/extranet/6e/69/6e6970571b25dd79adc230c411ce83d72a083eda.jpeg",
"height": 2000,
"width": 3000
},
{
"tmpl": "https://cdn.worldota.net/t/{size}/extranet/ff/18/ff18b7bdbc1692ba9abcea344d1f3b65f9fd99e0.JPEG",
"relative_path": "/t/{size}/extranet/ff/18/ff18b7bdbc1692ba9abcea344d1f3b65f9fd99e0.JPEG",
"height": 4942,
"width": 4942
},
{
"tmpl": "https://cdn.worldota.net/t/{size}/extranet/5e/07/5e0798ba4baa5ebe355eb0db3015a2bc68a6483e.JPEG",
"relative_path": "/t/{size}/extranet/5e/07/5e0798ba4baa5ebe355eb0db3015a2bc68a6483e.JPEG",
"height": 1335,
"width": 2000
},
{
"tmpl": "https://cdn.worldota.net/t/{size}/extranet/8c/37/8c37a81303a51352d7c109744acb8993f039b675.JPEG",
"relative_path": "/t/{size}/extranet/8c/37/8c37a81303a51352d7c109744acb8993f039b675.JPEG",
"height": 1335,
"width": 2000
},
{
"tmpl": "https://cdn.worldota.net/t/{size}/extranet/56/ba/56ba74273ee76ad8cc2b1733ff4d356b2a806702.JPEG",
"relative_path": "/t/{size}/extranet/56/ba/56ba74273ee76ad8cc2b1733ff4d356b2a806702.JPEG",
"height": 1333,
"width": 2000
},
{
"tmpl": "https://cdn.worldota.net/t/{size}/extranet/0e/43/0e43e553b444c1d8aa7befd867ad0441b49b6272.jpeg",
"relative_path": "/t/{size}/extranet/0e/43/0e43e553b444c1d8aa7befd867ad0441b49b6272.jpeg",
"height": 2667,
"width": 4000
},
{
"tmpl": "https://cdn.worldota.net/t/{size}/extranet/7c/b1/7cb170bb6eb6ad8eeee6ee8d39e40a7770e00419.jpeg",
"relative_path": "/t/{size}/extranet/7c/b1/7cb170bb6eb6ad8eeee6ee8d39e40a7770e00419.jpeg",
"height": 1250,
"width": 2000
},
{
"tmpl": "https://cdn.worldota.net/t/{size}/extranet/81/25/81250077a745db4d1831f3e9b9246ac7a948c905.JPEG",
"relative_path": "/t/{size}/extranet/81/25/81250077a745db4d1831f3e9b9246ac7a948c905.JPEG",
"height": 1335,
"width": 2000
}
],
"is_priority": null,
"kind": "Hotel",
"lang": "en",
"latitude": 55.78303,
"longitude": 37.579353,
"master_id": 7858838,
"name": "Radisson Blu Belorusskaya Moskva Hotel",
"name_en": "Radisson Blu Belorusskaya Moskva Hotel",
"nearest_subways": [
{
"distance": 646,
"name": "Belorusskaya (Koltsevaya)",
"region_id": 965826134
},
{
"distance": 665,
"name": "Belorusskaya (Zamoskvoretskaya)",
"region_id": 965829607
},
{
"distance": 1224,
"name": "Mendeleyevskaya",
"region_id": 965826250
}
],
"awards": [],
"otachain_id": 18,
"otahotel_id": "redisson_belorusskaia_moskva",
"rating": {
"count": 601,
"total": 8.7
},
"region_catalog_slug": "russia/moscow",
"region_id": 2395,
"region_name": "Moscow",
"room_groups": [
{
"rg_hash": "3202",
"room_group_id": 11,
"name_struct": {
"main_name": "Standard room"
}
},
{
"rg_hash": "3202302",
"room_group_id": 90,
"name_struct": {
"bedding_type": "full double bed",
"main_name": "Standard Double room"
}
},
{
"rg_hash": "3202402",
"room_group_id": 91,
"name_struct": {
"bedding_type": "twin beds",
"main_name": "Standard Double room"
}
},
{
"rg_hash": "3502",
"room_group_id": 12,
"name_struct": {
"main_name": "Superior room"
}
},
{
"rg_hash": "35020000005",
"room_group_id": 18395748,
"name_struct": {
"main_name": "Superior room with city view"
}
},
{
"rg_hash": "3502302",
"room_group_id": 123,
"name_struct": {
"bedding_type": "full double bed",
"main_name": "Superior Double room"
}
},
{
"rg_hash": "35023020005",
"room_group_id": 20591204,
"name_struct": {
"bedding_type": "full double bed",
"main_name": "Superior Double room with city view"
}
},
{
"rg_hash": "3502402",
"room_group_id": 124,
"name_struct": {
"bedding_type": "twin beds",
"main_name": "Superior Double room"
}
},
{
"rg_hash": "3A02",
"room_group_id": 13,
"name_struct": {
"main_name": "Premium room"
}
},
{
"rg_hash": "3A020000005",
"room_group_id": 18395940,
"name_struct": {
"main_name": "Premium room with city view"
}
},
{
"rg_hash": "3A02302",
"room_group_id": 159,
"name_struct": {
"bedding_type": "full double bed",
"main_name": "Premium Double room"
}
},
{
"rg_hash": "3A023020005",
"room_group_id": 20591396,
"name_struct": {
"bedding_type": "full double bed",
"main_name": "Premium Double room with city view"
}
},
{
"rg_hash": "3A02402",
"room_group_id": 160,
"name_struct": {
"bedding_type": "twin beds",
"main_name": "Premium Double room"
}
},
{
"rg_hash": "3A024020005",
"room_group_id": 20624164,
"name_struct": {
"bedding_type": "twin beds",
"main_name": "Premium Double room with city view"
}
},
{
"rg_hash": "4002",
"room_group_id": 33,
"name_struct": {
"main_name": "Junior Suite"
}
},
{
"rg_hash": "5002",
"room_group_id": 32,
"name_struct": {
"main_name": "Suite"
}
},
{
"rg_hash": "5802",
"room_group_id": 66,
"name_struct": {
"main_name": "Executive Suite"
}
},
{
"rg_hash": "5802302",
"room_group_id": 202,
"name_struct": {
"bedding_type": "full double bed",
"main_name": "Executive Double Suite"
}
},
{
"rg_hash": "5902",
"room_group_id": 38,
"name_struct": {
"main_name": "Presidential Suite"
}
}
],
"rooms_number": 264,
"serp_filters": [
"has_internet",
"has_kids",
"has_fitness",
"has_meal",
"has_disabled_support",
"has_busyness",
"has_spa",
"air-conditioning",
"has_pets",
"has_smoking"
],
"special_flags": [
4,
16
],
"star_rating": 40,
"ta_rating": {
"num_reviews": 0,
"rating": 0
},
"type": null,
"region": {
"locative_where": "Moscow",
"locative_where_en": "Moscow",
"is_beach_region": false,
"is_ski_region": false
},
"search_region_center_distance": 3.8547397,
"metro_nearby": true,
"rating_total": 8.7,
"is_guru_hotel": true,
"has_secure_deposit": false,
"is_superhost": false,
"rates": [
{
"hash": "sr-019e6871-b1db-7d1c-b4cf-02c5c69e69f1",
"shash": "s-4e875335-c9ba-5611-95d3-f393a5a079c1",
"contract": "",
"provider_id": 0,
"hotel_id": "redisson_belorusskaia_moskva",
"occupancy": 2,
"loyalty": {
"types": [
{
"name": "ostrovok_gurupoints_rub",
"amount_total": "0",
"currency_type": "dreams",
"currency_code": "RUB",
"spend_enabled": false,
"spend_disabled_reason": "postpay"
}
]
},
"payment_options": {
"allowed_payment_types": [
{
"type": "hotel"
}
],
"payment_types": [
{
"type": "hotel",
"is_need_cvc": true,
"is_need_credit_card_data": true,
"is_need_single_use_card": false,
"amount": "8500.00",
"currency_code": "RUB",
"is_enabled": true,
"is_enabled_reason": "b2c_default",
"average_show_price_per_day": "8500.00",
"show_amount": "8500.00",
"show_currency_code": "RUB",
"payment_gate_type": "",
"pay_before": null,
"perks": {},
"cancellation_penalties": [
{
"amount_charge": 0,
"amount_show": 0
},
{
"amount_charge": 8500,
"amount_show": 8500
}
],
"public_tracking": {
"amount_rub": 8500,
"amount_usd": 118.74,
"amount_eur": 101.97
}
}
]
},
"cancellation_info": {
"policies": [
{
"start_at": null,
"end_at": "2026-05-29T21:00:00Z",
"penalty": {
"amount": "0.00",
"currency_code": "RUB",
"currency_rate_to_rub": "1"
}
},
{
"start_at": "2026-05-29T21:00:00Z",
"end_at": null,
"penalty": {
"amount": "8500.00",
"currency_code": "RUB",
"percent": "100.00",
"currency_rate_to_rub": "1"
}
}
],
"free_cancellation_before": "2026-05-29T21:00:00Z"
},
"no_show": {
"penalty": {
"amount": "8500.00",
"currency_code": "RUB",
"night_count": 1,
"percent": "100.00",
"currency_rate_to_rub": "1"
},
"from_time": "12:00:00",
"b2b_recommended_penalty": "0.00"
},
"sort_scores": {
"rate": 0,
"hotel": 0,
"avail_score": 0,
"good_hotel": false
},
"rooms": [
{
"room_name": "Standard room",
"allotment": 34,
"meal_data": {
"meals": [
{
"value": "nomeal",
"has_breakfast": false,
"no_child_meal": true
}
]
},
"room_data_trans": {
"en": {
"main_room_type": "Standard room",
"main_name": "Standard room",
"bathroom": "",
"bedding_type": "",
"misc_room_type": "",
"beds": null
}
},
"bedding_data": [
"nobedding"
],
"amenities_data": [
"non-smoking"
],
"rg_hash": "3202",
"meal": [
"nomeal"
],
"serp_filters": [
"has_bathroom",
"has_internet"
],
"size": 30
}
],
"room_name": "Standard room",
"allotment": 34,
"meal_data": {
"meals": [
{
"value": "nomeal",
"has_breakfast": false,
"no_child_meal": true
}
]
},
"room_data_trans": {
"en": {
"main_room_type": "Standard room",
"main_name": "Standard room",
"bathroom": "",
"bedding_type": "",
"misc_room_type": "",
"beds": null
}
},
"bedding_data": [
"nobedding"
],
"meal": [
"nomeal"
],
"serp_filters": [
"has_bathroom",
"has_internet"
],
"trans": {
"en": {
"taxes": []
}
}
}
],
"marketing_badges": [
{
"rate_hash": "sr-019e6871-b1db-7d1c-b4cf-02c5c69e69f1",
"discount": {
"should_use": true,
"percent": 10,
"amount": -850,
"payment_type": "hotel",
"base_price": {
"amount": 8500,
"currency": "RUB"
},
"discount_price": {
"amount": 7650,
"currency": "RUB"
},
"discount_taxes": null
}
}
],
"from_url": "https://ostrovok.ru/hotel/russia/moscow/?q=2395&dates=30.05.2026-31.05.2026&guests=2&search=yes&page=2"
}

Each hotel record contains 35+ fields organized across several categories:

Identity & Classification

FieldMeaning
Ostrovok IDUnique internal identifier for the property on Ostrovok
Master IDParent/master property ID (used for hotel groups or duplicates)
OTA Hotel IDThe hotel's ID in the OTA system
OTA Chain IDChain identifier if the property belongs to a hotel group
NameHotel name in the local language (Russian)
Name ENEnglish transliteration or translation of the hotel name
KindProperty classification (e.g., hotel, hostel, apartment)
TypeAccommodation type descriptor
Star RatingOfficial star rating (1–5)
Is PriorityWhether the property has priority placement in search results
Is Guru HotelOstrovok's "Guru" quality badge flag
Is SuperhostSuperhost status flag (applicable for some property types)

Location & Geography

FieldMeaning
CityCity where the property is located
AddressFull street address
CountryCountry of the property
LatitudeGeographic latitude coordinate
LongitudeGeographic longitude coordinate
RegionRegion object with metadata
Region IDInternal region identifier
Region NameName of the region/district
Region Catalog SlugURL-friendly region identifier
Nearest SubwaysList of nearby metro/subway stations with distance
Metro NearbyBoolean or summary flag for metro accessibility
Search Region Center DistanceDistance from the center of the searched region (useful for sorting by centrality)
Displayed LocationHuman-readable location label shown in search results
Geoblock V2Geo-restriction metadata for the property

Ratings & Reviews

FieldMeaning
RatingOstrovok guest rating score
Rating TotalTotal number of reviews contributing to the rating
TA RatingTripAdvisor rating, if available
AwardsAny awards or recognition the property has received

Pricing & Availability

FieldMeaning
RatesAvailable rate plans including price, meal plan, cancellation policy, and room type
Room GroupsGrouped room types available for the property
Rooms NumberTotal number of rooms in the property
Has Secure DepositWhether the property requires a security deposit

Media & Presentation

FieldMeaning
ImagesArray of property image URLs
LanguageLanguage of the listing content
Marketing BadgesPromotional badges shown in search (e.g., "Great Deal", "Popular")
Special FlagsInternal flags for special conditions or promotions
SERP FiltersFilter tags associated with the property in search results

How to Use

  1. Build your search URL — Go to Ostrovok.ru, search for your target city/dates/guests, then copy the results page URL.
  2. Configure input — Paste one or more URLs into the urls array. Adjust max_items_per_url based on how many results you expect per page (typically up to 20–30 per page on Ostrovok).
  3. Enable failure tolerance — Set ignore_url_failures: true for multi-URL runs.
  4. Run and export — Start the scraper and download results as JSON or CSV.

Best practices:

  • Include explicit pagination in URLs (&page=1, &page=2) rather than relying on automatic pagination.
  • Always include dates and guest count in the URL — Ostrovok requires these parameters to return rate data.
  • For city-wide collection, vary the q parameter across neighborhoods or districts.

Common issues:

  • No rates returned → check that dates and guest count are present in the URL.
  • Empty results → verify the URL returns results in a regular browser session first.

Use Cases & Business Value

  • Price monitoring: Track nightly rates across Moscow, St. Petersburg, or other cities over time
  • Market sizing: Count active hotel inventory by star rating, district, or type
  • Competitive benchmarking: Compare your property's rating and pricing against nearby alternatives
  • Travel app development: Populate accommodation databases with structured Russian OTA data
  • Academic research: Study urban accommodation distribution and metro accessibility patterns

Conclusion

The Ostrovok.ru Hotel Search Scraper turns Russia's leading booking platform into a structured data source — no manual browsing, no copy-pasting. With 35+ fields covering location, pricing, ratings, and availability, it delivers the depth needed for serious travel market analysis. Configure your search URLs, run the scraper, and get actionable hotel data in minutes.