Privacy Policy
Effective date: October 28, 2026
UltraTrain is a training app for ultra trail and ultra marathon runners, on iPhone and Apple Watch. This policy explains what data the app and our server handle, why, who else receives it, how long we keep it and what you can do about it. It covers UltraTrain 2.0 and the earlier 1.x versions (see section 15).
1. Who we are
UltraTrain is developed and run by Mohamed-Amine Idir, who is the data controller for the data described here. For any question or request about your data, write to support@ultratrain.app.
2. Summary
- We don't sell your data, we don't show ads and we don't track you across other companies' apps or websites. The app contains no advertising or tracking SDK and never shows the App Tracking Transparency prompt.
- Your account, athlete profile, races, training plans and runs (including GPS tracks and heart rate) are stored on our server so you can sign in again on another device.
- Heart rate, weight, sleep, HRV and morning check-ins never go to iCloud. They stay on your device, even when iCloud sync is on.
- Screenshots you send as ultra proof are checked by OpenAI and are never stored by us.
- You can delete your account and all its server data from the app at any time.
3. Data you give us
- Account: your email address and password (we only store a bcrypt hash of the password), and your first and last name. With Sign in with Apple, we receive an Apple user identifier, your name if you share it and your email or an Apple private relay address. With Google Sign-In, we receive a Google user identifier, your name and your email.
- Athlete profile: date of birth, sex, height, weight, resting and maximum heart rate, experience level, weekly volume, longest run, training preferences (days, terrain, strength training, injuries and pain frequency) and, if you add them, your ITRA and UTMB indexes.
- Answers to Ultra, the coach: during onboarding you answer questions such as your mission, how you heard about UltraTrain, your ultra experience, your interests, your fears and your dream race. They place you on the rank ladder and shape your plan.
- Races and results: race names, dates, distances, elevation, checkpoints and cutoffs, your goals, the results you declare for your rank, and your race reflections (finish time, ranking, DNF).
- Runs and training: notes, effort and feeling ratings, gear, saved routes and completed sessions.
- Emergency contacts: names and phone numbers you add for run safety. They stay on your device (and in your iCloud if you turn on iCloud sync) and are never sent to our server.
- Ultra proof (optional): a screenshot or photo, or a link to an official results page with the name to look for on it. See section 8.
4. Data from your devices
- Apple Health: with your permission, the app reads heart rate, resting heart rate, heart rate variability (HRV), sleep, body weight, workouts, running, cycling and swimming distances and active energy. It writes your runs to Apple Health as workouts if you turn that on. See section 7.
- Location: precise GPS position while you record a run, including in the background until you stop it. This builds the route, pace, splits and elevation of the run. On the run screen, the app also asks for a single position to show whether GPS is ready; that position stays on your device. If you search for trails near you, your position is sent to OpenStreetMap (see section 9).
- Motion: cadence and running dynamics during a run, computed on your device.
- Camera and photos: only when you take or pick a photo, for example a share card background or an ultra proof. Images you create are saved to your photo library only when you tap Save.
- Apple Watch: runs recorded on the watch, with heart rate, are sent to your iPhone over Apple's watch connection.
- Crash reports: if the app crashes, it sends a report on the next launch: the error type and message, a stack trace, the device model, iOS version, app version and build, and a random report identifier. Reports contain no account identifier.
- Anonymous usage events: a few events about the share overlays (picker opened, template or background chosen, image exported), with the app version, build, platform and language. They contain no account or device identifier, so they can't be linked to you.
- Notifications: if you allow notifications, the push token Apple gives your device is stored with your account so we can send them.
5. How we use your data, and on what legal basis
- To provide the app (contract): your training plan, finish time predictions, rank, XP and streak, the race screen and fuelling plan, Ultra's messages, sign-in on other devices, your subscription and the emails we must send (verification code and password reset).
- With your consent, which you can withdraw at any time in the app or in iOS Settings: Apple Health, location, notifications (weekly summary, training and race reminders), Strava and Google Sign-In.
- On our legitimate interest: crash reports and anonymous usage events to fix bugs and improve the app, the image fingerprints that stop the same proof being reused on another account, and the onboarding attributes sent to RevenueCat to understand which runners subscribe. You can object to these by writing to us.
The ultra proof check and the rank are automated, but they only affect your in-app rank. If you disagree with a proof verdict, write to us and a person will look at it.
6. Where your data is stored
On your device
All your data lives in the app on your iPhone, protected by iOS Data Protection. Sign-in tokens are kept in the iOS Keychain.
On our server
Our server is hosted by Railway in the United States. When you are signed in, it stores:
- your account: email, password hash, names, Apple or Google sign-in identifier, language, referral code, push token, and your web subscription status with its Stripe customer identifier if you subscribed on our website;
- your athlete profile: date of birth, weight, height, resting and maximum heart rate, experience, weekly volume, longest run, ITRA and UTMB indexes;
- your runs: date, distance, duration, elevation, pace, splits, notes, the full GPS track and the heart rate recorded at each point, plus average and maximum heart rate;
- your races, training plans, fitness snapshots, finish time estimates and race fuelling plan;
- your ultra proof check records and image fingerprints (see section 8);
- crash reports and anonymous usage events, which are not linked to your account.
In your iCloud (optional)
iCloud sync is off by default. If you turn it on in Settings, your training data syncs between your devices through your private iCloud database, which only you can access; we can't read it. These health values never go there: heart rate (including the heart rate of your runs), resting and maximum heart rate, weight, sleep, HRV and morning check-ins always stay on your device.
7. Apple Health
- Data from Apple Health is only used to run the app's training features. It is never used for advertising or marketing and never sold.
- Heart rate and weight are stored on our server with your runs and profile so they come back when you sign in on another device. Heart rate, weight, sleep and HRV are never stored in iCloud. Workouts you import from Apple Health become runs in UltraTrain and, if iCloud sync is on, sync like your other runs, without their heart rate.
- Data from Apple Health is never shared with third parties, except when you ask the app to upload a run to Strava: the uploaded file then includes that run's heart rate.
- You can change or revoke access at any time in the Health app or in iOS Settings > Health > Data Access & Devices.
8. Ultra proof: screenshots, photos and results links
Proof is optional. A declared ultra that passes the realism check against your other results unlocks the top tiers without any upload. Each proof check sends your first and last name to our server, together with the name to look for and the result you declared, so we can check that the result is yours.
Screenshot or photo
- The image is processed in our server's memory only. It is never written to disk or to our database, and it is released as soon as the check is done.
- Our server sends the image to OpenAI, our AI provider, which reads the distance, time and name shown on it. OpenAI may keep API inputs for up to 30 days to monitor abuse, then deletes them, and doesn't use data sent through its API to train its models.
- We keep only two fingerprints of the image: a perceptual hash (a short code that can't be turned back into the picture) and a SHA-256 hash. They stop the same image being used on another account. We also keep the kind of check, the verdict and its reason codes.
Results link
- Our server fetches the public page you paste and checks that your name and time appear on it. The results site sees a request from our server, not from your device.
- We keep only the kind of check, the verdict and its reason codes. We don't keep the link, the name you asked us to look for or a copy of the page.
9. Service providers and other services
- Railway (United States): hosts our server and database.
- Resend: sends our emails (verification code and password reset) from its EU region. It receives your email address and the message.
- Apple: Sign in with Apple, push notifications (APNs), iCloud, in-app purchases, Apple Health, and maps. To name the place shown on some share cards, the app sends the highest point of the run's visible route to Apple's geocoding service; it never uses points within 300 m of your start or finish.
- Google: only if you choose Google Sign-In. Google confirms your identity and gives us your name, email and Google user identifier.
- RevenueCat (United States): manages your App Store subscription. It receives your UltraTrain account user identifier, basic device and app information (such as the iOS and app versions), your purchase history, and three onboarding answers attached to your subscriber record: how you heard about UltraTrain (acquisition source), your mission and the rank tier you were placed in. These are used to understand which runners subscribe, never for advertising or tracking.
- OpenAI (United States): reads ultra proof screenshots and photos (section 8).
- Strava (optional): if you connect Strava, the app asks for the
read,activity:read_allandactivity:writepermissions. It lists your activities, including private ones, so you can pick runs to import with their GPS track and heart rate, and it uploads the runs you choose (or every run, if you turn on auto-upload) with their GPS track and heart rate. Our server only exchanges and refreshes your Strava sign-in so our Strava secret never ships in the app; your Strava tokens stay in your device's Keychain. Strava's privacy policy applies to data on Strava. - OpenStreetMap: the trail search in the route library sends the trail name you type and the search position (your position, if you search near you) from your device to the public Overpass API (overpass-api.de).
- Stripe: only for web checkout on ultratrain.app, never in the app. Our server creates a Stripe customer with your account email, and Stripe collects your payment details; we never see your card number. Stripe tells our server when your web subscription starts or ends.
- Instagram: only when you tap "Share to story". The image is handed to the Instagram app on your device; we send nothing to Meta. Instagram's privacy policy applies to what you post.
10. What we don't do
- We don't sell or rent your data.
- We don't use your data for advertising, and the app has no advertising SDK.
- We don't track you across other companies' apps or websites, and we don't share your data with data brokers.
11. How long we keep data, and how to delete it
- Server data is kept while your account exists. Delete Account, in the app's Settings, deletes your account and everything linked to it from our database right away: profile, runs, races, plans, estimates, fitness, fuelling plan, proof records and fingerprints, and push token.
- Proof images are never stored by us. OpenAI may keep them up to 30 days (section 8).
- Crash reports and usage events can't be linked to you, so we can't find or delete them on request. We keep them only as long as they help us fix and improve the app.
- Subscription records are kept by Apple and RevenueCat as required for accounting. Write to us if you want your RevenueCat record deleted.
- On your device, Clear All Data in Settings removes everything stored by the app. Deleting the app also removes its local data.
- In iCloud, you can delete UltraTrain's data in iOS Settings > your name > iCloud > Manage Storage.
12. Security
- All traffic to our server uses HTTPS with certificate pinning, and requests are signed.
- Sign-in uses short-lived tokens stored in the iOS Keychain. Passwords are stored only as bcrypt hashes.
- Data on your device is encrypted with iOS Data Protection, and you can require Face ID or Touch ID to open the app.
13. Your rights
Under the GDPR and similar laws, you can:
- access the data we hold about you and get a copy of it (Export Training Data in Settings exports your training data; write to us for the rest);
- correct it (most of it is editable in the app);
- delete it (Delete Account in Settings);
- restrict or object to its use, including the uses based on our legitimate interest;
- withdraw your consent at any time, in iOS Settings or in the app, without affecting what was done before.
Write to support@ultratrain.app; we answer within one month. You can also complain to your data protection authority, in France the CNIL (www.cnil.fr).
Transfers outside the EU: Railway, OpenAI, RevenueCat, Google, Stripe, Strava and Apple process data in the United States. These transfers rely on the safeguards those providers offer, such as the EU Standard Contractual Clauses or the EU-U.S. Data Privacy Framework.
14. Children
UltraTrain is not meant for children under 13, or under the age of digital consent in your country (15 in France). We don't knowingly collect their data. If you think a child has given us data, write to us and we will delete it.
15. Earlier versions (1.x)
In UltraTrain 1.x, food photos you chose to analyze were sent to OpenAI, food search used Open Food Facts, weather used your location, and if you turned on iCloud sync, health values (heart rate, weight, sleep, HRV, check-ins) were stored in your private iCloud. Starting with 2.0, these features are removed and these health values never go to iCloud. When 2.0 starts for the first time, it moves those health values out of iCloud and onto your device. If you had already turned iCloud sync off, you can delete the old copy in iOS Settings > your name > iCloud > Manage Storage.
16. Changes to this policy
If we change this policy, we update the effective date at the top. For important changes, we also let you know in the app.
17. Contact
Mohamed-Amine Idir, UltraTrain: support@ultratrain.app