Etagi Scraper — Russia Property Data & API
Pricing
from $2.50 / 1,000 overview listings
Etagi Scraper — Russia Property Data & API
Etagi scraper & real estate data API for Russia's largest property-agency network. Sale & rent listings across many Russian cities: price (RUB), price/m², rooms, area, floor, building year, GPS, metro, photos, new-build complex — clean JSON/CSV.
Pricing
from $2.50 / 1,000 overview listings
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Etagi Scraper — Russia Property Data & API 🇷🇺🏠
🎉 The fast, no-code Etagi data API — sale & rent listings across Russia with price/m², GPS, metro & new-build (ЖК) data, no Etagi API key required
For investors, analysts, agencies and proptech teams who need clean structured Russian real-estate data at scale
📋 Overview
Pull every Etagi listing into a clean dataset in minutes — Etagi is Russia's largest real-estate agency network, covering sale and rent, new-builds and secondary, across dozens of cities. This scraper turns its public listings into structured JSON/CSV/Excel: price in rubles, price per square meter, rooms, area, floor, building year, GPS coordinates, nearest metro, photos and the new-build complex (ЖК) name.
Why professionals choose us:
- ✅ Deterministic city targeting: pick any Russian city by name and get exactly that city's inventory — no guessing, no IP roulette.
- ⚡ Fast & cheap Overview mode: every core field straight from the listings feed, billed per result.
- 🎯 High coverage: price, geo and photos on virtually every record; 40+ structured fields per listing.
- 💸 Pay-per-result pricing: you're only charged for listings actually extracted — and never until your input is validated.
- 💎 Sale + rent in one place: switch between buy and rent with a single field; rent rows add deposit, rental period and online-rent flags.
- ✨ New-build (ЖК) intelligence: complex name, completion year/quarter and new-building flags for off-plan tracking.
✨ Features
- 🏙️ City selection — search any Russian city by its Etagi slug (Tyumen, Moscow, St. Petersburg, Ekaterinburg, Kazan, and more).
- 🤝 Sale or rent — one toggle covers both deal types with the right fields for each.
- 🏠 Object types — flats, houses, commercial, land and garages.
- 🎚️ Rich filters — price, area, rooms, floor and build-year ranges, applied at the source.
- ↕️ Sorting — featured, price, area, newest, or price per m².
- 🔢 Tiered limits — try free, scale unlimited on the paid tier.
- 📍 Geo & metro — GPS latitude/longitude plus nearest metro and walk time.
- 🖼️ Media — main photo, photo count, virtual-tour and video flags.
- 🔁 Detail refresh — re-fetch any property by its listing URL for a fresh full record.
- 📤 Clean exports — JSON, CSV and Excel straight from the Apify dataset.
🎬 Quick Start
Pick a city, choose sale or rent, and run. Results stream into the dataset as clean rows you can export to JSON, CSV or Excel. Start in Overview mode for the fast, cheap path.
curl -X POST "https://api.apify.com/v2/acts/sian.agency~etagi-property-scraper/runs?token=YOUR_TOKEN" \-H 'Content-Type: application/json' \-d '{"scrapeMode": "overview", "city": "tyumen", "deal": "sale", "maxResults": 50}'
🚀 Getting Started (3 Simple Steps)
Step 1: Choose your scrape depth
Overview for the fast, cheap path (every core field from the listings feed) or Detail to refresh exact properties by their URL.
Step 2: Pick your city, deal & filters
Set the city slug, choose sale or rent, and optionally narrow by price, area, rooms, floor or build year.
Step 3: Set a limit & run
Cap the run with Max results, hit Start, and export your dataset.
That's it! In a couple of minutes, you'll have:
- A structured dataset of Russian property listings
- Price, geo, metro and media on every record
- Clean JSON/CSV/Excel ready for analysis or import
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
scrapeMode | string | No | overview (fast & cheap) or detail (refresh by URL). Default overview. |
city | string | No | Russian city slug, e.g. tyumen, moskva, ekaterinburg. Default tyumen. |
deal | string | No | sale or rent. Default sale. |
objectType | string | No | flat, house, commercial, land, garage. Default flat. |
listingUrls | array | No | Detail mode: specific Etagi listing URLs to refresh. |
sort | string | No | default, price_asc, price_desc, area_asc, area_desc, date_desc, price_m2_asc. |
priceMin / priceMax | integer | No | Price range filter (RUB). |
areaMin / areaMax | integer | No | Total-area range filter (m²). |
rooms | integer | No | Exact room count (0 = studio). |
floorMin / floorMax | integer | No | Floor range filter. |
yearMin / yearMax | integer | No | Build-year range filter. |
maxResults | integer | No | Max listings per run. FREE: 25; PAID: unlimited. |
Example — Moscow rentals under 60,000 ₽, cheapest first:
{"scrapeMode": "overview","city": "moskva","deal": "rent","priceMax": 60000,"sort": "price_asc","maxResults": 100}
Example — refresh specific properties by URL:
{"scrapeMode": "detail","listingUrls": ["https://tyumen.etagi.com/realty/12938989/","https://moskva.etagi.com/realty_rent/12987947/"]}
📤 Output
Results are saved to the Apify dataset with 40+ fields including:
| Field | Type | Description |
|---|---|---|
id | string | Public Etagi object id |
url | string | Canonical listing URL |
deal_type | string | sale or rent |
object_type | string | Property type (e.g. flat) |
price | integer | Price in rubles (RUB) |
price_per_sqm | integer | Price per square meter |
rooms | integer | Number of rooms (0 = studio) |
area_total_sqm | number | Total area in m² |
floor / floors_total | integer | Floor and total floors |
building_year | integer | Construction year |
city / district / street | string | Location breakdown |
latitude / longitude | number | GPS coordinates |
metro_name / metro_time_min | string / integer | Nearest metro + walk time |
newcomplex_name | string | New-build complex (ЖК) name |
deposit / rental_period | integer | Rent-only fields |
main_photo / photo_count | string / integer | Media |
Example:
{"id": "12938989","url": "https://tyumen.etagi.com/realty/12938989/","deal_type": "sale","object_type": "flat","price": 7900000,"currency": "RUB","price_per_sqm": 141071,"rooms": 2,"area_total_sqm": 56,"floor": 7,"floors_total": 24,"building_year": 2020,"city": "Тюмень","district": "Дом Обороны","street": "Полевая","latitude": 57.17264,"longitude": 65.483465,"newcomplex_name": "Озёрный парк","is_new_building": true,"main_photo": "https://cdn.example/photo.jpeg","photo_count": 33,"source": "overview"}
💼 Use Cases & Examples
1. Market research & price benchmarking
Analysts tracking price-per-m² trends across Russian cities. Input: a city + sale, sorted by price/m². Output: structured price + area data. Use: build city-level price indices.
2. Investment sourcing
Investors hunting undervalued flats and new-builds. Input: price and area filters per city. Output: ranked inventory with ЖК data. Use: shortlist deals by yield potential.
3. Agency & broker lead generation
Agencies mapping the competitive landscape. Input: a city + deal type. Output: listings with office and agent ids. Use: territory and inventory analysis.
4. New-build (ЖК) tracking
Proptech teams monitoring off-plan supply. Input: sale + new-building filters. Output: complex names + completion year/quarter. Use: track pipeline by developer.
5. Rental-yield research
Investors comparing rent vs. sale economics. Input: rent and sale runs for the same city. Output: price, deposit and area. Use: compute gross rental yields.
6. Portfolio & competitor monitoring
Brokerages watching listing churn. Input: scheduled city runs. Output: fresh datasets per run. Use: detect new/removed inventory over time.
7. Relocation & buyer search
Relocation services sourcing options for clients. Input: city + filters by rooms/area/price. Output: matching listings with geo + metro. Use: curate client shortlists.
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/etagi-property-scraper').call({scrapeMode: 'overview',city: 'ekaterinburg',deal: 'sale',maxResults: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/etagi-property-scraper').call(run_input={'scrapeMode': 'overview', 'city': 'kazan', 'deal': 'rent', 'maxResults': 50})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~etagi-property-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"scrapeMode": "overview", "city": "tyumen", "deal": "sale", "maxResults": 50}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: Schedule or webhook
- HTTP Request: Call the actor API
- Process: Handle JSON results
- Action: Save, notify, or transform
📊 Performance & Pricing
FREE Tier (Try It Now)
- 25 listings per run — full feature access, same quality
- No credit card required
- Perfect for testing and small projects
PAID Tier (Production Ready)
- Unlimited listings per run
- Pay-per-result: only charged for listings actually extracted
- Same clean fields, at scale
💸 Transparent pay-per-result pricing — no subscriptions, no wasted spend on blocked or empty runs.
❓ Frequently Asked Questions
Q: How many listings can I extract? A: FREE tier: 25 per run. PAID tier: unlimited.
Q: Which cities are supported?
A: Any city Etagi covers — pass its slug (e.g. tyumen, moskva, kazan). The scraper targets exactly the city you choose.
Q: Can I get both sale and rent?
A: Yes — toggle the deal field. Rent rows include deposit, rental period and online-rent flags.
Q: What output formats are available? A: JSON, CSV and Excel — export directly from the Apify dataset.
Q: Does it support new-builds? A: Yes — new-building flags, complex (ЖК) name and completion year/quarter are included.
Q: Is this legal? A: Yes — we only extract publicly available data. See the legal section below.
🐛 Troubleshooting
No results returned
- Check the city slug is correct (read it from the subdomain on Etagi, e.g.
kazan.etagi.com→kazan). - Loosen any price/area/rooms filters that may be too narrow.
Fewer results than expected
- FREE tier caps each run at 25 listings — upgrade to PAID for unlimited.
- Raise
maxResults.
Detail mode returns "not found"
- The listing id may have rotated or been delisted. Verify the URL opens on Etagi.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
This is an independent tool and is not affiliated with, endorsed by, or sponsored by Etagi (Этажи) or its operators. "Etagi" / "Этажи" is a trademark of its respective owner. You are responsible for complying with Etagi's terms of service and all applicable laws when using this tool.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's repository
- Check SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools