Privacy Policy
In effect from 2.10.2026.
1. Data controller
The data controller is Matkala Studios (Business ID 3628345-2), Finland. The service appears under the name Lintupassi, Fågelpass, Birdpass, Ptasi Paszport, Ptačí pas, Vtáčí pas, Fuglepass or Fuglepas; this policy applies to all of them. Privacy questions: legal@birdpass.app
2. What data we process and why
- Google account data: name, email address and Google's identifier. We use these to create your account and sign you in. Basis: contract (providing the Service).
- Apple account data (Sign in with Apple): name (if you give it), email address or Apple's private relay email, and Apple's identifier. We also store the sign-in token (refresh token) Apple gives us, so we can revoke it when you delete your account; Apple requires this. Basis: contract and Apple's terms.
- Profile: nickname, region (country) and language. We use these for settings and for tailoring species lists. Your nickname is visible to others only if you turn on your public page (it is part of the page's address). Basis: contract.
- Age: we ask once for your year of birth. The year is not saved; only the age group (under 13, or 13 and older) is stored on your device, and it is not sent to us or stored on our server. If your app store (App Store or Google Play) tells your age range and you allow it, the app uses that instead of asking; from it too only the same age group is stored on the device. You can change your age group in the account settings. If you are under 13, the app does not use device location, the public page or crash reports (see the Children section), and a public page switched on earlier is switched off. If your age group is not known (for example on a new device), you are treated as under 13 until you answer.
- Sightings: species, date, number of birds, sex, how they were detected (seen or heard), note and, optionally, a location point together with a place name derived from it (e.g. bird hide, district and municipality). The place name is looked up on our own server from OpenStreetMap data; the location is not sent to any third party. We store these for your own bird passport, statistics and achievements. Basis: contract.
- Bird quiz: when you play the quiz, we store, for each species you're asked about, whether you recognised it from a photo or a sound (skill level, the number of correct and incorrect answers, and the most recent time you were asked), and how many species in your region are unlocked in the quiz. This data is used only to choose questions for you; it is not shown to anyone else. Basis: contract.
- Public page (optional): if you turn on "Show on website" from the Account page, your sightings (species, date, number of birds, sex, how they were detected and note) become publicly visible via a link to anyone, without signing in; you can additionally allow sighting locations to be shown as a place name (e.g. bird hide, district and municipality). The exact location point and the time a sighting was logged are never shown publicly. While your public page is on, your latest sightings may also appear anonymously in the website's "Latest sightings" section on the front page: species and date and, if you allow locations to be shown, municipality and country, without your nickname. Both settings are off by default and you can turn them off at any time from the Account page. Basis: consent.
- Device location: the app reads the device's location only when you ask for it (for example, adding a sighting at your current location or finding yourself on the map). Location is not stored on the server unless you save a sighting with a location point. Basis: consent, which you can withdraw from your device settings.
- Sound identification: when you start sound identification, the app records a short clip with the device's microphone and sends it to our own server for identification. The clip may contain other sounds too, such as speech. It is processed in memory only, never stored and never sent to a third party. For the free version's monthly quota we store only the time and the method (sound or photo) of each identification; these are deleted after 60 days. The microphone is used only when you start an identification yourself, and you can withdraw its permission from your device settings. Basis: contract.
- Photo identification: when you take a photo or pick one from your photo gallery, the app sends the photo (or the part you crop) to our own server for identification. The photo may show more than the bird. The photo is re-encoded on the device, so its metadata (such as location) is not sent. It is processed in memory only, never stored and never sent to a third party. For the quota we store only the time and method of the identification, as with sound identification. The camera and photo gallery are used only when you start an identification yourself, and you can withdraw their permissions from your device settings. Basis: contract.
- Sessions: to keep you signed in, we store a hash of your session token, its creation and last-used time, and the device identifier your app sends (User-Agent). Basis: contract and legitimate interest (security).
- Subscription: the status and expiry of your Birdpass Plus subscription, the store and product identifier. We never receive your card details. Basis: contract.
- Server logs: the server logs errors (time, error code and request identifier). We do not permanently store requests' IP addresses. Basis: legitimate interest (security and troubleshooting).
- Crash reports (Android): when the app crashes, Firebase Crashlytics (Google) receives technical details of the error: the error message and stack trace, device model, Android version, app version and an install-specific identifier. We never attach your name, email address or sightings to these reports. Reporting is off by default; you can turn it on from the app's Account page. Basis: consent.
- Website: the website (birdpass.app) uses no cookies, analytics or advertising, and visits to it are not logged. Fonts and pages come from our own server, species photos from Cloudflare (see Species photos and sounds). Your language choice on the website is stored only in your browser. The home page's intro video is hosted on YouTube (Google) and loads only when you start it; until then the page shows only a cover image from our own server. When you start the video, Google receives your device's IP address and browser details and may store data in your browser under its own policies. Basis: consent (starting the video).
- Contact form: when you send a message through the contact form on the website's school page, we process your email address and your message. We use them only to answer your enquiry. The message is forwarded as email to our support address via Mailgun (Sinch); it is not stored in our database. Basis: legitimate interest (answering your enquiry).
- Map: map tiles are fetched from our own server, not a third party. Map requests are not logged.
- Species photos and sounds: species photos and sound recordings are stored in, and fetched directly from, Cloudflare R2; your device's IP address is passed to Cloudflare. Some species do not yet have a photo or sound at all.
Providing your data is voluntary, but an account (name or email and sign-in identifier) is required to use the Service; location and notes are always optional. We do not carry out automated decision-making or profiling. We do not use analytics or advertising. We do not sell your data.
3. Who we share data with
- Google: sign-in, crash reports (Firebase Crashlytics) and the website's intro video (YouTube), if you start it.
- Apple and Google Play: subscription purchase and billing.
- RevenueCat: managing and verifying subscription status, and subscription statistics (e.g. the number of subscriptions and revenue; it shows us nothing else about individual users). RevenueCat receives your user identifier and subscription data.
- Cloudflare: species photo and sound storage (see Species photos and sounds) and database backup storage. Backups are kept in the EU.
- Server hosting: the database and server are located on a server in the EU.
- Mailgun (Sinch): delivering messages from the website's contact form as email (EU region).
- Authorities: only where the law requires it.
4. Transfers outside the EU
Google, Apple and RevenueCat may process data outside the EU, for example in the United States. The same applies to Cloudflare for species photos and sounds; database backups, however, are kept in the EU. Mailgun processes contact form messages in its EU region, but as a US company it may also process them in the United States or access them from there. Where transfers concern Google, Apple, RevenueCat, Cloudflare and Mailgun, they rely on the European Commission's adequacy decisions or the EU's standard contractual clauses.
5. Retention periods
- Account, sighting and quiz data: until you delete your account.
- Age: the age group exists only on your device, not on our server.
- Sound and photo identification: clips and photos are never stored; the times and methods of identifications are deleted after 60 days, at the latest when you delete your account.
- Account deletion: immediately removes your profile, sign-in data, sessions, sightings, quiz data and subscription status from our server. Copies are removed from backups as they roll over, within 30 days at the latest.
- Sessions: expire automatically; expired and revoked sessions are removed from the server within 30 days, and at the latest when the account is deleted.
- Crash reports: Crashlytics keeps these for 90 days.
- Contact form messages: we keep them in our email until the matter has been dealt with, for at most two years. Mailgun keeps its delivery logs for a short time under its own policies.
- Server logs: rotate automatically; we do not intentionally keep them longer than needed to investigate errors and security incidents.
- Store and RevenueCat data: purchase data is kept according to their own policies and accounting law. Deleting your account with us does not delete it.
6. Your rights
You have the right to access your data, correct it, delete it, restrict its processing, object to processing based on legitimate interest, and transfer your data to another service. You can also withdraw consent you have given (for example, location access, from your device settings) at any time, which does not affect the lawfulness of processing carried out before the withdrawal. You can delete your account and data yourself from the app's Account page, and export your data from the same page. For other requests, contact legal@birdpass.app; we respond within a month. You also have the right to lodge a complaint with a supervisory authority: the Office of the Data Protection Ombudsman, tietosuoja.fi.
7. Children
Anyone under 13 may also use the Service. We ask once for your year of birth, or use the age range your app store tells; the year is not saved, only the age group (under 13, or 13 and older) is stored on your device and never sent to us, and the age group can be changed in the account settings. For anyone under 13, the app does not use device location, the public page or crash reports. If the age group is not known, you are treated as under 13. We do not seek or process a guardian's consent.
8. Security
We protect data using technical and organisational measures. Session identifiers are never stored in plain text, and access to the server is restricted.
9. Changes
We update this policy as needed. We will notify you in the app of material changes. This policy is drafted in Finnish. If a translation and the Finnish version differ, the Finnish version governs.