Sutochno.ru Scraper at a glance
Sutochno.ru Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes recordid, objectid, title, typetitle and hotelid, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Other
- Region
- Europe
- Pricing
- $2.00 per 1,000 results (Free plan), from $1.50 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 34 options
Scrape Sutochno.ru short-term rentals, apartments and hotels by city, dates, guests or URL. Extract property details, stay prices, availability, ratings, guest reviews, amenities and owner information. Supports listing, hotel and search URLs for rental research and price comparison.
What Sutochno.ru Scraper can do
- Real stay pricing, not brochure rates. Every listing is priced for your exact check-in and check-out dates: per-night rate, stay total, season price rows, long-stay tiers, prepayment and service fee.
- Reviews behind pagination. Guest reviews are collected past the first page (up to your per-listing limit) with ratings, stay dates, party size and text, into a dedicated Reviews tab.
- Detail records, not just cards. House rules, check-in and check-out windows, the full amenity set, owner response stats and the complete photo gallery come off each listing's detail record.
- Availability signals per stay window. Booking availability, rooms left and max guests are read for your dates, so occupancy analytics work out of the box.
- Filters as first-class inputs. Housing types, hotel stars, guest score, instant booking and the site's own sort orders reach the site server-side, not as post-hoc guesses.
- Built for schedules. Incremental mode tracks listings between runs and returns only new or changed ones; resume continues an interrupted run; both are first-class inputs.
Choose what to collect
These inputs let you configure Sutochno.ru Scraper - Rentals, Prices, Availability & Reviews. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | search: walk listing pages for a location with your dates and guests. urls: read the sutochno.ru links you paste (listing pages, hotel pages, search links). |
locationstring | Search mode: a city, region or address the site knows (Russian or Latin both work, e.g. 'Санкт-Петербург', 'Sochi'). The search is scoped to this location. |
checkInstring | Check-in date (YYYY-MM-DD). Prices on the site depend on the stay window, so set both dates to see real prices. Leave both empty to browse without a stay window. |
checkOutstring | Check-out date (YYYY-MM-DD), must be after check-in. If check-in is set and this is empty, one night is assumed. |
guestsAdultsinteger | Number of adult guests the search should fit. |
guestsChildrensarray | Ages of child guests (0-17), e.g. [4, 9]. The site uses ages, not just a count. |
petsboolean | Only listings that accept pets. |
Show 27 more inputs
| Input | What it controls |
|---|---|
sortingsstring | Listing order as the site serves it: relevance (the site's own order), price ascending or price descending. |
maxItemsinteger | Maximum listings collected per run (0 to 100000). 0 means no limit (the walk stops at the natural end of results). |
maxPagesinteger | Maximum result pages walked per scope. 0 (default) walks until results run out; Max items is the only limit that stops a run early. |
housingTypesarray | Restrict to selected housing types (applied by the site itself). Empty = all types. |
starsarray | Restrict to selected hotel star ratings ('none' = unrated hotels). Empty = all. |
minReviewScoresarray | Only listings whose guest score is one of the selected values (the site's own 6-9 score filter). Empty = any. |
bookingNowboolean | Only listings bookable instantly without owner approval. |
priceMininteger | Minimum price per night, RUB. Applied after collection (the site filters price in the browser too), so Max items counts listings before this filter narrows them. |
priceMaxinteger | Maximum price per night, RUB. Applied after collection (see Min price per night). |
urlsarray | URLs mode: listing pages (sutochno.ru/front/searchapp/detail/.sutochno.ru/, sutochno.ru/), hotel pages (sutochno.ru/hotels/, optional ?occupied=from;to), search-app links (term, occupied, guests_adults, sortings, page, is_hotel, id, type), and city or country pages (spb.sutochno.ru/, /hotels, /?page=2, sutochno.ru/armenia). If you add no links, one example of every supported shape is used. In search mode this list is ignored. |
fetchDetailsboolean | Read each listing's detail record: full description, all amenities, house rules, check-in/out rules, owner profile, long-stay price tiers, and the full photo set. |
fetchReviewsboolean | Collect guest reviews for each listing (up to Max reviews per listing) into a nested reviews field. The Reviews output tab lists them one per row. |
maxReviewsinteger | Maximum guest reviews collected per listing (0 to 1000). 0 skips reviews. |
fetchAvailabilityboolean | Price each listing for a stay window: total stay price, per-period season prices, prepayment, service fee, booking availability and rooms left. |
availabilityDaysinteger | Length of the stay window priced per listing (used when Check-in/Check-out are empty): 1-90 nights, default 30. |
resumeFromRunIdstring | Continue a previous unfinished run: listings already collected by that run are skipped. Leave empty for a fresh run. |
changeScopestring | Incremental mode: which fields decide UPDATED. 'All fields' compares every field the run reads for the listing (card, detail, availability and reviews, as far as those are switched on). 'Prices and availability only' compares pricePerNight, priceFull, priceWithoutDiscounts, fullPrice, busyStatus, roomsAvailable, bookingNow, extPrices and seasonPrices, so description, photo or owner edits never produce an UPDATED row. Without fixed Check-in/Check-out dates the availability window moves with the run date, so the window totals (fullPrice, periodNights, prepayment, serviceFee, bonus, seasonPrices) are left out of change detection. |
incrementalModeboolean | For scheduled runs: track listings between runs and return only NEW or CHANGED ones (UNCHANGED rows are suppressed unless Emit unchanged is on). Price, availability and detail changes (see Change scope) drive UPDATED; scrape time, change labels and the order of reviews or photos never do. Cannot be combined with Resume from run ID. |
stateKeystring | Advanced: name of the incremental baseline. Leave empty to derive it from your search scope automatically (recommended). |
emitUnchangedboolean | Incremental mode: also return listings that did not change since the last run (labelled UNCHANGED). |
emitExpiredboolean | Incremental mode: label listings that disappeared from the results since the last complete run as EXPIRED. |
compactUpdatesboolean | Incremental mode: return UPDATED and EXPIRED listings as slim rows (identifiers, current price and availability, plus priceChanges and variantChanges with the old and new values) instead of the full record. NEW listings stay full. A slim UPDATED row is billed for the availability read only, never for the detail record or reviews it no longer carries. Off by default. |
expireAfterMissedScansinteger | With Emit expired: a listing is labelled EXPIRED only after it was missing from this many complete scans in a row (1 = the first complete scan that misses it). EXPIRED means the listing no longer appears in the results, not that it is unavailable for your dates: check busyStatus and roomsAvailable for availability. |
ignoreFieldsForChangesarray | Advanced: dataset field names that should not mark a listing as CHANGED in incremental mode (e.g. fields you find too volatile for your schedule). A dotted path such as seasonPrices.type drops that key from every element of the list while the rest of each element is still compared. |
mcpConnectorsarray | Send results into your apps (MCP connectors). Leave empty to only use the dataset. See the README for the connector config shape. |
notionParentPageUrlstring | URL (or id) of the Notion page under which listing pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
recordIdrecordIdobjectIdobjectIdtitletitletypeTitletypeTitlehotelIdhotelIdhotelTitlehotelTitlehotelStarshotelStarsurlurlpricePerNightpricePerNightfullPricefullPriceperiodNightsperiodNightscurrencycurrencyShow 71 more fields
busyStatusbusyStatusratingratingcountReviewscountReviewsbookingNowbookingNowphotoCountphotoCountaddressaddresscityTitlecityTitleareaareabedroomsbedroomsbedsbedsguestsguestsmaxGuestsmaxGuestswifiwifiparkingparkingairConditioningairConditioningtvtvmetroStationsmetroStationshotSalehotSaleownerIdownerIdchangeTypechangeTypelastSeenAtlastSeenAttypeDetailTitletypeDetailTitlestatusTitlestatusTitledescriptiondescriptionshortDescriptionshortDescriptionprepaymentprepaymentserviceFeeserviceFeebonusbonusroomsAvailableroomsAvailableseasonPricesseasonPricesextPricesextPricescheckInAftercheckInAftercheckOutUntilcheckOutUntilprepaymentPercentprepaymentPercentminNightsminNightsmaxNightsmaxNightsminGuestAgeminGuestAgeearlyCheckInearlyCheckInlateCheckOutlateCheckOutroomsCountroomsCountfloorfloorcountBedscountBedsisChildrenAllowedisChildrenAllowedpartyAllowedpartyAllowedforCoupleforCoupleownerNameownerNameownerCompanyownerCompanyownerAnswerRateownerAnswerRateownerAnswerTimeMinutesownerAnswerTimeMinutesownerSinceownerSincemediaUrlsmediaUrlslatlatlnglngexternalReviewsexternalReviewswashmachinewashmachinedateAddeddateAddeddateUpdateddateUpdatedreviewsreviewsreviewIdreviewIdreviewTextreviewTextreviewConsreviewConsreviewAuthorreviewAuthorreviewDatereviewDatestayBeginstayBeginstayNightsstayNightsstayGuestsstayGuestsstayAdultsstayAdultsstayChildrenstayChildrenimagesimageschangedFieldschangedFieldsfirstSeenAtfirstSeenAtExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"recordId": "sutochno:12345678",
"kind": "listing",
"objectId": 12345678,
"title": "Студия",
"typeTitle": "квартиры, апартаменты",
"url": "https://sutochno.ru/front/searchapp/detail/12345678",
"pricePerNight": 5000,
"fullPrice": 10000,
"periodNights": 2,
"currency": "RUB",
"busyStatus": "unbusy",
"rating": 4.9,
"countReviews": 27,
"bookingNow": true,
"photoCount": 21,
"address": "ул. Примерная, 10",
"cityTitle": "Санкт-Петербург",
"area": 26,
"bedrooms": 1,
"guests": 2,
"wifi": true,
"checkInAfter": "15:00",
"checkOutUntil": "12:00",
"ownerName": "Анна",
"ownerAnswerRate": 100,
"reviews": [
{
"reviewId": 123456789,
"rating": 5,
"reviewText": "Все ок, цена качество, соответствует.",
"reviewAuthor": "Guest",
"reviewDate": "2026-10-01 10:00:00",
"stayNights": 3
}
],
"changeType": "NEW"
}Ways to use this data
- Who: Price analysts and revenue managers tracking daily rates across Russian cities for specific stay windows.
- Who: Investors and hosts benchmarking occupancy signals (availability, rooms left) and competitor amenities in their market.
- Who: Travel and relocation researchers comparing neighborhoods by price, rating, reviews and transit notes.
- Who: Data teams feeding RU rental inventory into dashboards or alerts through the dataset, API or MCP connectors.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does Sutochno.ru Scraper return?
The documented output for Sutochno.ru Scraper includes recordid, objectid, title, typetitle, hotelid, hoteltitle, hotelstars and url. Availability of each field depends on the source page and the selected mode.
How much does Sutochno.ru Scraper cost?
It costs $2.00 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
How do I schedule recurring runs?
Enable Incremental mode and run the actor on a schedule (daily works well). The actor keeps a baseline in its named key-value store keyed by your search scope, returns only NEW or UPDATED listings, and can label disappeared ones as EXPIRED with Emit expired (optionally only after several missed complete scans). Turn on Compact updates for slim price and availability change rows.
Why did my run return fewer results than the site shows?
The site caps its map-lane result counter at 10,000; a walk ends at the natural end of pages. Max items, Max pages and the run time limit also stop a walk early (the status message says so). Min/max price filters apply after collection, so counts before and after the price filter can differ.
Can I use this actor with AI agents or MCP?
Yes. Add an MCP connector to the mcpConnectors input to push results into your connector-enabled app, or read the dataset through Apify's MCP server. The actor's structured fields (prices, availability, reviews, rules) are designed for downstream LLM consumption.
Does the actor log in or need an account?
No. Everything shipped here is public: listings, prices, availability and guest reviews.
