Otodom.pl Scraper avatar

Otodom.pl Scraper

Pricing

from $0.79 / 1,000 results

Go to Apify Store
Otodom.pl Scraper

Otodom.pl Scraper

Scrape Otodom.pl — Poland's largest real estate portal. 140k+ listings: apartments, houses, plots, commercial. Prices, areas, rooms, photos, GPS. Sale & rent. No API key required.

Pricing

from $0.79 / 1,000 results

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Otodom.pl Real Estate Scraper

Otodom.pl Real Estate Scraper banner

Extract structured property listings from Otodom.pl — Poland's largest real estate marketplace with over 140,000 active listings. Scrape apartments, houses, rooms, commercial spaces and plots for sale or rent. No API key required. No configuration needed to get started.


Features

  • All property types: apartments, houses, rooms, land / plots, commercial spaces, warehouses and garages
  • Sale and rent: full coverage of both transaction types
  • Location filtering: whole of Poland or any specific city, voivodeship or district via location slug
  • Rich structured output: price, price per m², surface area, number of rooms, floor, city, province, district, street address, agency, listing date and images
  • Optional detail enrichment: full description, GPS coordinates, building type, construction status, condition, heating, material, ownership, kitchen type, parking, media types, security types, AI-detected extras and agency phone
  • Custom search URLs: paste any Otodom.pl search URL directly as input

Input parameters

ParameterTypeDefaultDescription
startUrlsarray[]One or more Otodom.pl search result URLs. When provided, the transaction / propertyType / location fields below are ignored.
transactionselectsalesale for Sprzedaż listings, rent for Wynajem listings.
propertyTypeselectFLATProperty type: FLAT, HOUSE, ROOM, TERRAIN, COMMERCIAL, WAREHOUSE, GARAGE.
locationstringcala-polskaOtodom location slug. Use cala-polska for all of Poland, or a city slug such as warszawa, krakow, wroclaw, gdansk. Find any slug in the Otodom URL after selecting a location.
maxResultsinteger200Maximum number of listings to scrape.
fetchDetailsbooleanfalseVisit each listing's detail page to extract full description, GPS coordinates, building characteristics and AI-detected extras. Increases run time.

Output schema

Always present (list page)

FieldTypeDescription
idstringUnique Otodom listing ID
urlstringFull listing URL
titlestringListing title
shortDescriptionstring | nullShort teaser text shown on list page
operationTypestringsale or rent
propertyTypestringflat, house, room, terrain, commercial, warehouse, garage
priceTextstring | nullPrice as displayed, e.g. PLN 850 000
priceAmountnumber | nullPrice as a number
priceCurrencystring | nullPLN or null if hidden
pricePerSqmnumber | nullPrice per square metre
rentPricenumber | nullAdditional monthly rent charge
hidePricebooleanTrue if the owner chose to hide the price
areaInSquareMetersnumber | nullTotal usable area in m²
terrainAreaInSquareMetersnumber | nullTerrain/plot area in m² (houses and plots)
roomsNumbernumber | nullNumber of rooms
floorNumbernumber | nullFloor as integer (0 = ground, -1 = attic/basement)
streetAddressstring | nullStreet name when disclosed by the owner
citystring | nullCity name
districtstring | nullCity district
subdistrictstring | nullResidential sub-district
provincestring | nullVoivodeship / province name
countrystringAlways PL
agencyNamestring | nullReal estate agency name, or null for private sellers
agencyIdnumber | nullAgency identifier
isPrivateOwnerbooleanTrue if the listing is from a private individual
isPromotedbooleanTrue if the listing is a promoted/sponsored placement
isExclusiveOfferbooleanTrue for exclusive listings
imagesstring[]Array of full-resolution image URLs
totalImagesnumberTotal number of images available
tagsstring[]Feature tags, e.g. TERRACE, PARKING_SPOT, BALCONY, BASEMENT
developmentTitlestring | nullDeveloper project name (new builds)
developmentUrlstring | nullDeveloper project page URL
publishDatestring | nullDate first listed, YYYY-MM-DD
publishDateISOstring | nullSame as publishDate
pushedUpAtstring | nullLast time the listing was bumped to the top
sourcestringAlways otodom.pl
scrapedAtstringISO timestamp of when the record was scraped
contentHashstring16-character hash of ID + price + rooms, for change detection

With fetchDetails: true

FieldTypeDescription
descriptionHtmlstring | nullFull listing description in HTML
descriptionTextstring | nullPlain text version of the description
coordinatesobject | null{ lat, lng } — GPS coordinates
buildYearnumber | nullYear the building was constructed
buildingTypestring | nulle.g. BLOCK, APARTMENT, TENEMENT, HOUSE
buildingMaterialstring | nulle.g. BRICK, CONCRETE_PLATE, REINFORCED_CONCRETE
buildingFloorsnumber | nullTotal number of floors in the building
conditionstring | nulle.g. READY_TO_USE, TO_RENOVATION, TO_COMPLETION
heatingstring | nulle.g. GAS, URBAN, ELECTRIC, BOILER_ROOM
ownershipstring | nulle.g. FULL_OWNERSHIP, LIMITED_OWNERSHIP
marketTypestring | nullprimary (developer) or secondary (resale)
advertiserTypestring | nullbusiness or private
freeFromstring | nullAvailability date when specified
windowsTypestring | nulle.g. plastic, wooden, aluminium
kitchenstring | nullKitchen type: SEPARATE, ANNEX, or null
parkingstring[]Parking types available, e.g. garage, parking_spot
countystring | nullCounty name
equipmentTypesstring[]Equipment included, e.g. furniture, washing_machine
extrasTypesstring[]Extras, e.g. balcony, terrace, basement, lift
mediaTypesstring[]Media available, e.g. internet, cable-television, phone
securityTypesstring[]Security features, e.g. entryphone, monitoring, anti_burglary_door
featuresByCategoryobject[]Structured features grouped by category
aiExtrasobject[]AI-detected extras [{ key, value }] not yet in main listing
agencyPhonestring | nullAgency phone number when available
videosstring[]Video tour URLs when present

