TL;DR
- EKW (Elektroniczne Księgi Wieczyste) to oficjalny rejestr nieruchomości - 25 milionów wpisów w 352 wydziałach sądowych
- Brak API. Portal to aplikacja JSP chroniona przez WAF blokujący wszystkie IP datacenter
- Zbudowałem aktora na Apify, który nawiguje portal używając proxy rezydencjalnych i zwraca JSON za $0.065 za nieruchomość
- Oficjalny odpis sądowy kosztuje 20 PLN. Ten aktor daje te same dane za 10-50x mniej
Dlaczego EKW Nie Ma API
Elektroniczne Księgi Wieczyste to cyfrowa wersja rejestru nieruchomości prowadzonego przez Ministerstwo Sprawiedliwości. System obejmuje 25 milionów wpisów zarządzanych przez 352 wydziały sądowe w całej Polsce. Każde mieszkanie, dom, działka i budynek komercyjny ma odpowiedni wpis w tym rejestrze.
Pracujesz w nieruchomościach, bankowości lub usługach prawnych - sprawdzasz księgi wieczyste codziennie. Kto jest właścicielem? Jakie są hipoteki? Służebności? Ograniczenia?
Portal ekw.ms.gov.pl pozwala sprawdzić jedną nieruchomość na raz po numerze KW (np. WA4M/00012345/6). Brak dostępu hurtowego, eksportu, API. System został zbudowany jako aplikacja JSP po stronie serwera - nie ma zapytań XHR, endpointów JSON, ukrytych API REST. Każda interakcja wymaga wypełniania formularzy HTML, klikania przycisków i parsowania wyrenderowanych tabel.
Oficjalny odpis sądowy kosztuje 20 PLN i wymaga formalnego wniosku. Przy due diligence na dziesięciach lub setkach nieruchomości - to się nie skaluje.
EKW Wyzwania Techniczne: WAF, Proxy, Cyfra Kontrolna
Ochrona WAF Blokuje IP Datacenter
W przeciwieństwie do innych polskich rejestrów (KRS, CRBR, KNF), portal EKW ma Web Application Firewall, który blokuje wszystkie IP datacenter. Standardowe proxy, VPN i serwery cloud są natychmiast blokowane. AWS, GCP, Azure, Hetzner - wszystko zablokowane.
Aktor wymaga polskich proxy rezydencjalnych. To jedyny aktor w całym zestawie polskich rejestrów z tym wymaganiem, dlatego koszt za zapytanie jest nieco wyższy niż u pozostałych aktorów w serii.
Algorytm Cyfry Kontrolnej Numeru KW
Numery KW mają format XXXX/XXXXXXXX/X, gdzie ostatni znak to cyfra kontrolna walidowana po stronie serwera. Błędna cyfra kontrolna oznacza odrzucenie zapytania.
Algorytm używa mapowania znaków (A=10, B=11, C=12... X=30, Y=31, Z=32) i powtarzającego wzorca wag [1,3,7,1,3,7,1,3,7,1,3,7]. Każdy znak kodu sądu i numeru jest konwertowany na wartość liczbową, mnożony przez odpowiednią wagę, a wyniki są sumowane. Cyfra kontrolna to suma modulo 10.
Aktor automatycznie oblicza cyfrę kontrolną, jeśli podasz tylko kod sądu i numer - nie musisz liczyć tego ręcznie.
Nawigacja Sesji i Formularzy
Ponieważ portal to tradycyjna aplikacja JSP ze stanem sesji po stronie serwera, aktor musi utrzymywać cookies i przestrzegać dokładnej sekwencji przesyłania formularzy. Pominięcie kroków lub wysłanie formularzy w złej kolejności skutkuje błędami sesji.
EKW księgi wieczyste scraper: jak używać
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("minute_contest/ekw-ksiegi-wieczyste-scraper").call(
run_input={
"kwNumbers": ["WA4M/00012345/6"],
"viewType": "aktualna", # 'aktualna' = bieżące, 'zupelna' = pełna historia
"sections": ["I-O", "II", "III", "IV"],
"proxyConfiguration": {
"useApifyProxy": True,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
for prop in items:
print(f"KW: {prop['kwNumber']} | {prop.get('propertyType')}")
for entry in prop.get("dzialII", {}).get("entries", []):
print(f" Właściciel: {entry['value']}")
for entry in prop.get("dzialIV", {}).get("entries", []):
print(f" Hipoteka: {entry['value']}")
JavaScript (Node.js)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('minute_contest/ekw-ksiegi-wieczyste-scraper').call({
kwNumbers: ['WA4M/00012345/6'],
viewType: 'aktualna',
sections: ['I-O', 'II', 'III', 'IV'],
proxyConfiguration: { useApifyProxy: true, apifyProxyGroups: ['RESIDENTIAL'] }
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(p => console.log(`KW: ${p.kwNumber} | ${p.propertyType}`));
EKW dane nieruchomości: co dostajesz
Rejestr podzielony jest na 5 działów, każdy zawierający inną kategorię informacji o nieruchomości:
| Dział | Zawartość |
|---|---|
| Dział I-O | Oznaczenie nieruchomości - powierzchnia, lokalizacja, numer ewidencyjny, przeznaczenie |
| Dział I-Sp | Prawa związane - np. miejsce parkingowe, służebności mediów związane z nieruchomością |
| Dział II | Własność - kto jest właścicielem, udziały, podstawa nabycia |
| Dział III | Prawa, ograniczenia, służebności, obciążenia, roszczenia egzekucyjne |
| Dział IV | Hipoteki - kwoty, wierzyciele, waluty, oprocentowanie |
Każdy dział zwraca ustrukturyzowane pary etykieta-wartość sparsowane z tabel HTML portalu. Możesz wybrać, które działy ekstraktować - jeśli potrzebujesz tylko danych o własności, zamów sam Dział II, żeby przyspieszyć scrapowanie.
Parametr viewType kontroluje, czy dostajesz stan bieżący (aktualna) czy pełną historię (zupelna) włącznie ze wszystkimi poprzednimi właścicielami, anulowanymi hipotekami i zmianami historycznymi.
Scenariusz: Due Diligence Portfela Nieruchomości
Fundusz private equity ocenia portfel 200 nieruchomości komercyjnych w Warszawie pod kątem potencjalnej akwizycji. Przed złożeniem oferty muszą zweryfikować:
- Bieżąca własność (Dział II) - potwierdzenie, że sprzedający faktycznie jest właścicielem
- Istniejące hipoteki (Dział IV) - identyfikacja obciążeń do spłacenia przy zamknięciu transakcji
- Ograniczenia i służebności (Dział III) - flagi nieruchomości z roszczeniami egzekucyjnymi
- Oznaczenie nieruchomości (Dział I-O) - weryfikacja, czy powierzchnia i przeznaczenie zgadzają się z deklaracjami sprzedającego
Oficjalna droga: 200 odpisów po 20 PLN to koszt 4000 PLN i kilka dni ręcznych wniosków. Z tym aktorem te same dane kosztują ~55 PLN i są gotowe w mniej niż godzinę.
Kto Potrzebuje Danych z Ksiąg Wieczystych
- Banki i kredytodawcy - weryfikacja własności i istniejących obciążeń przed udzieleniem kredytu
- Deweloperzy - hurtowe sprawdzanie nieruchomości pod kątem obciążeń i ograniczeń przed akwizycją
- Kancelarie prawne - due diligence transakcji nieruchomościowych, weryfikacja tytułu prawnego
- Windykacja - identyfikacja majątku dłużników po znanych numerach KW
- Inwestorzy - screening celów akwizycji pod kątem ukrytych zobowiązań i konkurencyjnych roszczeń
EKW Scraper Cennik vs Oficjalne Odpisy
| Metoda | Koszt za nieruchomość |
|---|---|
| Oficjalny odpis sądowy | 20 PLN (~$5) |
| Ręczne sprawdzenie na portalu | Darmowe (po jednym, bez eksportu) |
| Ten aktor | ~0.27 PLN (~$0.065) |
Uwaga: Wymaga planu Apify z dostępem do proxy rezydencjalnych (niedostępne na darmowym planie). Wymaganie proxy rezydencjalnych jest specyficzne dla EKW ze względu na ochronę WAF.
FAQ
Czy mogę szukać w EKW po adresie zamiast numeru KW?
Nie. Portal EKW akceptuje tylko numery KW (np. WA4M/00012345/6). Nie ma wyszukiwania po adresie. Jeśli nie znasz numeru KW, możesz go znaleźć w starostwie powiatowym (wydział geodezji) lub przez mapę ewidencyjną na geoportal.gov.pl.
Jaka jest różnica między widokiem "aktualna" a "zupelna"?
Widok aktualna (bieżący) pokazuje tylko aktywny stan - obecni właściciele, aktywne hipoteki, istniejące ograniczenia. Widok zupelna (pełny) zawiera kompletną historię - wszyscy poprzedni właściciele, anulowane hipoteki, zmiany historyczne. Pełny widok trwa dłużej i generuje więcej danych.
Jak szybko EKW scraper przetwarza nieruchomości?
Ze względu na ochronę WAF i wymaganie proxy rezydencjalnych, aktor przetwarza około 10-20 nieruchomości na minutę. To wolniej niż inne aktory w zestawie, ale wciąż o rzędy wielkości szybciej niż ręczne wyszukiwanie. Dla dużych partii (1000+ nieruchomości) czas działania to 1-2 godziny.
Wypróbuj: apify.com/minute_contest/ekw-ksiegi-wieczyste-scraper
Ten artykuł jest częścią serii Polish Business Data APIs o programistycznym dostępie do polskich rejestrów publicznych.
Top comments (0)