Osella

API v1

Dane o nieruchomościach w Warszawie: jeden adres, jedno zapytanie

Prawdopodobne ceny z aktów notarialnych, najnowsze transakcje, szkoły z wynikami egzaminów, dojazdy od drzwi do drzwi, hałas, powódź i plan miejscowy: dane raportów Oselli jako JSON dla Twojego CRM, portalu lub modelu.

curl -G "https://osela.app/api/v1/price" \
  --data-urlencode "address=Hoża 50" \
  --data-urlencode "area_m2=52" \
  -H "X-API-Key: $HD_KEY"

Uwierzytelnianie i odpowiedzi

Wysyłaj klucz w nagłówku X-API-Key każdego zapytania. Klucze tworzysz i unieważniasz na swoim koncie; przechowujemy tylko ich skrót, więc zgubiony klucz wymienia się na nowy, nie odzyskuje.

  • Adres bazowy https://osela.app/api/v1
  • Każda odpowiedź { data, meta } data to odpowiedź; meta podaje daty danych, wersję modelu i źródła do przypisania.
  • Nagłówki X-Quota-Limit, X-Quota-Remaining, X-Quota-Period, X-Data-As-Of, X-Model-Version

Ceny to statystyczna analiza rynkowa aktów notarialnych, a nie wycena (operat szacunkowy), którą może sporządzić tylko rzeczoznawca majątkowy.

Limity

API jest bezpłatne dla każdego, kto jest zalogowany w Osella. Limity dotyczą konta, łącznie dla wszystkich jego kluczy.

  • 50 udanych zapytań na dobę. Doba liczy się według czasu warszawskiego: zapytania wracają o północy (Europe/Warsaw).
  • Najwyżej jedno zapytanie na sekundę.
  • Klucze tworzysz na stronie swojego konta, najwyżej 2 naraz. Unieważniony klucz przestaje działać od razu.
  • Liczy się tylko odpowiedź z danymi (status 2xx). Odrzucone i nieudane zapytania (401, 403, 404, 422, 429, błędy) się nie liczą, podobnie jak /usage i /sources; /usage też obowiązuje jedno zapytanie na sekundę.
  • Po przekroczeniu limitu API odpowiada 429 z nagłówkiem Retry-After: liczbą sekund do północy w Warszawie, gdy skończyły się zapytania na dziś, albo 1, gdy zapytanie przyszło za wcześnie.
  • Każda udana odpowiedź na zapytanie z kluczem ma nagłówki X-Quota-Limit (50), X-Quota-Remaining (ile zapytań zostało na dziś) i X-Quota-Period (day). GET /v1/usage podaje to samo i godzinę, o której zaczyna się nowa doba.
  • Miejsca tylko w Warszawie: adres spoza warszawskiego rejestru adresów albo punkt poza miastem daje odpowiedź 404.

Błędy

401Nie wysłano kluczaSend your API key in the X-API-Key header
401Klucz nie jest nasz albo został unieważnionyUnknown or revoked API key
401Klucz nie należy do żadnego kontaThis key belongs to no account; make a new key in your account page
401Stary klucz, sprzed limitów na kontoThis key was made before the API's per-account limits and no longer works; make a new key in your account page
403Konto, do którego należy klucz, jest zablokowaneThis key's account is blocked, so its API keys do not work
404Nie ma takiego adresu w Warszawie (odpowiedź podpowiada podobne)No such address in Warsaw's address register
404lat i lon wskazują punkt poza WarszawąThat point is outside Warsaw
422Brak parametru lub wartość poza zakresem albo w tym miejscu nie ma mieszkań
429Zapytania na dziś się skończyły: Retry-After podaje sekundy do północy w Warszawie, X-Quota-Remaining wynosi 0This account's 50 API calls for today are used up; they come back at midnight Europe/Warsaw
429Mniej niż sekundę po ostatnim zapytaniu konta: Retry-After wynosi 1This account makes at most one API call a second
{
  "detail": {
    "message": "No such address in Warsaw's address register",
    "suggestions": [
      "Hoża 88",
      "Hoża 86",
      "Hoża 76/78"
    ]
  }
}

Źródła i przypisanie

