Privacy Policy
Last updated: 31 October 2026 · version 2026-10-31.1
Information translation. This is a complete information translation. If there is a discrepancy, the Polish version is legally binding.
1. Controller and contact
KrolTech Łukasz Król (sole proprietorship registered in Poland)Electronic address: kontakt@infogrunt.pl
Full service provider details (address, tax ID): kroltech.eu
Use the electronic address above for data requests, objections, consent withdrawal and error reports.
2. Ordinary visit and necessary mechanisms
The map and content work without an account. Delivering an HTTP response temporarily requires the server and hosting provider to process the IP address and connection headers. The application does not record the full User-Agent or viewport in its pageview log. The User-Agent is inspected in process memory only to filter bots.
| Data / identifier | Purpose and legal basis | Application retention |
|---|---|---|
| Full IP in a request-limit key | Endpoint security and protection of costly functions; legitimate interests, Article 6(1)(f) GDPR. | Up to 24 hours; cleanup reason code RET_RATE_LIMIT_1D. |
pw_fp — random 128-bit HttpOnly cookie | Binds a CSRF token for a browser without a signed-in account and a short queue/report-protection window to the browser that requested that function. It is not calculated from device characteristics and is not used for analytics. | 30 days in the browser; report-view records without a signed-in account up to 30 days, queue up to 1 hour, CSRF token 24 hours. Remove it in browser settings. |
| Truncated IP and UA hash for an account session | Sign-in security and abuse detection. | Until session expiry, no more than 30 days. |
pw_qa | Technical QA marker set only after an explicit ?qa=1 visit so tests are kept out of user traffic. | 180 days or until ?qa=0/cookie deletion. |
kroltech_owner | A cookie created only after opening a special link that the site owner uses on his own devices so that his visits are not counted in the statistics. It holds only the value 1, no identifier; legitimate interests, Article 6(1)(f) GDPR. | 400 days or until a link with ?kt_owner=0 is opened. |
infogrunt_fp and dzialkaRadarSessionId are retired. The code removes old values and no longer sends X-Fingerprint or X-Dzialka-Session.
3. Visit statistics
Anonymous pageview counter (no consent, no cookies). Every pageview sends to /api/pageview.php only a path category, language, a random ID of that single pageview (for de-duplication) and a QA marker. Nothing is stored on your device (no cookies, no localStorage) and the IP address is not recorded. To estimate daily people, the server computes in memory a keyed HMAC of the date, IP address and User-Agent header and stores only that hash; it changes every day, so visits on different days cannot be linked. Legal basis: our legitimate interest (Art. 6(1)(f) GDPR) in knowing how many people use the service.
Before a choice, after refusal in the Google message, and after consent withdrawal, we do not create, read or transmit ig_browser_nonce_v1. No identified pageview or campaign event is sent. DNT blocks this category regardless of the stored choice.
After analytics consent, the script may create ig_browser_nonce_v1 in localStorage: a random ID, creation time and expiry. JavaScript reads and sends the ID to /api/pageview.php with a path category, language, random event ID and QA marker. It does not send viewport, referrer or a custom User-Agent field. The server rejects an older payload that lacks the current consent-schema marker.
The server records daily and 30-day-window HMACs, path category, language, country from an infrastructure header when available, event ID and QA. Raw entries live for 30 complete days. They are deleted only after a dry run, a private seven-day recovery backup and a verified aggregate containing no user/session identifier, full URL, IP address or click-ID value. Daily aggregates may be retained for longer.
“People” is an estimate: with consent we count browsers by a random ID; without consent, by the daily hashes described above. It is not an exact count of humans and is not directly comparable with pageviews derived from minimised server logs.
3.1. Campaigns and Google providers
Only after analytics consent, ig_campaign_attribution_v1 in sessionStorage keeps allowlisted UTM source/medium/campaign/content values and presence flags for click IDs until the tab session ends. It never stores the gclid, fbclid or similar values. Events sent to /api/track/ping are limited to the event name and ID, language, path category, QA, allowlisted UTM/flags and, for a report failure, a reason code. Raw retention is 30 days.
Google Analytics 4 is fetched only after analytics consent in the Google message and only if production has a valid active ID. This document does not state that Google Analytics is currently active. Before a choice, after refusal, or after consent withdrawal, the browser does not fetch Google Analytics or Google Tag Manager. The Google consent message and the AdSense tag (on pages with ads) load when the page opens — that is how a certified consent platform works; without consent Google shows only limited ads.
Change consent through “Cookie settings” in the footer. Withdrawal blocks future transmissions, aborts an in-flight first-party request, and removes available first-party identifiers and Google cookies accessible from this domain. We cannot undo a request completed before withdrawal or remove a cookie controlled exclusively by an external domain. Re-enabling requires a new explicit choice.
One consent window — the Google message. Consent is collected by Google’s certified consent management platform (TCF); we do not show a separate InfoGrunt banner. In the window you can accept, refuse or open “Manage options” to choose purposes and partners. The site works the same whatever you choose. With consent, Google may show personalised or non-personalised ads. If you refuse, we show limited ads: Google does not store advertising cookies or identifiers on your device and does not personalise ads, but it receives, among other things, your IP address and browser information needed to serve the ad. Analytics (the identified InfoGrunt counter and Google Analytics 4) runs only when you allow Google storage on your device and content measurement (TCF purposes 1 and 8) in the Google message. There are no ads in the report print/PDF, forms, the account or legal pages; on the map and in the parcel report ads sit only in dedicated places next to the content, never on the map. You can change consent at any time with the “Cookie settings” link in the footer, which reopens the Google message. This document does not state that AdSense is currently active.
Report-attempt measurement uses a random identifier held only in the open page memory. It links the start with a complete, partial or failed result and the first use of a card, print or share action. It contains no parcel number, coordinates, address or browser ID; raw events in the existing campaign counter are kept for 30 full days. Analytics consent is required. A browser marked with ?qa=1 is separated in the first-party counter and does not load GA4.
Page performance: after analytics consent, a locally hosted Web Vitals library measures LCP, INP and CLS. The map also records completion time or failure of the visible base tiles; this does not measure cadastral data coverage. At the first page hide we send at most one batch containing available metric values, page category, language and screen-width class (mobile/tablet/desktop). This measurement stores no user ID, IP, User-Agent, full URL or coordinates. The server retains daily histograms for 30 days and removes expired files on the next write. The p75 is a bucket-based estimate; a missing sample is not zero. QA traffic and DNT are excluded.
4. Account, forms and listings
- Account: email, optional bcrypt password hash, optional Google ID, favourites and listing data — until account or item deletion.
__Host-pw_sessand the session row live for 30 days. - Sign-in/deletion codes: hashed code, email, truncated IP and attempt count; valid for 10 minutes and deleted no later than 24 hours after expiry, use or revocation.
- Google OAuth:
pw_goauthis a signed technical cookie (HttpOnly, Secure, SameSite=Lax), valid for up to 10 minutes and cleared on return from Google. It is created only after you select Google sign-in and contains a random state, nonce and PKCE verifier to protect sign-in. We request onlyopenid email: your account identifier, email address and email verification status. We do not request theprofilescope, name or photo. These data are used to sign in or link your InfoGrunt account; we do not receive your Google password. Changing the Google client does not change your InfoGrunt account or invalidate an existing__Host-pw_sesssession. - Recent searches:
dzialkaRecentholds up to five queries, label, coordinates and a timestamp for 30 days. The list itself is not transmitted; selecting an entry may trigger an ordinary geocoding/report request. - Listings: content, photos and optional phone number are public until the listing ends (normally up to 60 days, with renewal). Email is not published and photo EXIF is removed.
- Parcel Guardian: when signed in you can mark parcels to watch (parcel identifier, coordinates, optional name and radius). An automated job checks the public GUNB register of building permits and notifications for anything new nearby and emails the account address or another alert address, which must be confirmed with a code sent to that address. We keep this data until the parcel is removed from the list or the account is deleted.
- Alerts about decisions near a parcel: we store the email, parcel identifier, coordinates and radius. The subscription must be confirmed via a link in an email; unconfirmed ones are deleted after 7 days. An alert runs for one year from sign-up, and the unsubscribe link in every email deletes the subscription immediately.
Article 6(1)(b) GDPR applies to account data and explicitly requested functions; Article 6(1)(f) to security; Article 6(1)(a) and the relevant terminal-device consent to analytics and ads. Withdrawal does not affect processing completed before withdrawal.
Bug reports
The “Report a bug” form sends a description, the page address, a shortened browser name, an optional reply email and a screenshot to our mailbox. The screenshot goes only into the email and is not kept on the server. On the server we keep a copy of the report (time, description, page address, delivery result) and the IP address only as a keyed hash (HMAC): it lets us notice a series of reports but not recover the address. The server copy is deleted automatically after 90 days. The legal basis is our legitimate interest (Article 6(1)(f) GDPR): fixing bugs and preventing abuse.
5. RCN data and Article 14 GDPR information
The source is the Polish Register of Real Estate Prices (RCN), maintained by county authorities and integrated and provided by GUGiK. InfoGrunt obtains source data, validates and minimises it automatically, and creates market statistics. Public output may include transaction observations and derived data such as sample size, median, quartiles, confidence interval, time window, quality tier and municipal ranking. InfoGrunt does not publish names of instrument parties or their contact details.
The purpose is market information, comparable statistics and ranking, not identifying transaction parties. The current method is v5-full-right-free-market-scoped-price-12m and the snapshot is rcn-clean-20260904-2bb45b1a. The RCN snapshot and derived data are versioned; the code currently has no separate automatic TTL for the source snapshot. Source data is not used to profile visitors.
If you believe information concerns you, use the rights below and identify the transaction or report page. The final qualification of Article 14 duties, exceptions and legal bases for RCN requires confirmation by a lawyer/DPO. We do not assume that an exception automatically applies.
6. Recipients and transfers
- SeoHost.pl — hosting and database in Poland/EEA.
- Google — only for Google sign-in selected by you or, with the relevant consent, an active Analytics/AdSense configuration. Google services may involve processing outside the EEA under mechanisms identified by Google, including an adequacy decision or standard contractual clauses.
- buycoffee.to — only after the external support link is selected; InfoGrunt does not receive card details.
- Maps and address search loaded in your browser: OpenStreetMap and Nominatim (OpenStreetMap Foundation, United Kingdom, adequacy decision), OpenFreeMap, Esri (satellite imagery, USA), Photon (komoot), Geoportal and GUGiK services (orthophoto map, parcel boundaries). The provider sees the technical request and the connection IP, but not account data. Driving routes are calculated by our server in the public OSRM service, which receives only coordinates; some address searches are also passed by our server to Nominatim without your IP. Google Maps opens only after you click a link. Domains are listed in the Cookie Policy.
We do not sell personal data.
7. Rights under the GDPR
As applicable, you have rights of access, rectification, erasure, restriction, portability, consent withdrawal and objection to processing based on legitimate interests (Article 21 GDPR), and the right to complain to the President of the Polish UODO. The account provides JSON export and code-confirmed deletion, which also cover the Parcel Guardian, alerts and an agency account; otherwise contact the controller.
Notices and appeals
We process the exact listing URL, explanation, name and email (optional for notices concerning child sexual abuse or exploitation), good-faith declaration and correspondence to handle notices under Article 16 DSA and GDPR Article 6(1)(c). Access is limited to the operator and hosting/email providers. The private receipt link grants access to the decision and your appeal. Do not share it. Decisions are reviewed by a person; the system stores and sends notifications. Appeals are accepted for at least six months from notification. Records stay while the case or visibility restriction remains active; resolved cases are deleted 30 days after the appeal window ends, provided delivery is complete. Active restrictions receive periodic review. Applicable access, rectification, restriction and erasure rights and the right to complain to UODO remain available through kontakt@infogrunt.pl.
Specialist directory (“Join as a specialist”)
In the Join as a specialist form we collect: company name or first and last name, category, area of operation (voivodeship or counties), telephone, email and optionally a website, a short description and a tax ID (NIP). We also record the date and version of consent and an anonymised IP address (abuse prevention). The purpose is to publish the entry next to parcel reports from the selected area — only after the application has been approved manually. We publish the name, category, area, telephone, email, website and description; the NIP is used only for verification and is not published. The legal basis for publication is your consent (Article 6(1)(a) GDPR), and for verifying the application and correspondence about the entry — our legitimate interest (Article 6(1)(f) GDPR). We keep the entry until consent is withdrawn or the entry is deleted; you can withdraw consent, or request deletion or correction of the entry, by writing to the controller at the address in section 1. Withdrawal of consent does not affect the lawfulness of publication before the withdrawal. Data from a rejected application is deleted as soon as it is reviewed. The entry is free of charge.
AI assistants (Claude, ChatGPT and other MCP clients)
The public MCP connector at https://infogrunt.pl/mcp.php (documentation: InfoGrunt in Claude and ChatGPT) works without an account and is read-only. When an AI assistant calls a tool, the server receives only its parameters: a location search text, a parcel identifier, point coordinates, a municipality TERYT code or a region name. We do not receive the conversation or the account data held by the assistant provider (e.g. Anthropic, OpenAI); their processing is described in those providers’ policies. The connector sets no cookies, does not store the content of queries or report views and does not link requests to an InfoGrunt account. We do not store the content of queries, the addresses typed in, or IP addresses. We store only anonymous daily counters: which tool was used, with what result and in which category (e.g. voivodeship or report section name) and from what kind of AI app (e.g. Claude, ChatGPT, “other”, without account name or version), without the query text, parcel number or coordinates; we delete them after 30 days. They are used to improve the plugin. The technical MCP protocol session (a random identifier and protocol state) is stored on the server for at most 1 hour. The IP address is processed transiently to deliver the response, as for an ordinary visit (section 2); the connector rate limit (per minute and per day) is counted per IP address as a one-way HMAC hash, never the raw address; the hash expires with the limit window, at the latest after 24 hours. The legal basis is our legitimate interest (Article 6(1)(f) GDPR): providing public parcel information and protecting the service.
8. Retention, safeguards and changes
Cleanup uses unambiguous cut-offs and reason codes. It counts the exact scope before mutation and, in apply mode, creates a private scope backup with SHA-256; that recovery backup is deleted after seven days. A campaign aggregate contains no person/session identifier, full URL, IP or click-ID value. HTTPS, CSP, HSTS, HttpOnly, Secure, SameSite, token hashing and request limits provide layered safeguards.
A material category or consent-schema change invalidates the old record and shows the choice again. The current consent record expires automatically after 180 days.