otodom.pl APIotodom.pl ↗
Access Otodom.pl property listings via API. Search by location, price, area, and rooms. Retrieve full details including description, images, and seller contact info.
curl -X GET 'https://api.parse.bot/scraper/d8c8d72e-4cd3-44cc-9ee3-522770219f2f/search_listings?page=1&location=mazowieckie%2Fwarszawa%2Fwarszawa%2Fwarszawa&estate_type=mieszkanie&transaction=sprzedaz' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for real estate listings with various filters. Returns a paginated list of listing summaries including ID, title, price, area, rooms, location, and URL.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| rooms | string | Comma-separated room count values: ONE, TWO, THREE, FOUR, FIVE_OR_MORE. |
| market | string | Market type: PRIMARY (new developments) or SECONDARY (resale). |
| area_max | integer | Maximum area in square meters. |
| area_min | integer | Minimum area in square meters. |
| location | string | Location path in format voivodeship/county/municipality/city (e.g. 'mazowieckie/warszawa/warszawa/warszawa'). |
| price_max | integer | Maximum price in PLN. |
| price_min | integer | Minimum price in PLN. |
| estate_type | string | Type of property: mieszkanie, dom, dzialka, obiekt, lokaluzytkowy, pokoj. |
| transaction | string | Transaction type: sprzedaz (sale) or wynajem (rent). |
{
"type": "object",
"fields": {
"items": "array of listing summary objects with id, title, price, area, rooms, location, url, slug, agency, date_created",
"pagination": "object with total_pages, current_page, total_items, items_per_page"
},
"sample": {
"data": {
"items": [
{
"id": 67926664,
"url": "https://www.otodom.pl/pl/oferta/4-pokojowe-z-duzym-tarasem-25m-i-garazem-ursus-skorosze-ID4B0Pm",
"area": 74.6,
"slug": "4-pokojowe-z-duzym-tarasem-25m-i-garazem-ursus-skorosze-ID4B0Pm",
"price": {
"value": 1200000,
"currency": "PLN",
"__typename": "Money"
},
"rooms": "FOUR",
"title": "4-pokojowe z dużym tarasem 25m² i garażem - Ursus Skorosze",
"agency": {
"id": 10413928,
"name": "Lux Apartments",
"type": "AGENCY"
},
"location": {
"address": {
"city": {
"name": "Warszawa"
},
"street": {
"name": "ul. Skoroszewska"
},
"province": {
"name": "mazowieckie"
}
}
},
"main_photo": "https://ireland.apollo.olxcdn.com/v1/files/example/image;s=1280x1024;q=80",
"is_promoted": false,
"date_created": "2026-05-14 20:37:04",
"price_per_m2": {
"value": 16086,
"currency": "PLN",
"__typename": "Money"
},
"short_description": "Czteropokojowe mieszkanie na wysokim parterze..."
}
],
"pagination": {
"total_items": null,
"total_pages": 478,
"current_page": 1,
"items_per_page": 36
}
},
"status": "success"
}
}About the otodom.pl API
The Otodom.pl API exposes 2 endpoints for searching and retrieving Polish real estate listings. The search_listings endpoint returns paginated summaries — including price, area, room count, agency, and listing URL — across primary (new developments) and secondary (resale) markets. The get_listing_details endpoint fetches a single listing's full record: HTML description, images, coordinates, address breakdown, and owner phone numbers.
Search Listings
The search_listings endpoint accepts filters for location, price_min, price_max, area_min, area_max, rooms, market, and page. Location is specified as a slash-separated path through Poland's administrative hierarchy — voivodeship, county, municipality, city — for example mazowieckie/warszawa/warszawa/warszawa. Room counts are passed as enum strings (ONE, TWO, THREE, FOUR, FIVE_OR_MORE) in a comma-separated list. The response includes an items array of listing summaries, each carrying id, title, price, area, rooms, location, url, slug, agency, and date_created, plus a pagination object with total_pages, current_page, total_items, and items_per_page.
Listing Details
The get_listing_details endpoint accepts either a listing slug returned by search_listings (e.g. mieszkanie-3-pokojowe-warszawa-mokotow-ID4B0Pm) or a full Otodom.pl URL. The response includes the full description as HTML, an images array of URLs, market type, created_at timestamp, and a price object with value and currency. The location field contains coordinates, structured address details, and reverse-geocoded data. The owner object provides the seller or agency name, type, and one or more phones for direct contact.
Coverage and Market
Otodom.pl is Poland's largest residential property portal. Listings span apartments, houses, and other residential property types across all Polish voivodeships. The market filter distinguishes developer-sold new builds (PRIMARY) from resale stock (SECONDARY), which matters when comparing pricing across market segments or tracking new development activity in a given area.
- Aggregate Warsaw apartment listings filtered by price and minimum area for a buyer comparison tool
- Track new-development (PRIMARY market) listings in Kraków to monitor developer activity over time
- Extract seller phone numbers and agency names from
get_listing_detailsfor a real estate CRM import - Build a price-per-square-meter index using
priceandareafields across multiple Polish cities - Pull listing coordinates from the
locationobject to plot property density on a map - Monitor
date_createdtimestamps from search results to surface freshly listed properties in a given municipality - Compare room-count distributions across secondary market listings in different voivodeships
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Otodom.pl have an official developer API?+
What does the `location` field in `get_listing_details` contain?+
search_listings results.How does pagination work in `search_listings`?+
page parameter to advance through results. The response includes a pagination object with current_page, total_pages, total_items, and items_per_page so you can calculate the full result set size before iterating.Does the API cover commercial or agricultural property listings?+
rooms, area_min/max, price_min/max, and market — are oriented toward residential use. You can fork this API on Parse and revise it to add an endpoint targeting commercial or agricultural listing categories on Otodom.pl.