Pokazując dane, podaj źródła z meta.attribution. Dane z OpenStreetMap udostępniamy tylko jako oceny i minuty, nigdy jako obiekty mapy.

  • Rejestr Cen Nieruchomości, m.st. Warszawa deeds, price estimate, comparables
  • PRG address points, GUGiK address resolution
  • © OpenStreetMap contributors (ODbL 1.0) walking network and amenities, served as scores and minutes only
  • ZTM Warszawa, Koleje Mazowieckie and WKD GTFS, via mkuran.pl public transport times
  • CKE exam results, RSPO school register schools
  • m.st. Warszawa: strategic noise map 2022, school catchments, local zoning plans (MPZP) noise, schools, zoning
  • ISOK flood hazard maps (Wody Polskie) flood risk
  • Urząd m.st. Warszawy, city map portal (mapa.um.warszawa.pl): building permits, heritage register, paid parking and Clean Transport zones planning
  • Rejestr Żłobków i Klubów Dziecięcych, MRPiPS (CC0 1.0) nurseries
  • Komenda Stołeczna Policji, crime by district of Warsaw safety
  • GUS Bank Danych Lokalnych (CC BY 4.0) residents per district (safety rates)
  • Źródło danych: GIOŚ – EKOINFONET; modelling IOŚ-PIB (annual air-quality assessment), processed air

Miejsca

GET/v1/geocode

Wyszukaj oficjalne adresy (i ulice) w Warszawie

ParametrTypOpis
qwymaganystringWpisany tekst: ulica, z numerem lub bez
limitintegerdomyślnie 8Ile wyników (1–20)
curl -G "https://osela.app/api/v1/geocode" \
  --data-urlencode "q=Hoża 50" \
  -H "X-API-Key: $HD_KEY"
Przykładowa odpowiedź
{
  "data": [
    {
      "kind": "address",
      "label": "Hoża 50",
      "official": "Hoża 50",
      "district": "Śródmieście",
      "postcode": "00-682",
      "lat": 52.2263,
      "lon": 21.0129,
      "addr_key": "ulica hoża|50",
      "street_official": "ulica Hoża",
      "number": "50",
      "match": "exact"
    }
  ],
  "meta": {
    "…": "as in every response: api_version, data_as_of, model_version, attribution, took_ms"
  }
}

Ceny i akty

GET/v1/price

Prawdopodobna cena transakcyjna z przedziałami, transakcjami porównawczymi i aktami z budynku

ParametrTypOpis
addressstringAdres w Warszawie, dopasowany do państwowego rejestru adresów (PRG)
latnumberSzerokość geograficzna zamiast adresu (z lon)
lonnumberDługość geograficzna zamiast adresu (z lat)
area_m2numberdomyślnie 50Metraż w m²
roomsintegerLiczba pokoi
floorintegerPiętro (0 = parter, −1 = suterena)
marketsecondary | primarydomyślnie secondarysecondary (rynek wtórny) albo primary (rynek pierwotny)
asking_pricenumberCena ofertowa w zł, do porównania z aktami

Podaj adres albo lat i lon. Adres spoza rejestru zwraca 404 z najbliższymi propozycjami.

curl -G "https://osela.app/api/v1/price" \
  --data-urlencode "address=Hoża 50" \
  --data-urlencode "area_m2=52" \
  --data-urlencode "rooms=2" \
  -H "X-API-Key: $HD_KEY"
Przykładowa odpowiedź
{
  "data": {
    "place": {
      "lat": 52.2263,
      "lon": 21.0129,
      "label": "Hoża 50",
      "addr_key": "ulica hoża|50"
    },
    "price": {
      "ppm2": 35135,
      "ppm2_low": 28110,
      "ppm2_high": 39594,
      "ppm2_low50": 31578,
      "ppm2_high50": 37175,
      "total": 1827000,
      "total_low": 1462000,
      "total_high": 2059000,
      "total_low50": 1642000,
      "total_high50": 1933000,
      "market": "secondary",
      "confidence": "low",
      "typical_error": 0.085,
      "as_of": "2026-04-30",
      "floor_assumed": [
        1,
        "… 6 more"
      ],
      "floor_basis": "building",
      "resale_only_building": false,
      "building": {
        "address": "Hoża 50",
        "match": "exact",
        "n_sales": 31,
        "n_recent": 5,
        "median_ppm2_now": 36487,
        "n_recent_other_market": 0,
        "median_ppm2_now_other_market": null,
        "first_year": 2016,
        "first_primary_year": 2016,
        "max_floor_seen": 7,
        "deeds": [
          {
            "date": "2025-12-31",
            "area": 74.7,
            "rooms": 3,
            "floor": 5,
            "market": "secondary",
            "price": 1720000,
            "ppm2": 23025,
            "ppm2_now": 23176,
            "excluded": "bulk",
            "contradicts_building": false
          },
          "… 30 more"
        ],
        "dist_m": 2
      },
      "model_version": "2026-10-12",
      "comps": [
        {
          "date": "2025-08-28",
          "address": "Hoża 50",
          "area": 72.1,
          "rooms": 3,
          "floor": 4,
          "market": "secondary",
          "price": 2600000,
          "ppm2": 36081,
          "ppm2_now": 36487,
          "dist_m": 2,
          "same_building": true,
          "buyer_company": false,
          "seller_company": false,
          "prev": null,
          "new_building": true,
          "lat": 52.2263,
          "lon": 21.0129,
          "developer_deed": false
        },
        "… 7 more"
      ]
    },
    "asking": null
  },
  "meta": {
    "api_version": "1.0",
    "data_as_of": {
      "deeds": "2026-04-30",
      "schools": "CKE 2024–2026",
      "noise": "2022"
    },
    "model_version": "2026-10-12",
    "attribution": [
      {
        "source": "Rejestr Cen Nieruchomości, m.st. Warszawa",
        "used_for": "deeds, price estimate, comparables",
        "url": "https://architektura.um.warszawa.pl/udostepniane-dane-rcn1"
      },
      {
        "source": "PRG address points, GUGiK",
        "used_for": "address resolution"
      },
      "… 5 more"
    ],
    "took_ms": 24
  }
}
GET/v1/deals

