Otodom Price Stats (PLN per m2)
One run samples Otodom and delivers a price-per-square-meter table by Polish city: median, quartiles, median price and surface per city, with the sample...
One run samples Otodom and delivers a price-per-square-meter table by Polish city: median, quartiles, median price and surface per city, with the sample size attached. Asking prices, honestly labeled. Computed from listings that never contained personal data.
$19.24 / 1,000 · 100.0% success over 26 public runs in the last 30 days.
Run it on Apify → Free to try - runs bill per result on your own account.
What you give it
Every field is optional unless marked; sensible defaults do the rest.
| Field | Type | What it does | Default |
|---|---|---|---|
transaction |
string | Search properties for sale (sprzedaz) or for rent (wynajem). | sale |
propertyType |
string | What kind of property to search. | flat |
location |
string | Otodom location path as it appears in the site's URL: "cala-polska" for all of Poland (default), a voivodeship like "mazowieckie", or a full path like "mazowieckie/warszawa/warszawa/warszawa". | cala-polska |
priceMinPln |
integer | Only include listings priced at least this many złoty. For rentals this is złoty per month. | - |
priceMaxPln |
integer | Only include listings priced at most this many złoty. For rentals this is złoty per month. | - |
maxItems |
integer | Upper bound on city rows delivered. Free-plan runs are capped at 5. The form starts at 25 for a cheap first run - that is the form's prefill, not a cap on your plan; clear it to use the default of 100. | 100 |
samplePages |
integer | Result pages sampled (2-40, ~36 listings each). More pages = steadier medians per city. | 14 |
reportFailures |
boolean | When a run fails, send the developer the actor name and build, an error category, the error message (truncated) and a one-way hash of your input - so a bug can be fixed without anyone asking you to reproduce it. Your input itself, your results and your identity are never sent, and successful runs send nothing at all. Switch this off and the actor behaves exactly the same. | True |
What you get back
One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.
A real result row from a recent run:
{
"city": "Warszawa",
"currency": "PLN",
"location": "cala-polska",
"medianAreaM2": 52,
"medianPricePerM2Pln": 17500,
"medianPricePln": 849000,
"p25PricePerM2Pln": 15063,
"p75PricePerM2Pln": 20149,
"propertyType": "flat",
"sampleSize": 223,
"transaction": "sale"
}
| Field | Type | Meaning |
|---|---|---|
location |
string | The searched Otodom location slug. |
transaction |
string | sale or rent. |
propertyType |
string | The property type sampled. |
city |
string | City the row aggregates. |
sampleSize |
integer | Listings with a price per m2 behind this row. |
medianPricePerM2Pln |
integer | Median asking price per square meter, PLN. |
p25PricePerM2Pln |
integer | 25th percentile PLN/m2. |
p75PricePerM2Pln |
integer | 75th percentile PLN/m2. |
medianPricePln |
['integer', 'null'] | Median asking price, PLN. |
medianAreaM2 |
['integer', 'null'] | Median surface, m2. |
currency |
string | Always PLN. |
Health
100.0% success over 26 public runs in the last 30 days. Live record, failures included: status page.
Full documentation, examples and the AI-assistant prompt live on the store page.