Legal
Privacy policy
What data Leopol processes, why, who it is shared with and what your rights are.
Last updated: 26 September 2026

1Data controller
Leopol is a trading name of TrapSpotter BV.
Address: Trekschurenstraat 245, 3500 Hasselt, Belgium
Company number (VAT): BE1031603017
Privacy / DPO email: privacy@trapspotter.com
General contact: contact@trapspotter.com
2What data do we collect?
We collect the following data to provide and improve our services:
- Account data: email address, username, telephone number, and password
- Location data: GPS coordinates for real-time alerts along your route
- Usage data: information about reports, routes, and preferences
- Device data: device type, operating system, app version, and push token
- Payment data: processed by Apple, Google, or Stripe; we do not receive card details
- Communications: messages sent to our AI assistant or WhatsApp bot
- Advertising and app identifiers: only with your consent, to show ads in the free version and to measure our own ad campaigns
- Website and web-app visits: the pages you view and the campaign that brought you (utm_* parameters); Google Analytics cookies only if you accept them (see section 11)
- Searches: what you type into map search
- Diagnostics: crash and error reports
- Document photos: only if you use the document wallet; backed up, encrypted, to your account
3Why do we collect this data?
- To provide alerts, navigation, and user reports
- To manage your account and subscription
- To improve our app and services
- To communicate about your account and important updates
- To comply with legal obligations
- To prevent fraud and combat abuse
4Legal basis (GDPR Article 6)
We process personal data on the following grounds:
- Consent for optional features such as push notifications, analytics, and marketing; consent can be withdrawn at any time
- Performance of a contract to provide account access, subscriptions, and alerts
- Legitimate interests in fraud prevention, security, product improvement, cookieless website statistics, and infrastructure protection
- Legal obligations relating to tax records and lawful authority requests
More information
GDPR Article 6: https://gdpr-info.eu/art-6-gdpr/
5Sharing with third parties (sub-processors)
We do not sell your data. We only share it with sub-processors that help deliver our services under GDPR-compliant agreements.
- Supabase — database, authentication, and file storage using EU hosting in Frankfurt
- Hetzner Online (Germany) — hosting of our own servers for maps, routing, search and live alerts; receives the locations, routes and search terms needed to answer your request, with a hashed user key instead of your name
- Stripe — web payments and subscriptions
- RevenueCat — iOS and Android subscription management; receives your account ID and, to link purchases to your account, your email address, name and phone number
- Apple — App Store payments, Sign in with Apple, push delivery via APNs, speech recognition when you dictate a message (Apple processes the audio), and, only with your consent to advertising measurement, Apple Ads attribution (AdServices): whether an iOS install came from an Apple Ads campaign
- Google — Google Play payments, Google Sign-In, Firebase Cloud Messaging for push notifications, the Play Install Referrer (which campaign led to an install), app updates through Google Play, on-device text recognition for document scans (ML Kit, with the model delivered by Google Play services), and speech recognition on Android when you dictate
- Google Analytics (Google Ireland Limited) — our own Google Analytics 4 property, linked to our own Google Ads account, measures visits to trapspotter.com and use of the web app at app.trapspotter.com. Without consent it receives only cookieless pings, with no cookie and no lasting identifier; with consent (the website’s cookie banner, or the web app’s own consent settings) it uses its cookies and, on the website, Google’s ad-measurement cookies. Email addresses and sign-in and unsubscribe tokens in page addresses are removed before they reach Google. See section 11
- Google Analytics for Firebase — in the iOS and Android app, measures which of our own Google Ads campaigns led to an install, a sign-up or a subscription. Only after you consent to product analytics does it use an app identifier, app events and, reported by our server, the start of your trial and subscription and its renewals, with the price; advertising use also needs your consent to advertising measurement. On iOS, with that consent, Google can match your email address or phone number, hashed on your device, against an ad you saw — on the device itself; it does not leave your device. Without consent the app sends only cookieless pings without any identifier (Google Consent Mode); see section 11
- Google AdMob — advertising in the free version, only when ads are shown and only after you allow advertising measurement and then agree in Google's own consent form. AdMob may use your advertising ID, IP address and coarse location to select and measure ads. Premium subscribers see no ads and their data is not sent to AdMob
- Meta — advertising measurement in the iOS and Android apps, only after you consent to advertising measurement; see section 11. The website and the web app run no Meta tracking. Messages to our WhatsApp bot pass through Meta's WhatsApp Business Platform
- Mapbox — route calculation with live traffic and, as a fallback to our own servers, address search and turning coordinates into an address; receives route points, search terms and coordinates, not your identity
- OpenAI via the Vercel AI Gateway — the AI assistant and the processing of reports you write. To answer, it receives your messages and, as context, your position, speed, current route and saved places (such as home). Your data is not used to train models
- Twilio — the WhatsApp bot
- CM.com — SMS one-time login codes
- Resend — transactional email and the newsletter
- Sentry (EU) — crash and error diagnostics (error type, app version, device model, and your user ID so we can match a crash to a support request)
- Cloudflare — bot protection during sign-in and sign-up (Turnstile)
- Vercel — website hosting, the AI Gateway, and Vercel Web Analytics (cookieless, aggregate page-view counts on the website)
- Uber — only if you order a ride from the app yourself: your pickup point and destination are handed to Uber
Legal requests
We share data with public authorities when required by law.
6Your rights
Under the GDPR, you have the right to:
- Access the data we hold
- Correct inaccurate data
- Request deletion (the right to be forgotten)
- Restrict processing
- Receive portable data in a structured format
- Object to certain processing
- Withdraw consent
- Lodge a complaint with the Belgian Data Protection Authority
Submit a request
Email privacy@trapspotter.com. We respond within 30 days in accordance with the GDPR.
7Security
We use appropriate technical and organisational measures, including TLS 1.3 in transit, AES-256 at rest, database-level row security, rate limits on sensitive endpoints, idempotent payment webhooks, and audit logs for subscription changes.
8Retention
We keep data only as long as necessary:
- Account and profile data: while your account is active; deleted immediately after account deletion
- SMS and one-time password codes: expire after 10 minutes and are then deleted
- Payment records: 7 years under Belgian accounting law
- User reports: their content may remain available to other users but is disconnected from your identity after account deletion
- Anti-fraud data: up to 24 months in one-way hashed form
- Suppression list: if you opt out or delete your account, we keep a one-way hash of your phone number so that we cannot message you again. We do not keep the number itself
- Google Analytics data (website, web app, and the iOS and Android apps): 14 months
9International data transfers
Our primary infrastructure is located in the EU (Supabase in Frankfurt, our own servers at Hetzner in Germany). Several sub-processors are established or process data outside the EU, mainly in the United States: Google (including Google Analytics, which we use through Google Ireland Limited), Apple, Meta, OpenAI, Stripe, RevenueCat, Twilio, Resend, Mapbox, Cloudflare, Vercel (including Vercel Web Analytics) and Uber. Transfers rely on appropriate safeguards:
- EU Standard Contractual Clauses (SCCs)
- The EU–US Data Privacy Framework, for providers certified under it
- European Commission adequacy decisions where applicable
- Additional safeguards required following the Schrems II judgment
More information
GDPR Article 44: https://gdpr-info.eu/art-44-gdpr/
10Children
Leopol is intended for drivers and is not designed for anyone under 16. We do not knowingly collect data from children below the GDPR age threshold. Parents or guardians can report a concern to privacy@trapspotter.com.
11Cookies and tracking
Website (leopol.ai). This website sets no cookies and stores nothing on your device. It runs no Google Analytics, no Meta Pixel, no Tag Manager and no other tracker or advertising pixel. Vercel, which hosts the website, keeps technical server logs for security and operation (such as IP address, time and the page requested). What you enter in the contact form goes to our servers at Supabase in the EU. When you tap an App Store or Google Play button, the link says you came from leopol.ai — a campaign label, not personal data — so an install can be attributed to this website.
Web app (app.trapspotter.com). The web app reports to the same Google Analytics web stream, also with every consent signal denied by default. The website and the web app share one choice (the trapspotter_cookie_consent cookie on trapspotter.com): accepting or rejecting in the website’s banner also applies in the web app until you choose there, and in the web app ‘Allow’ counts as accepting on the website, ‘Analytics only’ or ‘Don’t allow’ as rejecting. In the web app you refine it with its own consent prompt and Settings → Analytics & Tracking: product analytics allows the Google Analytics cookies, and advertising measurement allows Google’s ad measurement. With product-analytics consent, Google Analytics measures page views and product events (account created, onboarding finished, navigation started and finished, report submitted, paywall shown), and when a web subscription starts or renews, our server reports it as a conversion with its value and currency, linked to the Google Analytics browser identifier. Without that consent the web app sends only cookieless pings. It runs no Meta Pixel, no Tag Manager and no Clarity. The website and the web app share the trapspotter.com domain and therefore the Google Analytics cookie: with consent on both, a visit to the website that ends in a sign-up is counted as one visitor.
The app, on every platform, uses localStorage — the same kind of technology as a cookie — to remember your preferences and your consent choice. That is necessary and sits outside consent. The iOS and Android apps use no browser cookies.
iOS and Android apps. If you consent to product analytics, the app runs Google Analytics for Firebase, which measures which of our own Google Ads campaigns lead to installs, sign-ups and subscriptions. Advertising use also needs your consent to advertising measurement. Until you choose, it sends only cookieless pings without any identifier. If you withdraw product-analytics consent, its identifier on your device is erased and our server stops reporting anything.
If you consent to advertising measurement, the Meta Pixel runs inside the iOS and Android apps and the Meta SDK forwards its events to Meta as native App Events. This measures advertising conversions such as sign-ups and subscriptions. It is the only Meta tracking we use anywhere — there is none on the website or in the web app.
On Android, the app reads the Google Play Install Referrer on first launch: the campaign the install came from. The ad click id in it is kept only with your consent to advertising measurement. On iPhone, with your consent to advertising measurement, the app asks Apple (AdServices) whether the install came from an Apple Ads campaign; Apple answers with campaign, ad group and keyword ids, without any device identifier, and we store the answer with your account. On every platform, if a campaign link (utm_* parameters) brought you to the app, we store that campaign with your account as sign-up attribution; ad click ids (such as gclid or fbclid) only with your consent to advertising measurement.
The free version can show ads from Google AdMob, which asks for its own consent in Google’s consent form; see section 5.
Consent is split: product analytics, advertising measurement and our newsletter are three separate switches under Settings → Analytics & Tracking. You can turn them on and off independently, and all three start off. The newsletter is offered when you create your account as a separate, unticked box; you do not have to tick it to use the app, and you can unsubscribe at any time using that switch or the link at the foot of every email.
12Changes
We may update this privacy policy. The date at the top indicates the latest revision. Material changes will be announced by email or an in-app banner.
13Contact and complaints
Privacy / DPO email: privacy@trapspotter.com
Address: Trekschurenstraat 245, 3500 Hasselt, Belgium
You may lodge a complaint with the Belgian Data Protection Authority at https://www.dataprotectionauthority.be/ if you believe we are processing your data incorrectly.