Najnowsze akty w przedziale metrażu w okolicy, od najnowszych

ParametrTypOpis
addressstringAdres w Warszawie, dopasowany do państwowego rejestru adresów (PRG)
latnumberSzerokość geograficzna zamiast adresu (z lon)
lonnumberDługość geograficzna zamiast adresu (z lat)
min_areanumberdomyślnie 40Najmniejszy metraż, m²
max_areanumberdomyślnie 50Największy metraż, m²
marketsecondary | primary | alldomyślnie secondaryKtóry rynek
radiusintegerdomyślnie 1000Promień w metrach (200–3000)
limitintegerdomyślnie 10Ile aktów (1–50)
eraall | new | olddomyślnie allBudynki: wszystkie, nowe (sprzedawane przez dewelopera od 2016) albo starsze

Podaj adres albo lat i lon. Adres spoza rejestru zwraca 404 z najbliższymi propozycjami.

curl -G "https://osela.app/api/v1/deals" \
  --data-urlencode "address=Hoża 50" \
  -H "X-API-Key: $HD_KEY"
Przykładowa odpowiedź
{
  "data": {
    "place": {
      "lat": 52.2263,
      "lon": 21.0129,
      "label": "Hoża 50",
      "addr_key": "ulica hoża|50"
    },
    "deals": [
      {
        "date": "2026-04-20",
        "address": "Wilcza 26",
        "area": 52.4,
        "rooms": 3,
        "floor": 5,
        "market": "secondary",
        "price": 992000,
        "ppm2": 18931,
        "ppm2_now": 18931,
        "dist_m": 314,
        "same_building": false,
        "buyer_company": false,
        "seller_company": false,
        "prev": null,
        "new_building": false,
        "lat": 52.2254,
        "lon": 21.0173
      },
      {
        "date": "2026-03-31",
        "address": "Hoża 5/7",
        "area": 54,
        "rooms": 3,
        "floor": 8,
        "market": "secondary",
        "price": 1250000,
        "ppm2": 23148,
        "ppm2_now": 23202,
        "dist_m": 554,
        "same_building": false,
        "buyer_company": false,
        "seller_company": false,
        "prev": null,
        "new_building": false,
        "lat": 52.2275,
        "lon": 21.0208
      },
      "… 1 more"
    ],
    "summary": {
      "n": 3,
      "n_12m": 59,
      "from": "2026-03-24",
      "to": "2026-04-20",
      "median_ppm2": 18931,
      "median_ppm2_now": 18931,
      "median_price": 992000,
      "median_area": 52.5
    },
    "excluded": [
      {
        "date": "2026-07-31",
        "address": "Al. Ujazdowskie 22",
        "area": 47.1,
        "floor": 4,
        "market": "secondary",
        "price": 1660000,
        "ppm2": 35206,
        "dist_m": 751,
        "reason": "bulk"
      },
      {
        "date": "2026-07-31",
        "address": "Al. Ujazdowskie 22",
        "area": 47.1,
        "floor": 4,
        "market": "secondary",
        "price": 1672700,
        "ppm2": 35476,
        "dist_m": 751,
        "reason": "bulk"
      },
      "… 19 more"
    ],
    "excluded_n": 21,
    "as_of": "2026-04-30",
    "newest": "2026-08-04",
    "era": "all"
  },
  "meta": {
    "…": "as in every response: api_version, data_as_of, model_version, attribution, took_ms"
  }
}

