Privacy Policy
Please read this Policy carefully. By using the App you confirm that you have read it.
1. Who we are
This Policy explains how the GrekFit app for iPhone and Apple Watch (the “App”) processes personal data.
Data controller: Roman Hrekul (Hrekul Roman Yuriiovych), sole proprietor (FOP), taxpayer ID (RNOKPP) 3503209173, registered address: apt. 4, 41 Shkrumeliaka St., Kolomyia, Ukraine. Contact: support@grekfit.com.
This Policy covers only the iOS App and the grekfit.com website.
2. Summary
- We collect only what is needed for training, nutrition, progress and the club.
- Apple Health data is never used for advertising, never sold and never shared with third parties for marketing.
- The App has no ads and no third-party analytics. There is our own usage analytics on our server (you can turn it off, section 3.11) and the Meta SDK, which sends events for GrekFit ads only if you allow tracking in the iOS system prompt (section 3.15).
- Payments are handled by Apple — we never see your card details.
- AI features (food and voice recognition, Coach comments) work only after separate consent.
- Data reaches Telegram only when you tap a club action yourself (section 3.13).
- You can delete your account right in the App.
3. Data we process and why
3.1. Account
Sign-in is via Sign in with Apple or Google, whichever you choose.
Apple. The App asks Apple for your name only and receives a user identifier. We do not request and do not receive your email — neither your real address nor an Apple relay address.
Google. If you sign in with Google, sign-in happens on Google’s page (we never see your Google password), and Google gives us your name, email address and Google account identifier. The email is kept in the sign-in system to recognize your account and is used for emails with tips and offers only with your separate consent (section 3.14).
We don’t send service emails; emails with tips and offers are sent only with your separate consent (section 3.14) and only to an email already in your account (Google sign-in). If you need help, write to support@grekfit.com and we will reply to the address you wrote from. Purpose: to create and secure your account and sync data across devices.
3.2. Profile, workouts, nutrition
Data you enter: club display name, sex, age, goal, level, training schedule, body measurements, weight; workouts (exercises, weight, reps, duration, perceived exertion), exercise notes; nutrition (foods, portions, calories and macros), supplements (the name and dose you enter yourself), target weight; reminder settings (which are on, the hour) and time zone; a consent log (which version of the documents you accepted and when). Purpose: to build your program, track load, progress and calories, send reminders at your local time and record your consent.
3.3. Apple Health
Only with your permission, which you can change at any time.
| We read | steps, active energy, resting energy, sleep, heart rate, resting heart rate, heart rate variability (HRV), weight, height, biological sex, date of birth |
|---|---|
| We write | workouts, weight; for outdoor cardio: route and distance |
| Why | to show activity and sleep, estimate training readiness, account for activity in calories, prefill weight, height, sex and age in your profile, and save your workouts to Health |
Heart rate, heart rate variability and sleep are processed on your device and are not sent to our server. Weight, height, sex and age taken from Health are stored in your profile the same way as values entered manually. We write to Health only what you entered or performed yourself.
Health data is not used for advertising, marketing, profiling or use-based data mining, is not sold, is not shared with data brokers, insurers or employers, and is not shared with any third party without your permission. It does not reach iCloud: the App storage that holds Health data and anything derived from it is excluded from device backup. To revoke access: Settings → Health → Data Access & Devices → GrekFit.
3.4. Club and leaderboard
If you take part in the club, other members can see your name, profile photo (avatar), points and workout streak, status (for the top 3), and your city, gym or Instagram — only if you filled them in. Your profile photo is stored at a public link that club members see: no password is needed, so anyone who has the link can open it. You can turn off club visibility in Profile → Settings → Privacy → Data & visibility → Show in community.
Country under “Where we are”. We show your country to club members only with your separate consent — the App asks once. It is the country you entered in your profile or, if you did not enter one, the country of your App Store region as reported by Apple. We do not use your location for the country and do not receive a city from the App Store. Without consent no member sees your country, and the App Store country is not saved to your club profile. You can change this anytime in Profile → Settings → Privacy → Data & visibility → Show country in the club.
Steps in the “By activity” ranking. Only with your separate consent (the App asks once), we send to our server your step count for each day of the last 31 days and the total for the current week (Monday to Sunday) — from iPhone and Apple Watch. Steps added to Health manually are not counted; no other Health data is sent for the ranking. Without consent your steps do not leave the device. Club members see your name, avatar and step total for the day, week or month in the ranking. Daily step records stay on the server while the ranking is on: old days are not deleted automatically. You can turn it off anytime in Profile → Settings → Privacy → Data & visibility → Show activity in the ranking — all your step records on the server (daily and weekly) are then deleted. They are also deleted together with your account.
3.5. Artificial intelligence (separate consent)
Food recognition from photos or voice, voice notes for exercises and Coach comments use OpenAI. Requests go to OpenAI through our server. The exception is live voice text (words appear while you speak): the audio goes over a direct encrypted connection from the App to OpenAI (realtime) using a one-time key issued by our server, so OpenAI sees your device’s IP address. Your name, email and account identifier are not sent over this connection. Before first use the App asks for separate consent — one consent for all of these features. Without consent they are unavailable; the rest of the App works. You can withdraw consent in Profile → Settings → Privacy → Data & visibility → AI features (OpenAI).
How long OpenAI keeps it. A request may be retained by OpenAI for up to 30 days under OpenAI’s policy to monitor for abuse, and is then deleted. OpenAI does not use it to train its models. Your name, email and account identifier are not added to the request, so at OpenAI it is not linked to your account.
Food and notes. What is sent: the meal photo, audio recording or text you dictated or typed — only at the moment you use the feature. We do not keep photos or audio after processing; the result (a list of foods or note text) is saved in your log.
Coach. After a workout and for the week the App computes a review itself, and OpenAI adds a short comment to it (1–2 sentences). What is sent: the already computed review — workout date and title, exercise names, weights, reps, sets, duration, volume and comparison with last time. Your name, email, account identifier, heart rate, sleep and other Health data are not sent. The comment text is not stored on the server — only on your device; the server records only the time of the request, to limit how many there are (up to 20 per day).
3.6. Subscriptions
Payment is made through the App Store. From Apple we receive only the subscription status, plan, dates and transaction identifier — to unlock access. We do not receive card details.
3.7. Camera, microphone, photos, location
Access is requested only when you tap the related action (profile photo, meal photo, voice input, saving a workout image, outdoor cardio).
Location: only for outdoor cardio. When you start outdoor cardio (running, walking, cycling), the App asks for precise location (GPS) access “while using the app” to show the map, distance and pace. Location is used only during that cardio session, including while the screen is off, and stops as soon as you finish it. At any other time, and for any other feature, we do not request your location. The route is stored only on your iPhone and in Apple Health, together with the workout: coordinates, route and distance are not sent to our server, and we do not receive them. The map is shown by Apple’s map service, which loads images of the area on the map. Without location access, cardio works without the map and distance. To change access: Settings → Privacy & Security → Location Services → GrekFit; you can delete the route in the Health app.
Share → Instagram Stories. The workout image (day, sets, volume, time, date — without your name) is passed to the Instagram app (Meta Platforms) only by your action, when you tap this button. From then on Instagram handles it under its own terms; the App itself sends nothing to Instagram.
Body progress photos you take for comparison are stored only on your iPhone: they are not uploaded to our server and are excluded from device backup.
3.8. Technical data
When the App contacts our server we process IP address, device type, iOS and App version — to operate the service, keep it secure and fix bugs. For cookies and pixels on the grekfit.com website, see section 3.17.
3.9. On your device
Some data is stored locally on your device (cache, widget, Apple Watch). During a workout the exercise name and rest timer may be visible on the Lock Screen.
The App storage is excluded from device backup, so this data is not copied to iCloud. Apple Watch keeps the latest workout snapshot (exercise, set, weight, reps) in its own storage so it can work without the iPhone nearby; heart rate is never written to the watch disk.
3.10. Account transfer
If you received a personal transfer code, the App moves your history from our earlier service into your account: workouts and sets, weight log, body measurements, program, points, streak and the remainder of an already paid access period. Your food diary is not transferred. The code is single-use, valid for a limited time and bound to your account; nothing is sent back from the App. Without a code no transfer happens.
The earlier service is GrekFit in Telegram. To link the transferred history, your account stores your Telegram user identifier (only if you entered a transfer code).
3.11. Usage analytics
To understand whether first setup, sign-in and subscription work well, whether people get to their first workout and where something breaks, the App sends short events to our own server. Here is the full list (technical event name in brackets) and what each one contains:
- App installed (install), once per device; first setup completed (onboarding_done); first setup step (onboarding_step): the step name and number (name, sex, goal, level, weight, height, program), but not what you entered;
- App opened (app_open), once a day: the date and access type (basic, free trial, paid or transferred);
- section viewed (screen_view), once a day per section: only the section name (Today, Program, Workout, Nutrition, Community, Profile, Library, Activity);
- sign-in (signin): which method; failed sign-in (signin_fail): method, stage and error code; sign-in session lost (session_lost): the server response code;
- subscription screen shown (paywall_view): where it was opened from, which plans the App Store offered and the App Store region; subscription screen closed without a purchase (paywall_close): where it was opened from, the screen type, what was tapped, how it was closed and how far you swiped through the cards;
- "buy" tapped on the subscription screen (purchase_tap) and the App Store response to that purchase (purchase_result): the plan identifier, the screen, where it was opened from, and the result (success, cancelled, pending approval, failed, already subscribed); the events contain no payment details;
- "Apply" in the promo code field on the subscription screen (promo_apply): the code entered, whether it is valid, and the screen;
- free trial started (trial_start), purchase (purchase), purchases restored (restore), auto-renew turned off (renew_off), subscription ended (expired): the plan identifier;
- workout started (workout_start): whether it is the first workout on this device and the access type; workout finished (workout_finish): the same plus the number of sets;
- voice input attempt (voice_result): what was dictated (sets, food or a note), on the phone or on the watch, whether it was recognized and, if not, the reason code, and how many milliseconds the answer took; the event contains neither the audio nor the words you said;
- club chat link requested (club_invite_issued) and “In the club” post (club_share_posted): these two events are recorded by the server itself when it handles the request; both carry the App Store environment (production or test), the post also carries the chat message number and the image size and format.
Each event carries a random install identifier, the App build type (App Store, TestFlight or test), the time and, after sign-in, your account identifier. Events contain no exercise names, weights, reps, volume, food or calories, body measurements, Health data or heart rate, location, text you type or screen content. Events are used only to see how many people complete setup and reach their first workout, what they choose after the subscription screen, and to find and fix sign-in, purchase and voice input failures.
There are no third-party analytics services: these events are not shared with anyone and are not used for cross-app tracking. Some of them (launch, setup completed, trial, purchase) the App also sends to Meta, but only if you allow tracking (section 3.15). To turn it off: Profile → Settings → Privacy → Data & visibility → Usage analytics. After that no events are sent, and unsent ones are erased from the device. After account deletion events lose their link to the account and keep only the install identifier.
3.12. Notifications
Notifications arrive only with your permission in iOS. Meal, supplement and step reminders and the “Rest is over” alert are scheduled by the App on the device itself, without the server.
Workout reminders. Service reminders are sent by our server: “Workout today”, “First workout”, “Streak ends tomorrow”, “Come back” (after several days without workouts) and, for club members, “You are in the top 3” and “You were overtaken”. For this the server uses what is already in your account: workout schedule, reminder hour, time zone and language, workout dates, streak, points and leaderboard place, the log of sent notifications and the device notification token. The “You were overtaken” notification may include the club name of the member who overtook you, and only of someone who chose to be visible in the club (section 3.4). Members hidden in the club get no leaderboard notifications, and their names are not used in them. No more than one reminder a day and never at night (22:00–08:00). To turn them off: Settings → Notifications → GrekFit.
Coach notifications (a workout or week review) are sent by our server. For this, after a workout the App sends the server a short review text (workout title, volume, comparison with last time and a tip), and if notifications are allowed — also the device’s notification token (issued by Apple), language and time zone. Notifications are delivered by the Apple Push Notification service. No more than one a day and never at night. To turn them off: Settings → Notifications → GrekFit. The token and reviews are deleted together with the account.
3.13. Telegram: club chat, “In the club” posts, reports
The club chat lives in Telegram (Telegram FZ-LLC). The App sends nothing to Telegram on its own — only when you tap the related action:
- Club chat. Our server uses the club bot to create a single-use invite link for you (valid for 1 hour, for one person). Telegram receives only the link’s service name with a shortened technical account identifier. In the chat you use your own Telegram account, under Telegram’s rules.
- Share → In the club. The club bot posts a workout image with a caption to the club group: your club name, your sex (only as the verb form in Ukrainian — “finished” in the male or female form), day title, volume, number of sets, minutes and records, and the workout date. Your profile photo and Health data are not sent. No more than 3 posts per day.
- Reporting a member. Moderators receive a report message from the bot in Telegram: the category, the member’s club name and their status. The message does not say who reported.
What is posted in the group is visible to its members; a post stays in the group even after you delete your account in the App.
3.14. Tips and offers (separate consent)
If you turn on “Tips and offers” yourself (off by default), we will send GrekFit notifications with workout and nutrition tips and offers, and, if your account already has your email (Google sign-in), emails to that address too. We do not ask for an email separately. Purpose: to tell you about useful content and GrekFit offers. Legal basis: your consent (Art. 6(1)(a) GDPR). We keep the fact and time of consent and the version of its wording; notifications are delivered by Apple Push Notification service, only if notifications are allowed in iOS. You can withdraw consent at any time in Profile → Settings → Privacy → Tips and offers or with the Unsubscribe link in every email; after that we stop sending promotional notifications and emails and keep only a note of the withdrawal, so we don’t send them again. The App works fully without this consent.
3.15. GrekFit ads: Meta SDK and tracking permission (ATT)
The App includes the Meta SDK (FBSDKCoreKit, Meta Platforms Ireland Ltd.). It is used to show GrekFit ads to people who may be interested and to measure which ads work. After the first setup, iOS shows a system prompt once, asking whether to allow GrekFit to track (App Tracking Transparency). Only if you tap “Allow”, the App sends to Meta: the device advertising identifier (IDFA), app launch, setup completed, trial start, purchase and renewal (plan, amount, currency). No email, phone, name, workouts, nutrition or Health data are sent to Meta. If you decline, the Meta SDK does not start and nothing is sent to Meta; the App works fully. You can change this at any time: Settings → Privacy & Security → Tracking → GrekFit. Legal basis: your consent (Art. 6(1)(a) GDPR). Meta processes the data it receives under its own privacy policy.
3.16. Partner links and App Store codes
If you follow a partner link or one of our ad links (grekfit.com/go/…), the server records the visit: time, link label and platform (for example iPhone or Android), determined from browser data. We do not store your IP address in plain form, only its irreversible salted hash. If you redeem a partner code in the App Store (for example, 1 month free), Apple tells us which code the subscription was started with, and we credit it to the partner. The partner sees only anonymised totals: number of visits, trials, payments and their own reward, without names, accounts or workout data. Purpose: to calculate partner rewards and measure ads. Legal basis: legitimate interests (Art. 6(1)(f) GDPR).
3.17. The grekfit.com website: cookies and ad pixels
The grekfit.com/go/… landing page (links from our ads or partners) shows a consent banner. Without consent we set only the essential gf_consent cookie, which remembers your choice for 180 days. If you tap “Accept”, the Meta (Meta Platforms Ireland Ltd.) and TikTok (TikTok Technology Ltd.) pixels are enabled on that page: they receive the page view and the App Store button tap, the link label, your IP address and browser data so we can measure our ads; Meta and TikTok may also set their own cookies under their terms. If you tap “Essential only”, there are no pixels on the page. To withdraw consent, delete grekfit.com cookies in your browser and the banner will appear again. Legal basis: your consent (Art. 6(1)(a) GDPR). Other pages of the site use no cookies or pixels.
4. Legal bases
- Contract (Art. 6(1)(b) GDPR) — account, program, workout logging, subscription.
- Consent (Art. 6(1)(a) and 9(2)(a) GDPR) — health data (Apple Health, measurements, weight), club participation, AI features, notifications, tips and offers (notifications and emails), sending events to Meta after you allow tracking (section 3.15), cookies and pixels on the grekfit.com/go page (section 3.17). You may withdraw consent at any time without affecting prior processing.
- Legitimate interests (Art. 6(1)(f) GDPR) — security, abuse prevention, bug fixing, our own usage analytics (you can turn it off, section 3.11), counting partner link visits and App Store codes (section 3.16).
- Legal obligation (Art. 6(1)(c) GDPR) — record keeping and responding to lawful requests.
Processing also complies with the Law of Ukraine “On Personal Data Protection”.
5. Who receives data
We do not sell personal data. Data is processed only by providers the App cannot work without, under agreements that require data protection, and by the ad services Meta and TikTok only with your consent (sections 3.15, 3.17):
| Provider | Purpose | Data |
|---|---|---|
| Supabase | server, database, file storage (avatars), sign-in system | account, profile, workout, nutrition and club data; analytics events; notification token, Coach reviews and reminder log; visits via /go links (IP hash, platform) |
| Apple | sign-in, App Store, Apple Health, maps, notification delivery | under Apple’s terms; from Health, heart rate, heart rate variability and sleep stay on device (section 3.3); the outdoor cardio route stays on device and in Health (section 3.7); for Coach notifications and reminders — device token and notification text; for partner codes — which code was redeemed |
| Sign in with Google — if you choose it | name, email, Google account identifier | |
| OpenAI | food and voice recognition, Coach comments — with consent only | photo, audio or text at the moment of use; computed workout review without name or contacts; OpenAI may retain a request for up to 30 days to monitor for abuse and does not use it for training |
| Telegram | club chat, “In the club” posts, moderator messages — only on your action | invite link service name; workout image with your club name, verb form by sex, summary, records and date; name and status of a reported member |
| Meta (Instagram) | “Share → Instagram Stories” — only on your action | workout image without your name (day, sets, volume, time, date) |
| Meta Platforms (ads, app events) | GrekFit ads and measuring their results — only if you allow tracking in iOS (section 3.15); pixel on the grekfit.com/go page — only with consent in the banner (section 3.17) | app: IDFA, launch, setup completed, trial, purchase and renewal (plan, amount, currency); website: page view, App Store tap, link label, IP address, browser data |
| TikTok | pixel on the grekfit.com/go page — only with consent in the banner (section 3.17) | page view, App Store tap, link label, IP address, browser data |
| Bunny.net | exercise videos | IP address and request data |
| Open Food Facts | food search | search query text, IP address |
| Cloudflare | grekfit.com website and support email | visitor IP address, support emails |
Some providers are located outside the EU (including the United States). Transfers rely on the EU Standard Contractual Clauses or other lawful mechanisms. We may disclose data when required by law.
6. Retention
We keep data while your account exists. After account deletion we delete personal data within 30 days, and from backups during their scheduled rotation. Data we are legally required to keep is retained as long as the law requires.
7. Security
Data is transmitted over encrypted connections (HTTPS/TLS). Database access is restricted by row-level security: each user can access only their own data, except what they choose to show in the club. No method is perfectly secure, but we take reasonable measures and will notify you of an incident where the law requires.
8. Account deletion
In the App: Profile → Settings → Privacy → Data & visibility → Delete account. The row is shown when you are signed in to an account; without an account there is no data on our server — “Reset all progress” erases it from your iPhone. This deletes your account and associated data: profile, workouts, nutrition, measurements, notes, profile photo and club participation, notification token and Coach reviews, and revokes Sign in with Apple; you can remove GrekFit’s access to your Google account in your Google account settings. “In the club” posts stay in the Telegram group (section 3.13). Records the App wrote to Apple Health remain in Health under your control — you can delete them in the Health app.
⚠️ Deleting your account does not cancel your App Store subscription — cancel it in Apple settings: apps.apple.com/account/subscriptions.
9. Your rights
You have the right to access your data and get a copy (Profile → Settings → Privacy → Data & visibility → Download my data), to rectify, erase, restrict or object to processing, to data portability and to withdraw consent. Email support@grekfit.com — we reply within 30 days.
You may also lodge a complaint with a supervisory authority: in Ukraine — the Ukrainian Parliament Commissioner for Human Rights; in the EU — the data protection authority of your country.
10. Children
The App is intended for people aged 18 and over. We do not knowingly collect children’s data. If you believe a child has provided us data, email support@grekfit.com and we will delete it.
11. Changes to this Policy
We may update this Policy. We will notify you in the App about material changes before they take effect. The date of the current version is shown at the top.
12. Contact
Roman Hrekul (Hrekul Roman Yuriiovych), sole proprietor (FOP), taxpayer ID (RNOKPP) 3503209173, registered address: apt. 4, 41 Shkrumeliaka St., Kolomyia, Ukraine.
Email: support@grekfit.com