Privacy Policy
Last updated: 2026-05-25
We take the protection of your personal data seriously. This privacy policy informs you about which data we process when you use the FoxRide app and the related web services (foxride.app, routes.foxride.app), for which purposes, and on which legal basis. It follows the requirements of the EU General Data Protection Regulation (GDPR) and the Austrian Data Protection Act (DSG).
1. Data Controller
The controller responsible for data processing within the meaning of the GDPR is:
2. What data we process
Depending on how you use FoxRide, we process different categories of data. For each category we name the purpose and the legal basis.
2.1 Account data
What: Email address, name (optional), display name, username, selected language, hashed password. On login: timestamp, IP address (for abuse detection).
Purpose: Providing your user account, authentication, license management, syncing your data across devices.
Legal basis: Art. 6 (1) (b) GDPR (performance of contract). Without this data we cannot provide you with an account.
2.2 Workout and health data
What: Recorded workouts with GPS tracks, distance, speed, elevation, heart rate (from Apple Health or connected sensors), cadence, power (from connected sensors), training effort. Optional: ghost data (your own previous workouts as comparison).
Purpose: Workout recording in the app, display in your profile, cloud synchronisation to other devices (only if you have actively enabled cloud sync).
Legal basis: Art. 6 (1) (b) GDPR (performance of contract) and Art. 9 (2) (a) GDPR (explicit consent) for health data such as heart rate and training effort.
Important: Heart rate and training effort are health data within the meaning of Art. 9 GDPR and enjoy special protection. You provide consent by granting Apple Health access and/or connecting a heart rate sensor. Without this consent FoxRide does not collect this data.
2.3 Route data
What: Self-planned routes with waypoints, route name, distance, elevation profile, optional notes. In the route planner: location queries for geocoding (address search).
Purpose: Storage of your routes, display in the route planner and the app, cloud sync (only if enabled).
Legal basis: Art. 6 (1) (b) GDPR (performance of contract).
2.4 Billing and payment data
What: When purchasing a license via the website: first and last name, billing address, email, country. Payment data (credit card, PayPal, etc.) is processed exclusively by our payment service provider Mollie B.V. — we do not store any card data.
Purpose: Contract execution, invoicing, fulfilment of statutory retention obligations (UGB, BAO).
Legal basis: Art. 6 (1) (b) GDPR (performance of contract) and Art. 6 (1) (c) GDPR (legal obligation) for retention.
2.5 Support and feedback data
What: When you contact us via the contact form or by email: name, email, message content. In the app: feedback texts, optional technical context data (app version, iOS version, device model).
Purpose: Processing your request, improving the app.
Legal basis: Art. 6 (1) (b) GDPR (pre-contractual or contractual measures) or Art. 6 (1) (f) GDPR (legitimate interest in product improvement).
2.6 Newsletter
What: Email address, sign-up date, confirmation date (double opt-in), language preference.
Purpose: Sending the FoxRide newsletter with product news, tips, updates.
Legal basis: Art. 6 (1) (a) GDPR (consent). You can unsubscribe at any time at the bottom of every email or by sending a message to [email protected].
3. iOS App — permissions and local data
The FoxRide iOS app uses several system permissions. All of them are requested individually by tap during onboarding — no permission is enabled automatically on app launch. If you decline a permission, the corresponding features will not work or only work in a limited way. For each permission below we explain: exactly what we access, what we need it for, where the data is stored, and whether it is transmitted to FoxRide servers.
3.1 Apple Health (HealthKit)
What we access: Read: heart rate (e.g. from Apple Watch), existing workouts. Write: your FoxRide workouts including type (Cycling), distance, duration, energy burned, average heart rate, power, cadence, route track, and (from iOS 18) training effort.
Purpose: Display of live heart rate during your ride; saving completed workouts to Apple Health so they remain available in the Fitness app and third-party apps.
Where stored: Strictly local on your device inside Apple Health. Optionally an encrypted cloud backup on our server if you have enabled cloud sync for workouts.
Transmission to FoxRide servers: Read data (heart rate, existing workouts) is NEVER transmitted. Written workouts are ONLY transmitted to FoxRide servers if you have explicitly enabled cloud sync. You can revoke Apple Health access at any time under iOS Settings → Privacy → Health.
3.2 Location (GPS)
What we access: GPS coordinates (latitude, longitude, altitude, speed, accuracy) during active workout recording or navigation. Two levels exist: "While Using the App" (for map display and route planning) and "Always" (additionally for workout recording in the background + auto-pause).
Purpose: Workout tracking (gap-free GPS track even when the screen is locked), navigation along a planned route, auto-pause detection when standing still, displaying your current position on the map.
Where stored: GPS tracks are stored locally on your device. Optionally an encrypted cloud backup if cloud sync for workouts is enabled. When publicly sharing a workout (community), the track is stored as a publicly accessible view on our servers.
Transmission to FoxRide servers: Transmission to FoxRide servers ONLY if you enable cloud sync or deliberately share a workout/route. During recording the data does not leave your device.
3.3 Bluetooth (BLE sensors)
What we access: Connecting to Bluetooth Low Energy sensors: power meters (e.g. 4iiii, Stages), Shimano Di2 shifting, speed/cadence sensors, heart rate straps. We read the sensor values (watts, gear, cadence, speed, heart rate) live.
Purpose: Live display of sensor data on your dashboards during a ride; recording the values as part of the workout.
Where stored: Pairing information (device names, MAC addresses, last connection) is stored locally in the app. Recorded sensor values become part of the respective workout.
Transmission to FoxRide servers: Pairing data is NEVER transmitted to our servers. Sensor values are transmitted only when the corresponding workout is uploaded via cloud sync.
3.4 Motion (CoreMotion)
What we access: The iPhone's motion sensors (accelerometer, gyroscope). We read movement patterns, NOT detailed sensor data as raw values.
Purpose: Workout auto-detection — the app automatically detects when you mount your bike and suggests starting a workout. Improvement of activity detection (pause / riding).
Where stored: Processing happens exclusively on-device, no logging of raw data.
Transmission to FoxRide servers: NO transmission to FoxRide servers.
3.5 Apple Music (Media Library)
What we access: Read/control access to playback currently running on your device (Apple Music or media library). We read title, artist, album artwork of the current track.
Purpose: Music control during a workout directly from inside FoxRide (play/pause/skip/previous) and display of the current track on the workout screen.
Where stored: No storage, only live display in the workout context.
Transmission to FoxRide servers: NO transmission to FoxRide servers.
3.6 Camera
What we access: Camera access when you take a photo of your bike inside the Bike Garage.
Purpose: Capturing photos of your bikes for the Bike Garage (e.g. a profile picture of a bike). We open the camera only when you tap the corresponding button.
Where stored: Captured photos are stored locally in the app. Optionally an encrypted cloud backup on our server if cloud sync for bikes is enabled.
Transmission to FoxRide servers: Transmission to FoxRide servers ONLY if cloud sync for bikes is enabled. Otherwise photos stay exclusively on your device.
3.7 Photo Library (Add-Only)
What we access: Write-only access for adding images. We do NOT read existing photos from your library.
Purpose: Saving workout share graphics (e.g. your tour statistics image) to your photo library so you can share them in social media apps. Only triggered on your explicit tap.
Where stored: Images go directly into your iOS photo library. We keep NO copy on our servers.
Transmission to FoxRide servers: NO transmission to FoxRide servers.
3.8 Push notifications
What we access: Apple Push Notification Service (APNs) device token (alphanumeric identifier of your device for push).
Purpose: Sending notifications about likes, comments, new followers or system messages (e.g. license status).
Where stored: The device token is linked to your user account on our server in Austria. Notifications are delivered via Apple APNs.
Transmission to FoxRide servers: YES — the device token is transmitted to our server as soon as you enable push notifications. You can disable push at any time per category in the app or globally in iOS settings.
3.9 Cloud synchronisation
Cloud sync is DISABLED by default. On first login we ask you whether you want to enable it. When enabled, the app syncs per module (workouts, dashboards, bikes, sensors, routes, ghost data) to our servers in Austria. You can disable cloud sync at any time globally or per module under Settings → Cloud & Backup — existing cloud data is retained until you explicitly delete it.
3.10 Crash reports
In case of an app crash, FoxRide stores a local report (stack trace, app version, device model, iOS version, last 50 log entries). This report is ONLY transmitted if you tap "Send" on the next app launch. We do not transmit personal identifiers such as name or email — however, when you are logged in, the auth header of your account accompanies the request.
3.11 Data categories (Apple Privacy Nutrition Labels)
Apple requires apps in the App Store to categorise the data they process. Below an overview analogous to the Apple Privacy Nutrition Labels:
- Health & Fitness: heart rate, workouts (cycling), distance, duration, calories, power, cadence. Source: Apple Health (with your consent), BLE sensors. Transmission: only with active cloud sync.
- Location: GPS tracks during workouts and navigation. Transmission: only with active cloud sync or explicit sharing.
- User content: bikes (name, photo, components), workouts (title, note), routes (name, waypoints), ghost data (ghost track for comparison rides). Transmission: only with active cloud sync.
- Identifiers: unique user ID (internal), email (for account), APNs device token (when push is enabled). We do NOT use advertising IDs (IDFA) and do NOT track across apps or websites.
- Diagnostic data: crash reports (only when you tap "Send"), performance logs (local). No automatic transmission.
4. Recipients / processors
The following third parties receive access to personal data on our behalf. Data processing agreements pursuant to Art. 28 GDPR are in place with all of them.
4.1 Server hosting
Our API (api.foxride.app), website (foxride.app), AdminBackend, route planner and all database content (accounts, workouts, routes) run on servers located in Austria. Provider: Hetzner Online GmbH, location Falkenstein (DE) and data centre in Vienna. Servers are administered exclusively by the controller (Pocket Systems e.U.).
4.2 CDN for static content
For images, icons and CSS/JS we use Cloudflare R2 (cdn.foxride.app). When loaded, your IP address is temporarily transmitted to Cloudflare. Cloudflare is bound by EU standard contractual clauses.
4.3 Email delivery
Transactional emails (confirmations, password resets, newsletters, invoices) are sent via Proton Mail (Proton AG, Switzerland). Switzerland has an adequacy decision of the EU Commission and is therefore considered a safe third country.
4.4 Payment processing
When you purchase a license via the website, Mollie B.V. (Netherlands) processes the payment. We only forward the data necessary for payment (purchase amount, order number, email) to Mollie. Card or account data is processed exclusively by Mollie, we do not store it. Mollie's privacy policy applies.
4.5 Apple Inc.
When purchasing the app, in-app purchases, TestFlight or push notifications, data is transmitted to Apple Inc. (USA). Apple is certified under the EU-US Data Privacy Framework. Apple's privacy policy applies.
4.6 Routing & geocoding
Route planning runs on our own BRouter server in Austria. Address search (geocoding) and map tiles are sourced from OpenStreetMap-based services, currently Nominatim (OpenStreetMap Foundation, EU). With each query, a technical IP address is transmitted to the respective service.
5. Cookies and similar technologies
We use only technically necessary or functional cookies. We do NOT use tracking or advertising cookies. Consent via a cookie banner is therefore not required (§ 165 (3) Austrian Telecommunications Act 2021).
| Name | Purpose | Duration |
|---|---|---|
PHPSESSID |
PHP session cookie for login and CSRF protection (HttpOnly, Secure, SameSite=Strict). | Session |
foxride_token |
JWT access token after login (Secure, SameSite=Lax). Required for cross-subdomain auth between foxride.app and routes.foxride.app. | ~8 hours |
foxride_refresh_token |
Refresh token to renew expired access tokens. Deleted on logout. | 30 days |
foxride_user |
Minimal user record (ID, display name, avatar URL, language, entitlements) for cross-subdomain display. Contains no PII (no email, no license details). | 30 days |
foxride_language |
Stores your selected language (de/en). | 180 days |
You can disable or delete cookies in your browser. Note that login and language persistence will then no longer work.
6. Web analytics (Plausible)
On foxride.app we use Plausible Analytics (self-hosted on analytics.pocket-systems.com). Plausible records page views without cookies, without cross-site tracking, without IP storage and without fingerprinting. We see aggregated statistics (visitor count, popular pages, approximate country), never individual people. Plausible is GDPR-compliant and does not require consent.
6a. Bio-link click tracking
Purpose: When you click a link on foxride.app/links, we record the slot (e.g. App Store, route planner, Instagram), the UTM parameters (where the click came from, e.g. Instagram), a timestamp, and a pseudonymised hash of your IP address. The goal is to measure which marketing channels generate reach — we only see aggregated click counts, never individual people.
Pseudonymisation: The IP hash is generated with a daily rotating salt (HMAC-SHA256). After 24 hours, re-identification is technically impossible — from that point on, the data is considered anonymised (no longer personally identifiable). No user identifier and no browser fingerprint information is stored.
Legal basis: Art. 6 (1) lit. f GDPR (legitimate interest in measuring marketing effectiveness). No consent is required because no tracking cookies are set and the data is technically anonymous after 24 hours.
Retention period: Click data is deleted after 12 months. The daily rotating salt itself is not persisted — older hashes can no longer be linked back to an IP once the daily salt has rotated.
Right to erasure: Since no user identifier is stored, individual deletion of single click records is technically not possible. After 24 hours, re-identification is excluded anyway, so deletion is neither required nor meaningful.
7. Storage duration
We store personal data only as long as it is necessary for the respective purpose or as long as legal retention obligations exist.
- Account data and user content (workouts, routes, bikes, dashboards): until your account is deleted at your request. Deletion takes place without undue delay.
- Cloud-synced workouts and routes: until you delete them individually or in bulk, or until account deletion.
- Billing and payment data: 7 years (statutory retention period under § 132 BAO and § 212 UGB).
- Support requests: until the issue is resolved, after which they are deleted or anonymised.
- Newsletter sign-up: until you unsubscribe. After unsubscribing, your email is kept on a suppression list for a maximum of 30 days to prevent accidental re-subscriptions.
- Server logs (access logs): maximum 14 days.
8. Transfer of data to third countries
Data is only transferred to third countries outside the EU/EEA in the context of the processors named above (in particular Apple Inc. in the USA and Cloudflare). Such transfers are safeguarded by adequacy decisions of the EU Commission (USA: EU-US Data Privacy Framework), standard contractual clauses (Art. 46 GDPR) and/or your consent (Art. 49 GDPR).
9. Your rights
You have the following rights against us at any time:
- Access (Art. 15 GDPR): You can request a copy of all personal data we process about you.
- Rectification (Art. 16 GDPR): Incorrect data can be changed by yourself in your profile or you can ask us to correct it.
- Erasure (Art. 17 GDPR): You can request deletion of your data. You can trigger account deletion directly in the app under Settings → Account or by emailing us.
- Restriction (Art. 18 GDPR): You can request restriction of processing — we will then continue to store the data, but no longer actively process it.
- Data portability (Art. 20 GDPR): You can receive your data in a structured, common format (JSON, GPX) and transfer it to another provider. Workouts can already be exported as GPX in the app.
- Objection (Art. 21 GDPR): For processing based on legitimate interests, you can object at any time on grounds relating to your particular situation.
- Withdrawal of consent (Art. 7 (3) GDPR): You can withdraw any given consent (e.g. for newsletter, HealthKit, cloud sync) at any time with effect for the future — the lawfulness of processing carried out up to that point remains unaffected.
To exercise your rights, please contact us at: [email protected]
10. Right to lodge a complaint
You have the right to lodge a complaint with a data protection supervisory authority if you believe that we are processing your data unlawfully. Competent authority in Austria:
11. Automated decision making
We do not use automated decision-making within the meaning of Art. 22 GDPR and no profiling with legal effects against you.
12. Changes to this privacy policy
We update this privacy policy when data processing operations, third-party providers or legal requirements change. The current version is always available on this page. For substantial changes we will notify you actively (e.g. via email or in-app notice).