Pełny raport

GET/v1/report

Wszystko dla adresu w jednym zapytaniu: cena, rynek, okolica, szkoły, dojazdy, ryzyka

ParametrTypOpis
addressstringAdres w Warszawie, dopasowany do państwowego rejestru adresów (PRG)
latnumberSzerokość geograficzna zamiast adresu (z lon)
lonnumberDługość geograficzna zamiast adresu (z lat)
area_m2numberdomyślnie 50Metraż w m²
roomsintegerLiczba pokoi
floorintegerPiętro (0 = parter, −1 = suterena)
marketsecondary | primarydomyślnie secondarysecondary (rynek wtórny) albo primary (rynek pierwotny)
asking_pricenumberCena ofertowa w zł, do porównania z aktami
langpl | en | ukdomyślnie plJęzyk generowanych opisów
includestringdomyślnie price,asking,market,neighbourhood,schools,commute,environmentSekcje rozdzielone przecinkami; dodaj deals, by dostać najnowsze akty 40–50 m²

Podaj adres albo lat i lon. Adres spoza rejestru zwraca 404 z najbliższymi propozycjami.

curl -G "https://osela.app/api/v1/report" \
  --data-urlencode "address=Hoża 50" \
  --data-urlencode "area_m2=52" \
  --data-urlencode "rooms=2" \
  -H "X-API-Key: $HD_KEY"
Przykładowa odpowiedź
{
  "data": {
    "place": {
      "label": "Hoża 50",
      "lat": 52.2263,
      "lon": 21.0129,
      "district": "Śródmieście",
      "addr_key": "ulica hoża|50",
      "approximate": false
    },
    "price": "{ … the same as GET /price → data.price }",
    "schools": "{ … the same as GET /schools → data.schools }"
  },
  "meta": {
    "…": "as in every response"
  }
}

Okolica

GET/v1/schools

Szkoła rejonowa, pobliskie podstawówki i licea z wynikami egzaminów oraz żłobki w zasięgu spaceru (miejsca, opłaty, godziny)

ParametrTypOpis
addressstringAdres w Warszawie, dopasowany do państwowego rejestru adresów (PRG)
latnumberSzerokość geograficzna zamiast adresu (z lon)
lonnumberDługość geograficzna zamiast adresu (z lat)
langpl | en | ukdomyślnie plJęzyk generowanych opisów

Podaj adres albo lat i lon. Adres spoza rejestru zwraca 404 z najbliższymi propozycjami.

curl -G "https://osela.app/api/v1/schools" \
  --data-urlencode "address=Hoża 50" \
  -H "X-API-Key: $HD_KEY"
