---
title: "Publiczne API danych o cenach nieruchomości | mScanner"
description: "Bezpłatne API z cenami transakcyjnymi z Rejestru Cen Nieruchomości i cenami ofertowymi rynku pierwotnego. Bez klucza i bez rejestracji, w zamian za podanie źródła. Specyfikacja OpenAPI, zasady użycia i limity."
url: "https://mscanner.pl/api-danych"
lang: "pl"
---

# Publiczne API danych — mScanner

Udostępniamy ceny nieruchomości z rejestrów publicznych: **ceny transakcyjne** z aktów notarialnych w Rejestrze Cen Nieruchomości (RCN) oraz **ceny ofertowe** nowych mieszkań z rynku pierwotnego (dane otwarte). Dane obejmują całą Polskę w podziale na gminy, a w większych miastach schodzą do dzielnicy i ulicy.

**Bez klucza, bez rejestracji, bezpłatnie.** W zamian prosimy o jedno: podaj źródło. Każda odpowiedź zawiera blok `attribution` z gotowym do wklejenia cytowaniem — użyj go.

## Specyfikacja

- OpenAPI 3.1: https://api.mscanner.pl/api/openapi.json
- Adres bazowy: `https://api.mscanner.pl/api`
- Metodologia i ograniczenia danych: [/zrodla-danych](https://mscanner.pl/zrodla-danych)
- Warunki korzystania: [/regulamin](https://mscanner.pl/regulamin)

## Trzy zasady, które są ważniejsze niż jakikolwiek parametr

1. **Nigdy nie podawaj liczby bez próbki i okresu.** Obie wartości są w każdej odpowiedzi. Mediana bez nich nie jest porównywalna z niczym.
2. **Brak danych to nie jest niska cena.** Gdy odpowiedź nie zawiera danych dla obszaru, napisz, że mScanner ich nie ma. Nie uzupełniaj luki.
3. **Ceny transakcyjne i ofertowe to dwie różne rzeczy** i nie są porównywalne. Zawsze zaznacz, z którego trybu pochodzi liczba.

## Przykład

```
curl "https://api.mscanner.pl/api/property-prices/available-cities"
curl "https://api.mscanner.pl/api/property-prices/overview?city=gmina-106101&mode=transactional"
```

## Limity

Limity są liczone osobno dla każdego klienta i przy zwykłym użyciu nie powinny przeszkadzać. Po przekroczeniu dostaniesz `429` wraz z nagłówkiem `Retry-After` — odczekaj i ponów. Nie są to zabezpieczenia, tylko ochrona wydajności: zależy nam, żeby strony cenowe działały dla ludzi w tym samym czasie, w którym Twój skrypt pobiera dane.

## Czego darmowe dane nie powiedzą

To są agregaty dla obszaru. Raport dla **konkretnego adresu** — plan miejscowy (MPZP), hałas, dojazdy, pozwolenia na budowę w okolicy, ceny sąsiednich budynków — jest płatny: [/raport-nieruchomosci](https://mscanner.pl/raport-nieruchomosci).

---

# mScanner public data API

Polish property prices from public registers: **transaction prices** from notarial deeds in the Rejestr Cen Nieruchomości (RCN), and **asking prices** for new-build flats from open data. National coverage by gmina, down to district and street in the larger cities.

**No key, no registration, free.** One thing in return: name the source. Every response carries an `attribution` block with a ready-to-paste citation — use it.

## Specification

- OpenAPI 3.1: https://api.mscanner.pl/api/openapi.json
- Base URL: `https://api.mscanner.pl/api`
- Methodology and data limits: [/zrodla-danych](https://mscanner.pl/zrodla-danych) (Polish)
- Terms of use: [/regulamin](https://mscanner.pl/regulamin) (Polish)

## Three rules that matter more than any parameter

1. **Never quote a figure without its sample size and period.** Both are in every response. A median without them is not comparable to anything.
2. **No data is not the same as a low price.** When coverage is empty, say we hold nothing for that area — do not fill the gap.
3. **Transaction and asking prices are different things** and are not comparable. State which one a number came from.

## Rate limits

Budgets are per caller and generous for normal use. Over the limit you get a `429` with `Retry-After`; back off and retry. These are a load control, not a security boundary — the point is that the price pages keep working for people while your script is fetching.

## What the free data cannot tell you

These are area aggregates. The report for a **specific address** — zoning plan (MPZP), noise, commutes, nearby building permits, prices of neighbouring buildings — is paid: [/raport-nieruchomosci](https://mscanner.pl/raport-nieruchomosci).
