Privacy Policy
Version: 10 October 2026
This policy explains which personal data we process when you use the Migradar app (for iPhone and Android) or the website migradar.nl, or contact us; why we do so; how long we keep it; and what rights you have. This policy exists in English and Dutch. Both versions are authentic; in case of any difference, the version in the language in which you use the app or the website prevails, and if you use both languages, the English version prevails.
Summary
- Without an account we store next to nothing about you. The forecast, the map, the species and the alerts work without an account. The server uses your IP address only to send files, without recording it (see 2.1). If you turn on alerts, we keep only what is needed to deliver them, and nothing once you turn them off (see 2.4). If you buy Premium, RevenueCat checks the purchase (see 2.5).
- Your location stays on your phone. If you allow it, the app uses it to pick the nearest place and to show where you are on the map. The coordinates are not sent anywhere and not stored.
- An account is there to have Premium on all your devices. We then keep your email address and until when you have Premium. You create it with an email address and password.
- No ads, no tracking, no analytics services. We sell no data and do not follow you across other apps or sites.
- Payment goes through Apple or Google. We do not see your payment details.
- Our server is in the European Union, at netcup. For sending codes, push messages and checking purchases we work with three service providers in the United States (see 4 and 5).
1. Who is responsible
Controller:
Migradar, established in the Netherlands
Email: support@migradar.com
Website: migradar.nl
We have not appointed a data protection officer; this is not required for our processing. We answer privacy questions ourselves.
2. What data we process, and why
2.1 Using the app without an account
To show the forecast, the map and the species, the app downloads files from our server (api.migradar.nl). As with any internet connection, the server receives your IP address and technical details of the request, such as the time and the file requested. We use these only to send the file. We keep no log of who downloads which file. Bird photos and sounds also come from our own server; the app does not connect to other parties for them.
Legal basis: performance of the contract (you use the app; GDPR Art. 6(1)(b)).
2.2 Your location
The app only reads your location if you have given permission through your device's prompt, and only at these moments:
- when you let the app determine your place: it then looks up the nearest place in a list built into the app;
- on the map: the first time you open the map, and after that when you tap the button for your own position. The map then shows where you are and moves there.
The coordinates never leave your phone and are not stored, not even on your device. Only the chosen place name and region are stored on your device. The app does not use your location in the background. You can also choose a place yourself, without location access.
Legal basis: your consent through your device's prompt (Art. 6(1)(a)). You can withdraw it in your device settings.
2.3 An account
You don't need an account: the whole app works without one, notifications (called "Alerts" in the app) included. With an account, Premium belongs to your email address instead of your Apple ID or Google account, and you have it on every device you sign in on. With an account we process:
| Data | Purpose |
|---|---|
| Email address | Signing in, sending you a code when you sign up or forget your password, and letting you know when your password was changed or your account was deleted |
| Password | Only as an irreversible hash (PBKDF2, 600,000 rounds); we never store the password itself |
| Date created and last used | Expiring sessions and removing dormant accounts |
| A random customer number | Linking a purchase to your account (see 2.5); the number says nothing about who you are |
| Until when Premium applies, bought or granted by us | Applying Premium on your devices and to your notifications |
If you set up notifications in a version of the app from before October 2026, your place name and region, your notification choice, and your device's push address, platform and language are also stored with your account, for the same purpose as in 2.4. That data lapses once you turn on notifications in a newer version, or when you delete your account.
Signing in with Apple. If you choose this, Apple gives us a signed proof containing a fixed number for you (usable only within Migradar) and your email address. We don't ask for your name or any other data. We keep the number, and a key with which we revoke the link at Apple when you delete your account. If you choose "Hide My Email", we receive a forwarding address from Apple instead of your own address. If an account already exists with the email address that Apple confirms, we link it to that account and send you an email about it. You then don't need a password; with "Forgot password" you can still set one later.
While you sign up, we temporarily keep your email address and your password hash until you enter the code from the email. After you sign in, the app keeps a session key in your device's secure storage (Keychain on iPhone, Keystore on Android); the server only holds a hash of it.
The codes always come from support@migradar.com. We send them through Resend (see 4); the email contains only the code and what it is for. The same way, you get a message when your password was changed or your account was deleted, so you notice if someone else did it, and when someone tries to create an account with your address while you already have one.
Legal basis: performance of the contract (Art. 6(1)(b)).
2.4 Notifications
Notifications work without an account. If you turn them on, your device registers with our server, and we process:
| Data | Purpose |
|---|---|
| Your device's push address, its platform (iOS or Android) and the app's language | Delivering the message to the right device, in your language |
| Place name and region | Deciding which forecast your message is about; no coordinates |
| Notification choice | From which level, and for which part of the day (night, morning or both) |
| A device code | Making sure only your device can change your notifications; the server creates the code and itself keeps only an irreversible hash of it |
| Which account you are signed in with, if you are | Applying your account's Premium to your notifications |
| Without an account: RevenueCat's anonymous code (see 2.5) and until when Premium applies to it | Deciding whether you may get notifications at any level |
| Date registered, last contact and last notification | Sending at most one message per evening, and removing registrations of devices that no longer use the app |
Every evening the server checks whether the forecast for your region reaches your threshold. If it does, we send one message, containing the level, the place name, the score, the busiest part of the night and the wind (for example "Busy migration over Utrecht tonight — Score 62/100 · busiest 21:45–02:30 · tailwind 6 m/s"). If you ask for a test alert in the app, we send it straight away, the same way. The message goes through Expo's push service to Apple's or Google's notification service, and from there to your device.
You turn notifications off in the app or in your device settings. If you turn them off in the app, we erase the data above straight away.
Legal basis: performance of the contract (Art. 6(1)(b)). Your device asks separately whether notifications are allowed; that is a setting of your device and not a separate legal basis under the GDPR.
2.5 Buying Premium
You buy Premium through the App Store or Google Play. Apple or Google processes the payment, as an independent controller; we do not see your name, address or payment details.
To check what you have bought, we use RevenueCat (RevenueCat, Inc., United States) as a processor. RevenueCat receives:
- a random customer number (without an account an anonymous code, with an account the customer number from 2.3);
- your purchase and subscription details: which subscription, price and currency, purchase and expiry date, renewal, cancellation and refund;
- the purchase receipt from Apple or Google;
- your IP address and basic device and app details, such as operating system, app version, store country and language.
If you have an account, our server asks RevenueCat until when you have Premium, and stores only that end date. Without an account, and only if your notifications are on, it does the same for your device's anonymous code (see 2.4).
Legal basis: performance of the contract (Art. 6(1)(b)).
2.6 Security and error messages
To prevent password guessing and flooding of the server, we count attempts per IP address and per email address. These counts are erased after one hour; only the number of wrongly entered codes per email address is kept for 24 hours, to prevent guessing codes.
If something goes wrong on the server, it writes an error message to a log. That message may contain your email address (if sending a code failed) or your RevenueCat customer number (if a check or deletion there failed). It does not contain IP addresses. These logs have a fixed maximum size and are overwritten automatically.
Legal basis: our legitimate interest in a secure and working service (Art. 6(1)(f)).
2.7 Contacting us
If you email us, we process your email address, your name if you mention it, and what you write, in order to reply and to record agreements.
Legal basis: performance of the contract, or our legitimate interest in helping you (Art. 6(1)(b) and (f)).
2.8 The website
The website migradar.nl uses no cookies, no analytics services and no third-party fonts or scripts. The strip with tonight's forecast and the list of places for the search box come from our own server. What you choose on the website yourself, namely your language, your area and your place, your browser remembers locally, in its storage (localStorage); we do not receive those choices. This storage is functional: it remembers what you chose so that you do not have to choose again (Article 11.7a of the Dutch Telecommunications Act). To send the pages, the server receives your IP address, as with any website; here too we keep no access log.
Legal basis: our legitimate interest in a working website (Art. 6(1)(f)).
2.9 Our accounts
Apple and Google make sales reports available to us. Apple's reports contain no data by which we could identify you. Google's reports may contain, per purchase, an order number and your country, state or province, city and postal code. The reports we keep for our bookkeeping are kept for seven years, because tax law requires it.
Legal basis: a legal obligation (Art. 6(1)(c)).
3. What stays on your device
On your device, and not with us, are: the chosen place and region, your choice of light or dark, the language if you chose one yourself, whether you have seen the welcome screen and the map explanation, your notification choice and the device code for notifications (see 2.4), a copy of the last forecast downloaded (so the app shows something without a connection), and, after signing in, the session key. RevenueCat's component in the app stores your purchase status and customer number locally.
This disappears when you delete the app. Only the session key and the device code may remain in the Keychain on an iPhone. The session key becomes worthless once you sign out, delete your account or the session expires; the device code once you turn notifications off or we remove the registration (see 6).
This storage is strictly necessary for the app to work as you use it (Article 11.7a of the Dutch Telecommunications Act).
4. Who we share data with
We sell no data and do not share it for advertising. We work with these processors, under a data processing agreement:
| Party | What they do | Where |
|---|---|---|
| netcup GmbH, Karlsruhe, Germany | Hosting of the server, the database and the website | European Union |
| Zoho Corporation B.V., Utrecht, the Netherlands | Email: the mailbox support@migradar.com, where your email to us arrives | The Netherlands and Ireland (EU) |
| Plus Five Five, Inc. (Resend), United States | Sending the codes for sign-up and password reset, and messages about your account | United States |
| 650 Industries, Inc. (Expo), United States | Forwarding push messages to Apple and Google | United States |
| RevenueCat, Inc., United States | Checking and keeping track of purchases | United States |
These parties may only use the data for us and must secure it appropriately.
Independent parties. Apple and Google (App Store, Google Play, payments, signing in with Apple, the APNs and Firebase Cloud Messaging notification services) process data under their own privacy policies. If you have allowed it on your device, Apple and Google themselves collect crash reports or usage statistics of apps and show us summaries of them; you control this in your device settings. Otherwise we only give data to authorities where the law requires us to.
5. Data outside the European Union
Resend, Expo and RevenueCat are in the United States. For these transfers the European Commission's standard contractual clauses apply, which form part of the data processing agreement with each of them. Resend and Expo are also certified under the EU-US Data Privacy Framework. You can request a copy of the safeguards at support@migradar.com.
6. How long we keep data
| Data | Retention |
|---|---|
| Account data (2.3) | Until you delete your account. An account that has not been used for three years and has no running subscription is deleted automatically |
| Link with Apple (2.3) | Until you delete your account; we then immediately revoke it at Apple |
| Sign-up not yet confirmed (email address and password hash) | Until you enter the code; otherwise it expires after 10 minutes and we erase it within an hour |
| Sessions | Expire after 90 days without use, and at the latest one year after signing in |
| Sign-up and password reset codes | 10 minutes, and usable only once |
| Notification registration (2.4) | Until you turn notifications off in the app, until Apple or Google reports that the push address no longer works, or until the app has not checked in for 400 days |
| Notification data with an account from an older version (2.3) | Until you turn on notifications in a newer version, or until you delete your account |
| Abuse counters (2.6) | One hour; the number of wrongly entered codes 24 hours |
| Backups of the account data | 14 days (see below) |
| Server error logs (2.6) | Until they are overwritten; each log has a fixed maximum size |
| Data at RevenueCat, with an account | Until you delete your account; we then have RevenueCat erase your customer data immediately |
| Data at RevenueCat, without an account | As long as needed to check and restore your purchase; on request we erase it sooner (see 8) |
| Emails sent via Resend | 30 days, for delivery and troubleshooting (Resend's retention period); the code itself is worthless after 10 minutes |
| Emails to us | Two years after the last contact |
| Sales reports (2.9) | Seven years |
We make a backup of the account data every night, on the same server in the EU and readable only by the administrator. We keep it for 14 days. A deleted account is therefore gone from every copy after 14 days at the latest.
7. Security
We encrypt all connections (HTTPS). Passwords, codes and session keys are stored on the server only as irreversible hashes. The number of sign-in attempts and the number of attempts to guess a code are limited. You cannot choose a password that appears in a known list of leaked passwords (Have I Been Pwned); for that check, only the first five characters of an irreversible hash of the password leave the server, never the password itself or your email address. The server is in the EU, and only Migradar has administrator access to it. No security is perfect. If something does go wrong with personal data, we report it to the Dutch Data Protection Authority (Autoriteit Persoonsgegevens), and to you if it poses a high risk to you, as the GDPR requires.
8. Your rights
You have the right to access your data, to have it corrected or erased, to have processing restricted, to object to processing based on our legitimate interest, and to receive your data in a common format. You can withdraw consent at any time, with effect from that moment.
- Deleting your account can be done directly in the app: Settings › Account › Delete account. See also Delete account.
- For anything else email support@migradar.com from your account's email address. That way we know the request comes from you; if we are in doubt, we ask for additional confirmation.
- Without an account we hold almost nothing about you. If you bought Premium and want to access or erase your data at RevenueCat, send us the order number of your purchase at Apple or Google; that lets us find it.
We respond within one month. If a request is complex, this may be extended by two months; we will then tell you so within the first month, with the reason. A request is free of charge. If a request is manifestly unfounded or excessive, for example because it keeps being repeated, we may charge a reasonable fee or refuse it; we will then explain why.
A subscription does not stop when you delete your account; you cancel it in the App Store or Google Play.
If you disagree with how we handle your data, please tell us first. You can also lodge a complaint with the Autoriteit Persoonsgegevens (autoriteitpersoonsgegevens.nl), or with the supervisory authority in the country where you live.
9. Age
The app is suitable for all ages: without an account we store nothing about you, except what is needed for notifications if you turn them on (see 2.4). For an account you must be 16 or older, or have the permission of a parent or guardian. If it turns out that we hold data of a younger child without that permission, we delete it.
10. What we do not do
- No advertising and no ad networks.
- No tracking across other apps or sites, and no advertising ID.
- No third-party analytics or crash services in the app or on the website.
- No sale of data.
- No automated decisions about you with legal or similarly significant effects.
- We do not use your data to train AI models. The model behind the forecast is trained on radar and weather data, not on user data.
11. Changes
If this policy changes on a point that matters to you, we will announce it in advance in the app, by email if you have an account, or on the website. The date at the top shows which version applies; we will send you earlier versions on request.
12. Contact
Migradar, established in the Netherlands
Email: support@migradar.com
Website: migradar.nl