Przykładowa odpowiedź
{
  "data": {
    "place": {
      "label": "Hoża 50",
      "lat": 52.226293145243204,
      "lon": 21.012934110534104,
      "district": "Śródmieście",
      "addr_key": "ulica hoża|50",
      "approximate": false
    },
    "schools": {
      "years": [
        2024,
        "… 2 more"
      ],
      "catchment": {
        "rspo": 35188,
        "name": "SP nr 203 im. Antoniny i Jana Żabińskich",
        "kind": "primary",
        "public": true,
        "address": "ul. ks. Ignacego Skorupki 8",
        "lat": 52.22592,
        "lon": 21.01667,
        "exam": "e8",
        "year": 2026,
        "years": [
          2024,
          "… 2 more"
        ],
        "pct": 20,
        "takers": 36,
        "subjects": [
          {
            "key": "pl",
            "level": "all",
            "n": 36,
            "mean": 69.9,
            "pass_rate": null,
            "pct": 30,
            "warsaw": 74,
            "poland": 64.8,
            "history": [
              [
                2024,
                "… 2 more"
              ],
              "… 2 more"
            ]
          },
          "… 2 more"
        ],
        "walk_min": 4.5
      },
      "catchment_area": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              21.013103,
              "… 1 more"
            ],
            "… 18 more"
          ]
        ]
      },
      "primary": [
        {
          "rspo": 35188,
          "name": "SP nr 203 im. Antoniny i Jana Żabińskich",
          "kind": "primary",
          "public": true,
          "address": "ul. ks. Ignacego Skorupki 8",
          "lat": 52.22592,
          "lon": 21.01667,
          "exam": "e8",
          "year": 2026,
          "years": [
            2024,
            "… 2 more"
          ],
          "pct": 20,
          "takers": 36,
          "subjects": [
            {
              "key": "pl",
              "level": "all",
              "n": 36,
              "mean": 69.9,
              "pass_rate": null,
              "pct": 30,
              "warsaw": 74,
              "poland": 64.8,
              "history": [
                [
                  2024,
                  "… 2 more"
                ],
                "… 2 more"
              ]
            },
            "… 2 more"
          ],
          "walk_min": 4.5,
          "catchment": true
        },
        "… 9 more"
      ],
      "secondary": [
        {
          "rspo": 39099,
          "name": "XXXIII LO Dwujęzyczne im. Mikołaja Kopernika",
          "kind": "high_school",
          "public": true,
          "address": "ul. Józefa Bema 76",
          "lat": 52.23078,
          "lon": 20.95983,
          "exam": "matura",
          "year": 2026,
          "years": [
            2024,
            "… 2 more"
          ],
          "pct": 99,
          "takers": 153,
          "pass_rate": 100,
          "subjects": [
            {
              "key": "pl",
              "level": "basic",
              "n": 153,
              "mean": 84.4,
              "pass_rate": 100,
              "pct": 97,
              "warsaw": 66.3,
              "poland": 63.5,
              "history": [
                [
                  2024,
                  "… 2 more"
                ],
                "… 2 more"
              ]
            },
            "… 12 more"
          ],
          "walk_min": null,
          "transit_min": 33
        },
        "… 9 more"
      ],
      "secondary_total": 153,
      "nurseries": {
        "nearest_city": {
          "name": "Żłobek nr 20",
          "walk_min": 5.5
        },
        "n_15": 3,
        "city_15": 3,
        "places_15": 207,
        "private_fee_median": null,
        "items": [
          {
            "name": "Żłobek nr 20",
            "kind": "nursery",
            "city": true,
            "address": "ul. Wilcza 27a",
            "places": 101,
            "fee": 1500,
            "food_day": 15.87,
            "food_month": null,
            "hours": [
              5,
              "… 2 more"
            ],
            "walk_min": 5.5,
            "lat": 52.2246433,
            "lon": 21.0170555
          },
          "… 3 more"
        ],
        "source": "MRPiPS Rejestr Żłobków, downloaded 2026-10-13"
      }
    }
  },
  "meta": {
    "…": "as in every response: api_version, data_as_of, model_version, attribution, took_ms"
  }
}
GET/v1/commute

Czas dojazdu komunikacją od drzwi do drzwi do głównych miejsc Warszawy

ParametrTypOpis
addressstringAdres w Warszawie, dopasowany do państwowego rejestru adresów (PRG)
latnumberSzerokość geograficzna zamiast adresu (z lon)
lonnumberDługość geograficzna zamiast adresu (z lat)
langpl | en | ukdomyślnie plJęzyk generowanych opisów

Podaj adres albo lat i lon. Adres spoza rejestru zwraca 404 z najbliższymi propozycjami.

curl -G "https://osela.app/api/v1/commute" \
  --data-urlencode "address=Hoża 50" \
  -H "X-API-Key: $HD_KEY"
Przykładowa odpowiedź
{
  "data": {
    "place": {
      "label": "Hoża 50",
      "lat": 52.2263,
      "lon": 21.0129,
      "district": "Śródmieście",
      "addr_key": "ulica hoża|50",
      "approximate": false
    },
    "commute": [
      {
        "key": "centrum",
        "label": "Centrum",
        "hint": "Dworzec Centralny",
        "minutes": 11
      },
      {
        "key": "wola",
        "label": "Rondo Daszyńskiego",
        "hint": "biurowce na Woli",
        "minutes": 25
      },
      "… 3 more"
    ]
  },
  "meta": {
    "…": "as in every response: api_version, data_as_of, model_version, attribution, took_ms"
  }
}
GET/v1/neighbourhood

Ocena okolicy według kategorii i typu gospodarstwa domowego, z czynnikami

ParametrTypOpis
addressstringAdres w Warszawie, dopasowany do państwowego rejestru adresów (PRG)
latnumberSzerokość geograficzna zamiast adresu (z lon)
lonnumberDługość geograficzna zamiast adresu (z lat)
langpl | en | ukdomyślnie plJęzyk generowanych opisów

Podaj adres albo lat i lon. Adres spoza rejestru zwraca 404 z najbliższymi propozycjami.

curl -G "https://osela.app/api/v1/neighbourhood" \
  --data-urlencode "address=Hoża 50" \
  -H "X-API-Key: $HD_KEY"
