Fyt Privacy Policy
Effective 2026-08-01
Fyt is a small companion app for an iMessage running-bot. It exists to keep
you signed in and to forward your Apple Health workouts to your iMessage club
chat, where leaderboards and conversation actually live. This policy describes
what we collect, what we do with it, and how to delete your account.
What we collect
-
Health & Fitness data. Running workouts you record in
any app that writes to Apple Health (Strava, Apple Watch, Nike Run Club,
and so on). We read each new running workout's distance, duration, heart
rate (if recorded), elevation gain, calories (if recorded), and GPS route
polyline. We use this to compute club leaderboard stats and to announce
your runs in your iMessage group chat.
-
Sleep, recovery, and body data. Sleep duration, recovery
scores, resting heart rate, HRV, daily strain, body weight, and body
measurements, when you log them in Fyt, sync them from Apple Health, or
connect a Whoop account. We use them for coaching context and the trends
shown in the app.
-
Precise location. GPS coordinates from each workout's
route, transmitted as a polyline string. You always see your own full
route. Before your route is shown to anyone else, our server trims a
distance off each end (200 meters by default; you can adjust this, or
turn it off, in the app's privacy settings), so other people cannot see
exactly where a run starts or ends. If a route passes through a privacy
zone you have set up, or is too short to leave a meaningful middle after
trimming, other people see no map for that run at all. The separate
"hide GPS endpoints" setting also hides the run's start location name
from other users.
-
Phone number. Collected when you sign up via SMS one-time
passcode. Your phone number is your iMessage handle so our bot can message
you in your group chat.
-
Email address. Collected when you create an account with
an email and password. Used to sign you in and recover your account.
-
Display name. A name you choose. Shown on leaderboards and
in run-announcement messages in your iMessage group chat.
-
Gender. Chosen at signup (male, female, or other). Used to
render the anatomical muscle map on your gym workouts and to personalize
fitness features. Never used for advertising.
-
Account identifier. An internal UUID that links your data
together server-side.
-
Strava connection (optional). If you import a Strava
archive ZIP, we ingest your historical activities from that file. We do
not store your Strava credentials.
-
Whoop and Garmin connections (optional). If you connect
a Whoop account, Whoop sends us your daily recovery, sleep, and strain
data. If you connect a Garmin account, Garmin sends us your running
workouts (distance, duration, heart rate, cadence, elevation, and
calories). We store the connection tokens encrypted, and you can
disconnect either service in the app at any time.
-
Group chat membership. When Fyt is added to an
iMessage group chat, we record each member's iMessage handle and their
membership in that group, even if they have never sent Fyt a direct
message. This is the minimum needed to attribute runs announced in the
group to club members. Any participant can remove Fyt from the
group at any time (Messages → Details → Remove), which stops further
recording.
-
Referral reward records. If you participate in referral
rewards, we record referral attribution, the qualification rule and
minimum workout evidence that satisfied it, reward-review transitions,
and fulfillment history. Operator review receives the identity-proof type
(for example, phone or Apple) but never the raw phone number, Apple
identifier, or another user's secret.
What we don't do
- We do not sell your data to anyone.
- We do not show ads in the app, and we do not run any third-party advertising or behavioral-analytics SDKs. The one third-party SDK we bundle is RevenueCat, which manages Fyt Gold subscriptions (see below).
- We do not track you across other apps or websites.
What we keep after you delete your account
- Deleting your account removes your profile, activities, and messages.
- Referral support identity is made non-recoverable.
- If a referral reward was already sent to you, the exact supporting workout
evidence is retained for 24 months after that reward is finalized, and is
then minimized by clearing source identifiers, activity type, distance,
duration, attribution, and identity-proof type.
- A minimal opaque accounting record for a sent reward (ledger, reward year
and slot, attempt, state, amount, timestamps, and review reason) may remain
indefinitely, so a reward cannot be paid twice and fulfillment history stays
auditable. It does not identify you.
How your data flows
-
The Fyt iOS app reads workouts from Apple Health on your iPhone and uploads
each new workout to
api.fyt.life (our backend).
-
Our backend stores your activity rows and triggers a message to your iMessage
group chat through an iMessage relay we operate.
-
Twilio's Verify product sends the one-time SMS codes used for signup. Twilio
processes your phone number for that purpose only.
-
Anthropic provides the language model used by the in-chat bot's chatbot
replies, and the coaching and route-generation features. Your messages and
the context needed to answer them are sent to Anthropic to generate the
response. Depending on what you ask, that context can include your display
name, club name, recent runs and lifts, and health-derived figures you have
logged in Fyt such as sleep duration, recovery and body weight. Anthropic
does not train on this data per their commercial terms.
-
RevenueCat runs Fyt Gold subscriptions. Its SDK is included in the iOS app
and receives your Fyt account identifier, your purchase and renewal state,
and device metadata. It does not receive your phone number, your email, or
any workout or health data.
-
Cloudflare R2 and Backblaze B2 store the photos and videos you attach to
activities, club posts and messages, plus our exercise-demo media. They
hold the files; they do not receive your account details.
-
Giphy powers GIF search in chat and comments. When you search for a GIF we
send Giphy your search text. We do not send any account identifier.
-
Apple delivers push notifications through APNs, and Sign in with Apple
verifies your identity if you sign in that way. Apple receives the device
token and the notification payload needed to deliver the alert. When you
first sign up, we also send Apple's Ad Services attribution API the token
your device generates, and store Apple's answer, which tells us whether
your install came from an Apple Search Ads campaign and which one. We use
that only to measure our own App Store ads; it contains no workout,
health, or location data.
-
Whoop and Garmin send us data rather than receive it. If you connect one
of these accounts, that service delivers the recovery, sleep, and workout
data described above through its API. We send it only the sign-in tokens
needed to keep the connection working; it receives none of your other
Fyt data.
-
Open-Meteo returns the weather forecast for the week ahead, which the
coach uses when planning your training. We send a coarse coordinate
(rounded to roughly 1 km) near where your recent runs start; we send no
account identifier.
-
If we have error reporting enabled, Sentry receives crash and error
diagnostics, which include your account identifier so we can correlate a
report with a bug. It does not receive message content or health data.
-
Mapbox renders map tiles and the route images shown on run cards and
share pages. To draw a route we send Mapbox the route line, with the
endpoint trimming described above already applied whenever the viewer is
not the run's owner. Mapbox also computes reverse-geocoded location
names; for those we send only the coordinates of a route's endpoints to
resolve a human-readable place name (for example "Presidio · San Francisco, CA").
We do not send Mapbox any account identifier or phone number.
-
GraphHopper computes turn-by-turn route geometries when you ask Fyt to
generate a route. We send GraphHopper the start coordinate and a target
distance; we do not send any account identifier or phone number.
-
The Overpass API serves OpenStreetMap data about crossings and parks,
which we use to score candidate routes when generating one. When you
generate a route we send Overpass the area around your chosen start
point; we do not send any account identifier or phone number.
-
Beyond the services listed above, no other third party has access to your
data. If that ever changes we will say so here before it takes effect.
How we store and protect your data
- Activity and account data are stored in our managed Postgres database (Neon, us-west-2).
- Our backend runs on Fly.io in the
sjc region. Fly is our compute host; it processes data in transit and at rest while our application code is executing, and does not access the database or our object storage independently.
- DNS for our domains is managed at GoDaddy. GoDaddy resolves
api.runbot.fit and runbot.fit to our hosts but does not process the data that travels over those connections.
- All network traffic between the app and our backend is encrypted with TLS.
- OAuth tokens (if you connect external services) are encrypted at rest with a per-deployment encryption key.
- The iMessage relay runs on a Mac under our control. Messages it sends and the chat-handle allowlist of who can receive them are scoped to your registered group chats only. The relay reaches our backend over a private network.
Your rights
-
Delete your account. Open the app → tap the gear icon →
Settings → "Delete account". This permanently deletes your account, all
your recorded activities, and your membership in every club. Clubs you
created stay alive; ownership transfers to the next-longest-tenured
member. Anonymized referral reward audit records may remain as described
above; they no longer contain a live link to your account. This action
cannot be undone.
-
Export your data. Email the address below and we will
send you a JSON dump of your account within 30 days.
-
Disconnect Apple Health. iOS Settings → Privacy &
Security → Health → Fyt → toggle off. After this, we stop receiving
new workouts. Historical workouts already uploaded remain unless you
delete your account.
Children
Fyt is not intended for users under 13. We do not knowingly collect data
from children under 13. If you believe we have, contact us and we will delete
the account.
Changes to this policy
Material changes (collecting new categories of data, adding new third parties,
changing how we use existing data) will be announced in-app before they take
effect. The effective date at the top of this page reflects the most recent
update.