Example output

{
"id": "67359467",
"url": "https://www.otodom.pl/pl/oferta/example-listing-ID4xAbC",
"title": "115 metrów tarasu — 3 pokoje — 61,3 mkw",
"operationType": "sale",
"propertyType": "flat",
"priceText": "PLN 869000",
"priceAmount": 869000,
"priceCurrency": "PLN",
"pricePerSqm": 14176,
"rentPrice": 900,
"hidePrice": false,
"areaInSquareMeters": 61.3,
"roomsNumber": 3,
"floorNumber": 3,
"streetAddress": "ul. Płochocińska",
"city": "Warszawa",
"district": "Białołęka",
"subdistrict": "Szamocin",
"province": "mazowieckie",
"country": "PL",
"tags": ["TERRACE", "BASEMENT", "TOP_FLOOR", "PARKING_SPOT", "SECURE_BUILDING"],
"images": ["https://ireland.apollo.olxcdn.com/v1/files/example.jpg"],
"totalImages": 20,
"agencyName": "Deweloper Market",
"publishDate": "2026-04-23",
"source": "otodom.pl",
"scrapedAt": "2026-05-06T11:16:03.894Z",
"contentHash": "06e1a66a4d3014ea",
"coordinates": { "lat": 52.364383801137, "lng": 21.02693908859 },
"buildYear": 2024,
"buildingType": "BLOCK",
"buildingMaterial": "REINFORCED_CONCRETE",
"buildingFloors": 3,
"condition": "TO_COMPLETION",
"heating": "BOILER_ROOM",
"ownership": "FULL_OWNERSHIP",
"marketType": "secondary",
"advertiserType": "business",
"freeFrom": "2025-10-17",
"extrasTypes": ["garage", "basement", "terrace", "lift"],
"mediaTypes": ["internet", "cable-television", "phone"],
"securityTypes": ["anti_burglary_door", "entryphone", "monitoring"],
"agencyPhone": "+48794414112"
}

Examples

1 — Apartments for sale in Warsaw

{
"transaction": "sale",
"propertyType": "FLAT",
"location": "warszawa",
"maxResults": 500
}

2 — Houses for rent, all of Poland

{
"transaction": "rent",
"propertyType": "HOUSE",
"location": "cala-polska",
"maxResults": 200
}

3 — Custom search URL with filters (2-3 rooms, 40–70 m², Kraków)

Perform your search on otodom.pl with all desired filters applied, then copy the URL and pass it as startUrls:

{
"startUrls": [
{ "url": "https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/malopolskie/krakow/krakow/krakow?roomsNumber=%5BTWO%2CTHREE%5D&areaMin=40&areaMax=70" }
],
"maxResults": 1000,
"fetchDetails": false
}

4 — Daily feed with full details (monitoring for new listings)

{
"transaction": "sale",
"propertyType": "FLAT",
"location": "wroclaw",
"maxResults": 50,
"fetchDetails": true
}

Run this on a daily schedule to detect new listings in Wrocław with full descriptions, GPS coordinates and building characteristics.


Pricing

$0.79 per 1,000 listings — among the lowest in the market.

ActionCost
Actor start$0.00005
Per listing stored$0.00079
1,000 listings~$0.79
10,000 listings~$7.90

Proxy costs are covered by Unfenced Group — you are only charged for results.


Known limitations

  • coordinates, buildingType, heating, condition, and other building characteristics are only available when fetchDetails: true
  • agencyPhone requires fetchDetails: true
  • priceAmount is null for listings where the owner chose to hide the price (hidePrice: true)
  • Otodom.pl paginates at 36 listings per page; the full market has 140k+ active listings

Technical details

  • Source: Otodom.pl — Poland's leading real estate portal
  • Method: Next.js _next/data JSON API — pure JSON responses, no HTML parsing, no browser required
  • Response size: ~240 KB per page (5× smaller than HTML approach)
  • Memory: 256 MB minimum, 512 MB default
  • Retry: Automatic retry on transient errors with exponential backoff
  • Deduplication: 16-character content hash per listing for change detection across repeated runs
  • Output fields: 36 fields (list page) + 20 additional fields with fetchDetails: true

Additional services

Need custom fields, a different output format, webhook delivery, or scheduled monitoring? Contact info@unfencedgroup.nl.


Built and maintained by Unfenced Group — a commercial portfolio of European real estate and job board scrapers on Apify.