Przykładowa odpowiedź
{
  "data": {
    "place": {
      "label": "Hoża 50",
      "lat": 52.2263,
      "lon": 21.0129,
      "district": "Śródmieście",
      "addr_key": "ulica hoża|50",
      "approximate": false
    },
    "neighbourhood": {
      "categories": {
        "transit": {
          "score": 93.6,
          "factors": [
            {
              "key": "frequency",
              "label": "Częstotliwość kursów w pobliżu",
              "value": "51 linii w zasięgu 12 min, 302 odjazdów/h",
              "detail": null,
              "score": 99.8,
              "weight": 0.4
            },
            "… 2 more"
          ],
          "summary": "Metro M1 8 min pieszo, 11 min do Centrum",
          "label": "Komunikacja",
          "percentile": 93
        },
        "daily": {
          "score": 92.2,
          "factors": [
            {
              "key": "supermarket",
              "label": "Supermarket",
              "value": "Eurospar, 8 min",
              "detail": null,
              "score": 79.7,
              "weight": 0.3
            },
            "… 3 more"
          ],
          "summary": "supermarket 8 min, 83 sklepy spożywcze w zasięgu 10 min",
          "label": "Codzienne sprawy",
          "percentile": 86
        },
        "green": {
          "score": 41.2,
          "factors": [
            {
              "key": "park",
              "label": "Park lub ogród ≥ 1 ha",
              "value": "Park im. Marszałka Edwarda Rydza-Śmigłego, 13 min",
              "detail": "27,4 ha",
              "score": 46.5,
              "weight": 0.35
            },
            "… 3 more"
          ],
          "summary": "Park im. Marszałka Edwarda Rydza-Śmigłego 13 min, 3% zieleni w promieniu 1 km",
          "label": "Zieleń",
          "percentile": 16
        },
        "education": {
          "score": 70.2,
          "factors": [
            {
              "key": "primary",
              "label": "Publiczna szkoła podstawowa",
              "value": "SP nr 203 im. Antoniny i Jana Żabińskich, 4 min",
              "detail": null,
              "score": 94.2,
              "weight": 0.3
            },
            "… 4 more"
          ],
          "summary": "podstawówka 4 min, wyniki egzaminu lepsze niż w 20% szkół, szkoła rejonowa SP nr 203",
          "label": "Szkoły i dzieci",
          "percentile": 72
        },
        "health": {
          "score": 98,
          "factors": [
            {
              "key": "clinic",
              "label": "Przychodnia",
              "value": "Śródmiejskie Centrum Kliniczne, 2 min",
              "detail": null,
              "score": 98.5,
              "weight": 0.35
            },
            "… 3 more"
          ],
          "summary": "przychodnia 2 min, apteka 2 min",
          "label": "Zdrowie",
          "percentile": 98
        },
        "leisure": {
          "score": 87.1,
          "factors": [
            {
              "key": "food",
              "label": "Restauracje, kawiarnie i bary",
              "value": "229 w zasięgu 10 min pieszo",
              "detail": null,
              "score": 100,
              "weight": 0.4
            },
            "… 2 more"
          ],
          "summary": "229 lokali gastronomicznych w zasięgu 10 min",
          "label": "Gastronomia i czas wolny",
          "percentile": 87
        },
        "quiet": {
          "score": 48.1,
          "factors": [
            {
              "key": "noise",
              "label": "Typowy hałas wokół budynku",
              "value": "≈59 dB Lden",
              "detail": null,
              "score": 66.8,
              "weight": 0.7
            },
            "… 2 more"
          ],
          "summary": "zwykle ≈59 dB, do 73 dB od najgłośniejszej strony",
          "label": "Cisza",
          "percentile": 29
        }
      },
      "personas": {
        "balanced": {
          "score": 76.2,
          "parts": [
            {
              "category": "transit",
              "weight": 0.2,
              "score": 93.6,
              "contribution": 18.7
            },
            "… 6 more"
          ],
          "percentile": 77
        },
        "family": {
          "score": 71.1,
          "parts": [
            {
              "category": "education",
              "weight": 0.25,
              "score": 70.2,
              "contribution": 17.6
            },
            "… 6 more"
          ],
          "percentile": 68
        },
        "professional": {
          "score": 81.2,
          "parts": [
            {
              "category": "transit",
              "weight": 0.28,
              "score": 93.6,
              "contribution": 26.2
            },
            "… 6 more"
          ],
          "percentile": 86
        },
        "senior": {
          "score": 77.4,
          "parts": [
            {
              "category": "health",
              "weight": 0.25,
              "score": 98,
              "contribution": 24.5
            },
            "… 5 more"
          ],
          "percentile": 74
        }
      },
      "weights": {
        "balanced": {
          "transit": 0.2,
          "daily": 0.17,
          "green": 0.14,
          "education": 0.11,
          "health": 0.1,
          "leisure": 0.13,
          "quiet": 0.15
        },
        "family": {
          "transit": 0.12,
          "daily": 0.14,
          "green": 0.17,
          "education": 0.25,
          "health": 0.1,
          "leisure": 0.05,
          "quiet": 0.17
        },
        "professional": {
          "transit": 0.28,
          "daily": 0.17,
          "green": 0.1,
          "education": 0.03,
          "health": 0.07,
          "leisure": 0.24,
          "quiet": 0.11
        },
        "senior": {
          "transit": 0.13,
          "daily": 0.22,
          "green": 0.17,
          "education": 0,
          "health": 0.25,
          "leisure": 0.06,
          "quiet": 0.17
        }
      }
    }
  },
  "meta": {
    "…": "as in every response: api_version, data_as_of, model_version, attribution, took_ms"
  }
}
GET/v1/environment

