Discover/Otodom API
live

Otodom 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.

Endpoint health
verified 4d ago
get_listing_details
search_listings
2/2 passing latest checkself-healing
Endpoints
2
Updated
22d ago

What is the Otodom 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.

Try it
Page number for pagination.
Comma-separated room count values.
Market type filter.
Maximum area in square meters.
Minimum area in square meters.
Location path in format voivodeship/county/municipality/city (e.g. 'mazowieckie/warszawa/warszawa/warszawa').
Maximum price in PLN.
Minimum price in PLN.
Type of property.
Transaction type.
api.parse.bot/scraper/d8c8d72e-4cd3-44cc-9ee3-522770219f2f/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/d8c8d72e-4cd3-44cc-9ee3-522770219f2f/search_listings?page=1&rooms=ONE&market=PRIMARY&area_max=100&area_min=30&location=mazowieckie%2Fwarszawa%2Fwarszawa%2Fwarszawa&price_max=1000000&price_min=200000&estate_type=mieszkanie&transaction=sprzedaz' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace otodom-pl-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Otodom.pl Real Estate API — search, filter, and drill into listing details."""
from parse_apis.otodom_pl_real_estate_api import (
    Otodom, EstateType, Transaction, Market, RoomCount, ListingNotFound
)

client = Otodom()

# Search for apartments for sale in Warsaw, primary market, 2-3 rooms
for listing in client.listingsummaries.search(
    location="mazowieckie/warszawa/warszawa/warszawa",
    estate_type=EstateType.MIESZKANIE,
    transaction=Transaction.SPRZEDAZ,
    market=Market.PRIMARY,
    rooms=RoomCount.TWO,
    limit=5,
):
    print(listing.title, listing.area, listing.slug)

# Drill into the first result for full details
summary = client.listingsummaries.search(
    location="mazowieckie/warszawa/warszawa/warszawa",
    estate_type=EstateType.DOM,
    limit=1,
).first()

if summary:
    detail = summary.details()
    print(detail.title, detail.market, detail.created_at)
    print(detail.characteristics)
    for phone in detail.contact_phones:
        print(phone)

# Handle a listing that no longer exists
try:
    gone = client.listingsummaries.search(
        location="mazowieckie/warszawa/warszawa/warszawa",
        limit=1,
    ).first()
    if gone:
        gone.details()
except ListingNotFound as exc:
    print(f"Listing gone: {exc.url_or_slug}")

print("exercised: listingsummaries.search / details / ListingNotFound")
All endpoints · 2 totalmissing one? ·

Search for real estate listings with various filters. Returns a paginated list of listing summaries including ID, title, price, area, rooms, location, and URL. Pagination via page number; each page returns up to 36 items. Filters combine with AND logic — all specified constraints must be satisfied.

Input
ParamTypeDescription
pageintegerPage number for pagination.
roomsstringComma-separated room count values.
marketstringMarket type filter.
area_maxintegerMaximum area in square meters.
area_minintegerMinimum area in square meters.
locationstringLocation path in format voivodeship/county/municipality/city (e.g. 'mazowieckie/warszawa/warszawa/warszawa').
price_maxintegerMaximum price in PLN.
price_minintegerMinimum price in PLN.
estate_typestringType of property.
transactionstringTransaction type.
Response
{
  "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"
  }
}

About the Otodom API

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.

Reliability & maintenanceVerified

The Otodom API is a managed, monitored endpoint for otodom.pl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when otodom.pl changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official otodom.pl API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • 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_details for a real estate CRM import
  • Build a price-per-square-meter index using price and area fields across multiple Polish cities
  • Pull listing coordinates from the location object to plot property density on a map
  • Monitor date_created timestamps from search results to surface freshly listed properties in a given municipality
  • Compare room-count distributions across secondary market listings in different voivodeships
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Otodom.pl have an official developer API?+
Otodom.pl does not publish a public developer API or official API documentation for third-party access to its listing data.
What does the `location` field in `get_listing_details` contain?+
It returns an object with geographic coordinates (latitude/longitude), structured address details broken down by administrative level, and reverse-geocoded data. This is separate from the simpler location summary returned in search_listings results.
How does pagination work in `search_listings`?+
Pass an integer 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?+
Not currently. The endpoints cover residential listings and their details. The filters — 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.
Are historical or expired listings accessible through the API?+
The API reflects currently active listings on Otodom.pl. Expired or archived listings are not exposed through either endpoint. If you need to track listing history over time, you would need to store results from repeated calls yourself, or fork the API on Parse and revise it to add a historical lookup endpoint if that data becomes accessible.
Page content last updated . Spec covers 2 endpoints from otodom.pl.
Related APIs in Real EstateSee all →
olx.ba API
Search and browse listings on OLX.ba across all categories. Retrieve listing names, prices, categories, and URLs, or drill into individual listings for detailed attributes such as location, address, area, floor, condition, and seller information. Includes dedicated support for apartment listings.
m.olx.pl API
Search and browse listings from OLX.pl across a wide range of categories including vehicles, electronics, real estate, fashion, and more. Access detailed offer information, price comparisons, seller details, and the latest postings — with support for keyword search and category filtering.
otomoto.pl API
Browse and retrieve vehicle listings from otomoto.pl, Poland's leading automotive marketplace. Search by make, model, and category, fetch full listing details and photos, or paginate through bulk results.
m.olx.ro API
Search and retrieve structured real estate listings from OLX Romania, including apartments, houses, land, and other properties with detailed information. Access category IDs and browse available properties by type to find what you're looking for on Romania's popular classifieds platform.
dotproperty.com.ph API
Search for residential properties for rent or sale on Dot Property Philippines and retrieve detailed information like pricing, specifications, and agent details from individual listings. Access comprehensive property data to compare options and make informed real estate decisions.
olx.pt API
Search and monitor real estate listings and business advertisements from OLX Portugal with advanced filtering and pagination options. Get detailed information about specific listings including prices, descriptions, and seller details to find exactly what you're looking for.
spotahome.com API
Search rental properties on Spotahome and retrieve detailed listing information including pricing, availability, amenities, pet policy, and landlord profiles. Filter by city, budget, dates, and more to explore mid- to long-term rental options across Spotahome's global inventory.
olx.com.br API
Search and browse OLX Brazil real estate listings for properties available for sale or rent, with advanced filtering options to narrow down your search. Access comprehensive property details including descriptions, prices, locations, and other key information for each listing.