Morizon.pl Property Scraper
Pricing
from $3.00 / 1,000 results
Morizon.pl Property Scraper
[💰 $3.0 / 1K] Extract Polish real-estate listings from Morizon (morizon.pl) — sale and rent apartments, houses, plots, rooms, garages, commercial. Get price, area, rooms, location, GPS, building specs, condition, and agent contacts. Search by filters or paste URLs.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Pull Polish real-estate listings from Morizon (morizon.pl) at scale — sale and rental prices in PLN, price per m², GPS coordinates, building specs, seller and agent phone numbers, and full photo galleries for apartments, houses, plots, rooms, garages, and commercial units across all of Poland. Built for real-estate investors, relocation and expat-housing agencies, and PropTech and market-research teams who need structured Polish property data without clicking through morizon.pl one listing at a time.
Why This Scraper?
- 6 property types in one actor — apartments, houses, plots and land, rooms, garages, and commercial units, plus an "Any" mode that pulls every type in a single run.
- Sale and rental markets, all of Poland — flip one dropdown between for-sale (sprzedaż) and for-rent (wynajem); search any Polish city, or drill into a district like
krakow/stare-miasto. - Street-level GPS on every listing — precise latitude and longitude pulled from each property's detail map, ready to plot, geofence, or cluster.
- Direct seller and agent phone numbers — skip the contact form; each row carries the published phone number plus whether the seller is an agency, private owner, or developer, with agency and agent names.
- Price per m² pre-computed — every listing ships
pricePerM2in PLN alongside the headline price and area, so you can rank by value without post-processing. - Building specifications — year built, building type, construction material, heating, condition, market type (primary vs. secondary), bathroom count, and floor, pulled from the detail page.
- Full photo galleries plus rich-media flags — every image URL for a listing with a total photo count, plus boolean flags for listings that carry a 3D virtual tour (
has3dView) or a video walkthrough (hasVideo). - Recency filter down to the last 24 hours — capture only listings first posted within 1, 3, 7, 14, or 30 days to catch fresh inventory the moment it lists.
- Fast bulk mode on demand — turn off full details for a rapid price-and-location-only pull across thousands of listings when GPS and phones aren't needed.
Use Cases
Real-Estate Investment & Valuation
- Rank neighborhoods by price per m² across cities and districts
- Track fresh sale listings within the last 24 hours to move on deals first
- Compare primary-market (new-build) versus secondary-market pricing
- Underwrite rental yields by pairing sale and rent pulls for the same district
Relocation & Expat Housing
- Build shortlists of rentals in a target city with room-count and area filters
- Map candidate homes by GPS against schools, offices, and transit
- Pull owner-listed rooms and apartments to skip agency fees where possible
Market Research & Pricing Analysis
- Measure asking-price trends by property type across Polish metros
- Analyze inventory mix (apartments vs. houses vs. plots) by region
- Benchmark price per m² between primary and secondary markets
PropTech & Lead Generation
- Feed structured listing data into your own valuation or search product
- Build agency and agent contact lists with published phone numbers
- Enrich a CRM with fresh listings, GPS, and seller type by district
Data Integration & Enrichment
- Keep an internal dashboard current with the latest Morizon inventory
- Attach photo galleries and building specs to existing property records
- Power alerting on new listings matching a saved filter set
Getting Started
Search by City
The simplest run — apartments for sale in Warsaw:
{"transactionType": "sprzedaz","propertyType": "mieszkania","location": "warszawa","maxResults": 50}
Filtered Rental Search
Two-to-three-room rental apartments in a Kraków district, posted in the last week:
{"transactionType": "wynajem","propertyType": "mieszkania","location": "krakow/stare-miasto","priceMax": 4000,"roomsMin": 2,"roomsMax": 3,"postedWithinDays": "7","maxResults": 200}
Advanced — Filters Plus Pasted URLs
Combine a guided budget-and-size search with a saved morizon.pl search URL and a single listing you want captured:
{"transactionType": "sprzedaz","propertyType": "domy","location": "poznan","priceMin": 500000,"priceMax": 1200000,"areaMin": 80,"startUrls": ["https://www.morizon.pl/mieszkania/wroclaw/","https://www.morizon.pl/oferta/sprzedaz-mieszkanie-warszawa-mokotow-example"],"maxResults": 500,"includeDetails": true}
Input Reference
Search
| Parameter | Type | Default | Description |
|---|---|---|---|
transactionType | select | For Sale (sprzedaż) | Collect properties for sale (sprzedaż) or for rent (wynajem). Ignored when Start URLs are provided. |
propertyType | select | Apartments (mieszkania) | Property category: Any, Apartments (mieszkania), Houses (domy), Plots / Land (działki), Rooms (pokoje), Garages (garaże), or Commercial (nieruchomości komercyjne). |
location | string | warszawa | City on its own (e.g. warszawa, krakow) for the whole city, or city/district (e.g. krakow/stare-miasto) to target a district. Leave empty to search all of Poland. |
Advanced Search (optional)
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | string[] | [] | Paste morizon.pl search-result or individual listing URLs. When provided, these override the transaction, property-type, location, and filter settings above; any filters already in the URL are preserved. |
Price, Rooms & Size
| Parameter | Type | Default | Description |
|---|---|---|---|
priceMin | integer | — | Minimum price in Polish złoty (PLN). Leave empty for no minimum. |
priceMax | integer | — | Maximum price in Polish złoty (PLN). Leave empty for no maximum. |
areaMin | integer | — | Minimum area in square metres. Leave empty for no minimum. |
areaMax | integer | — | Maximum area in square metres. Leave empty for no maximum. |
roomsMin | integer | — | Minimum number of rooms (1–10). Leave empty for no minimum. |
roomsMax | integer | — | Maximum number of rooms (1–10). Leave empty for no maximum. |
postedWithinDays | select | Any time | Only include listings first posted within: Any time, Last 24 hours, Last 3 days, Last 7 days, Last 14 days, or Last 30 days. |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Maximum listings to collect across all searches and URLs combined. Set to 0 for as many as possible (up to a built-in safety cap). Start with 20–50 to test, then increase. |
includeDetails | boolean | true | Open each listing's detail page to capture the full photo gallery, GPS coordinates, building specs, condition, market and ownership type, seller/agent name and phone, and the full description. Slower but much richer. When off, only result-page fields are returned. |
Output
Each listing is one flat row. Here's a representative result with full details enabled:
{"id": "mzn12345678","url": "https://www.morizon.pl/oferta/sprzedaz-mieszkanie-warszawa-wilanow-franciszka-klimczaka-42m2-example","title": "Przestronne 2-pokojowe mieszkanie, Wilanów","transactionType": "sprzedaz","propertyType": "mieszkania","price": 950000,"priceCurrency": "PLN","priceFormatted": "950 000 zł","pricePerM2": 22619.05,"area": 42,"rooms": 2,"floor": "piętro 4/4","voivodeship": "mazowieckie","city": "Warszawa","district": "Wilanów","street": "Franciszka Klimczaka","streetNumber": "17","latitude": 52.15202,"longitude": 21.10499,"marketType": "Rynek wtórny","reference": "MZ-0042-XY","buildYear": 2015,"buildingType": "blok","buildingMaterial": "cegła","heating": "miejskie","condition": "do zamieszkania","numberOfBathrooms": 1,"features": ["balkon", "winda", "garaż", "monitoring"],"description": "Komfortowe mieszkanie w cichej części Wilanowa...","sellerType": "AGENCY","agencyName": "Przykładowa Nieruchomości Sp. z o.o.","agentName": "Anna Kowalska","sellerPhone": "602 206 111","phones": ["602 206 111", "22 555 12 34"],"images": ["https://media.morizon.pl/big/example-1.jpg","https://media.morizon.pl/big/example-2.jpg"],"imageCount": 12,"addedAt": "28.06.2026","refreshedAt": "2026-07-01 11:07:04","updatedAt": "03.07.2026","isPromoted": true,"has3dView": false,"hasVideo": true,"detailsLoaded": true,"scrapedAt": "2026-07-05T14:30:00+00:00"}
Core Fields
| Field | Type | Description |
|---|---|---|
id | string | Morizon listing identifier |
url | string | Canonical listing URL |
title | string | Listing headline |
transactionType | string | sprzedaz (sale) or wynajem (rent) |
propertyType | string | Property category slug |
description | string | Listing description text |
addedAt | string | Date the listing was first posted |
refreshedAt | string | Date the listing was last refreshed on Morizon; present on every row |
isPromoted | boolean | Whether the listing is promoted/featured |
has3dView | boolean | Whether the listing includes a 3D virtual tour |
hasVideo | boolean | Whether the listing includes a video walkthrough |
detailsLoaded | boolean | Whether detail-page enrichment succeeded for this row |
scrapedAt | string | ISO 8601 timestamp of extraction |
Pricing & Size
| Field | Type | Description |
|---|---|---|
price | number | Price in PLN |
priceCurrency | string | Currency code (PLN) |
priceFormatted | string | Formatted price display string (e.g. "950 000 zł") |
pricePerM2 | number | Price per square metre in PLN |
area | number | Area in square metres |
rooms | number | Number of rooms |
floor | string | Floor, as displayed (e.g. "piętro 4/4") |
Location & GPS
| Field | Type | Description |
|---|---|---|
voivodeship | string | Voivodeship (region) |
city | string | City |
district | string | District |
street | string | Street name |
streetNumber | string | Street number (detail mode) |
latitude | number | GPS latitude (detail mode) |
longitude | number | GPS longitude (detail mode) |
Building Details
Populated when includeDetails is on.
| Field | Type | Description |
|---|---|---|
marketType | string | Primary or secondary market |
reference | string | Listing reference code |
buildYear | number | Year built |
buildingType | string | Building type |
buildingMaterial | string | Construction material |
heating | string | Heating type |
condition | string | Property condition |
numberOfBathrooms | number | Bathroom count |
updatedAt | string | Last-updated date from the detail page |
features | string[] | Amenities, equipment, and facility tags |
Seller & Media
| Field | Type | Description |
|---|---|---|
sellerType | string | AGENCY, private owner, or developer |
agencyName | string | Agency name |
agentName | string | Agent name |
sellerPhone | string | Primary published phone number |
phones | string[] | All published phone numbers |
images | string[] | Full-resolution photo URLs |
imageCount | number | Number of photos |
Tips for Best Results
- Start small to test — set
maxResultsto 20–50 on your first run to confirm the fields match your needs, then scale up. - Target a district for tighter, richer results — writing
krakow/stare-miastoinstead of justkrakownarrows the pull and keeps you well inside Morizon's per-search listing window. - Split broad cities by budget or size — a single filter set returns up to about 7,000 listings; for high-inventory metros like Warsaw, run several passes with different
priceMin/priceMaxbands to capture the full market without hitting that ceiling. - Turn off
includeDetailsfor a fast bulk pull — when you only need price, area, rooms, and city across thousands of listings, disabling details skips the per-listing detail fetch and returns results much faster; GPS, phones, and build year are omitted in that mode. - Use Start URLs for filters not in the guided form — build any search on morizon.pl in your browser (sort order, extra filters), then paste that URL into
startUrls— the filters baked into the URL are preserved exactly. - Combine a saved search URL with individual listing URLs — mix a search-page URL and specific
/oferta/listing URLs in onestartUrlsrun to top up a bulk pull with hand-picked properties. - Catch fresh inventory — set
postedWithinDaysto "Last 24 hours" and schedule daily runs to build a real-time feed of brand-new listings in your target area.
Pricing
From $3.00 per 1,000 results — cleaner, cheaper, and richer than the alternatives for Polish property data. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.36 | $0.34 | $0.32 | $0.30 |
| 1,000 | $3.60 | $3.40 | $3.20 | $3.00 |
| 10,000 | $36.00 | $34.00 | $32.00 | $30.00 |
| 100,000 | $360.00 | $340.00 | $320.00 | $300.00 |
A "result" is any listing row in the output dataset. The per-run start fee and any Apify platform fees are additional and depend on your plan.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom APIs on run completion
- Apify API — Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate real-estate research, market analysis, relocation planning, and lead generation. You are responsible for complying with applicable laws and Morizon's Terms of Service. Do not use extracted contact details for spam, harassment, or any unlawful purpose, and handle any personal data in line with GDPR and other applicable privacy regulations.