Hałas, roczne zanieczyszczenie powietrza, ryzyko powodzi i lotnisko, miejscowy plan, pozwolenia na budowę w pobliżu, zabytki i strefy miejskie oraz przestępczość w dzielnicy

ParametrTypOpis
addressstringAdres w Warszawie, dopasowany do państwowego rejestru adresów (PRG)
latnumberSzerokość geograficzna zamiast adresu (z lon)
lonnumberDługość geograficzna zamiast adresu (z lat)
langpl | en | ukdomyślnie plJęzyk generowanych opisów

Podaj adres albo lat i lon. Adres spoza rejestru zwraca 404 z najbliższymi propozycjami.

curl -G "https://osela.app/api/v1/environment" \
  --data-urlencode "address=Hoża 50" \
  -H "X-API-Key: $HD_KEY"
Przykładowa odpowiedź
{
  "data": {
    "place": {
      "label": "Hoża 50",
      "lat": 52.226293145243204,
      "lon": 21.012934110534104,
      "district": "Śródmieście",
      "addr_key": "ulica hoża|50",
      "approximate": false
    },
    "environment": {
      "noise": {
        "bands": {
          "road": "70–75",
          "rail": "<40",
          "tram": "60–65",
          "air": "<40",
          "industry": "<40",
          "road_night": "60–65"
        },
        "codes": {
          "road": 7,
          "rail": 0,
          "tram": 5,
          "air": 0,
          "industry": 0,
          "road_night": 5
        },
        "lden_total": 72.9,
        "lden_typical": 58.7,
        "dominant": "ruch drogowy",
        "dominant_key": "road",
        "night_road": 5
      },
      "risks": [
        {
          "key": "noise",
          "level": "high",
          "label": "Bardzo głośna lokalizacja",
          "detail": "Strategiczna mapa hałasu 2022: ≈73 dB Lden przy najgłośniejszej elewacji, głównie ruch drogowy. WHO zaleca, by hałas drogowy nie przekraczał 53 dB. Sprawdź, na którą stronę wychodzą sypialnie: pokoje od podwórza są dużo cichsze."
        }
      ],
      "zoning": {
        "covered": true,
        "symbol": "8MW/U",
        "designation": "zabudowa wielorodzinna z usługami",
        "plan": "Śródmieście Płd w rej. ul. Poznańskiej",
        "max_height": "30",
        "intensity": "15"
      },
      "planning": {
        "permits": {
          "radius_m": 400,
          "months": 36,
          "n": 4,
          "by_kind": {
            "demolition": 1,
            "storeys": 2,
            "extension": 1
          },
          "items": [
            {
              "date": "2025-09-22",
              "kind": "demolition",
              "works": "rozbiórka istniejącego obiektu budowlanego",
              "name": "Rozbiórka łącznika między budynkami",
              "address": "ul. Nowogrodzka -",
              "dist_m": 271,
              "lat": 52.22765,
              "lon": 21.00964
            },
            "… 3 more"
          ],
          "source": "RWDZ, Urząd m.st. Warszawy"
        },
        "heritage": null,
        "zones": [
          {
            "kind": "sct",
            "url": "https://transport.um.warszawa.pl/sct",
            "as_of": null,
            "label": "Strefa Czystego Transportu",
            "detail": "Starsze auta spalinowe nie mogą wjeżdżać; zasady zaostrzają się etapami (transport.um.warszawa.pl/sct)."
          },
          "… 1 more"
        ]
      },
      "safety": {
        "district": "Śródmieście",
        "period": "2025-10..2026-09",
        "change_period": {
          "now": "2026-01..2026-09",
          "before": "2025-01..2025-09"
        },
        "downloaded": "2026-10-13",
        "rows": [
          {
            "key": "burglary",
            "n": 226,
            "rate": 2.383,
            "city_rate": 1.115,
            "change": {
              "now": 172,
              "before": 231,
              "pct": -0.255,
              "clear": false
            },
            "city_change": {
              "now": 1520,
              "before": 2166,
              "pct": -0.298,
              "clear": true
            }
          },
          "… 4 more"
        ]
      }
    }
  },
  "meta": {
    "…": "as in every response: api_version, data_as_of, model_version, attribution, took_ms"
  }
}

Konto i źródła

GET/v1/usage

Dzisiejsze zapytania Twojego konta, ile zostało i kiedy zaczyna się nowa doba; samo nie liczy się jako zapytanie

curl -G "https://osela.app/api/v1/usage" \
  -H "X-API-Key: $HD_KEY"
Przykładowa odpowiedź
{
  "data": {
    "key": "My CRM",
    "calls_today": 1,
    "quota_day": 50,
    "remaining_today": 49,
    "resets_at": "2026-10-17T00:00:00+02:00",
    "rate_per_sec": 1
  },
  "meta": {
    "…": "as in every response: api_version, data_as_of, model_version, attribution, took_ms"
  }
}
GET/v1/sourcesbez klucza

Źródła danych, licencje i daty (bez klucza)

curl -G "https://osela.app/api/v1/sources"
Przykładowa odpowiedź
{
  "data": {
    "sources": [
      {
        "source": "Rejestr Cen Nieruchomości, m.st. Warszawa",
        "used_for": "deeds, price estimate, comparables",
        "url": "https://architektura.um.warszawa.pl/udostepniane-dane-rcn1"
      },
      {
        "source": "PRG address points, GUGiK",
        "used_for": "address resolution"
      },
      {
        "source": "© OpenStreetMap contributors (ODbL 1.0)",
        "used_for": "walking network and amenities, served as scores and minutes only",
        "url": "https://www.openstreetmap.org/copyright"
      },
      {
        "source": "ZTM Warszawa, Koleje Mazowieckie and WKD GTFS, via mkuran.pl",
        "used_for": "public transport times",
        "url": "https://mkuran.pl/gtfs/"
      },
      {
        "source": "CKE exam results, RSPO school register",
        "used_for": "schools"
      },
      {
        "source": "m.st. Warszawa: strategic noise map 2022, school catchments, local zoning plans (MPZP)",
        "used_for": "noise, schools, zoning"
      },
      {
        "source": "ISOK flood hazard maps (Wody Polskie)",
        "used_for": "flood risk"
      },
      {
        "source": "Urząd m.st. Warszawy, city map portal (mapa.um.warszawa.pl): building permits, heritage register, paid parking and Clean Transport zones",
        "used_for": "planning",
        "url": "https://mapa.um.warszawa.pl/"
      },
      {
        "source": "Rejestr Żłobków i Klubów Dziecięcych, MRPiPS (CC0 1.0)",
        "used_for": "nurseries",
        "url": "https://rejestrzlobkow.mrpips.gov.pl/"
      },
      {
        "source": "Komenda Stołeczna Policji, crime by district of Warsaw",
        "used_for": "safety",
        "url": "https://ksp.bip.policja.gov.pl/ksp/statystyki/46374,Przestepczosc-w-ujeciu-administracyjnym-mst-Warszawy.html"
      },
      {
        "source": "GUS Bank Danych Lokalnych (CC BY 4.0)",
        "used_for": "residents per district (safety rates)",
        "url": "https://bdl.stat.gov.pl/"
      },
      {
        "source": "Źródło danych: GIOŚ – EKOINFONET; modelling IOŚ-PIB (annual air-quality assessment), processed",
        "used_for": "air",
        "url": "https://powietrze.gios.gov.pl/pjp/maps/modeling"
      }
    ],
    "notes": [
      "Prices are a market analysis of deeds, not a valuation (operat szacunkowy).",
      "OpenStreetMap-derived data is served as scores and minutes, never as features.",
      "Deeds are as published by the register; portfolio deals and outliers are excluded from estimates and lists."
    ]
  },
  "meta": {
    "…": "as in every response"
  }
}

Wypróbuj

Zapytania idą z tej strony z Twoim kluczem; klucz zostaje tylko w tej karcie. Odbierz darmowy klucz

Najpierw wklej klucz.
API danych o nieruchomościach w Warszawie | Osella