Trainify
PrivacyTermsDelete account

Trainify for Android

Effective date: October 2, 2026

Privacy Policy

How Trainify Labs Inc collects, uses, shares, and protects information in the Trainify Android app.

About this policy

This policy describes the Trainify Android app, listed on Google Play as Trainify AI, and its related services. Trainify Labs Inc (“Trainify,” “we,” “us”) is located at 1098 Foster City Blvd STE 106 #888, Foster City, CA 94404. Trainify’s iOS app has its own privacy policy.

Information we collect

Account and profile

Trainify creates an anonymous account when you begin using the app. If you use Google or Apple sign-in, that account is linked to the identity you authorize. We receive the account identifier, email address, and profile details shared by that provider. Google may provide your name and profile photo; Apple may provide a private relay email address. Depending on the details you provide, we collect an account identifier, email address, name, username, display name, avatar, biography, date of birth, optional height and weight, basketball level and position, training goals and schedule, reminder settings, language, team or playing situation, referral source, and onboarding answers. Injury-related training selections, date of birth, height, and weight may be sensitive information.

Workout and coaching data

We collect saved workout sessions, start and end times, duration, drill or phase data, shot attempts and outcomes, shot locations, workout plans, focus areas, effort, feedback, achievements, ratings, streaks, and shooting-form measurements derived on your device when that feature is available and enabled. Workout data also includes coaching prompts and responses, and optional workout photos. The app also keeps a local cache so supported features can recover after interruption or work offline.

Subscriptions and technical data

We receive subscription status, entitlement, product, trial, and expiration information. Google Play processes payment and does not give Trainify your full payment-card details. Our services and service providers may process device model, operating-system and app version, language, time zone, account and request identifiers, IP address, request timing, and error information needed to operate, secure, and troubleshoot the service.

Camera, recordings, and photos

Shot detection runs on your device

The camera is used during workouts to detect the ball and rim and classify shots. Camera frames used for this analysis are processed on your device and are not uploaded. Trainify stores the resulting shot measurements when you save your workout. When shooting-form feedback is available and enabled in your build, body-pose analysis also produces on-device form measurements that may be saved with your workout and used for coaching. Live body-pose analysis is not enabled in the current standard Android build. Body-pose analysis is not used to identify you. Model improvement from workout recordings requires the separate cloud video consent described below.

Workout recordings are your choice

If recording is enabled, a video of the workout is stored in Trainify’s private app storage on your phone. You can turn recording off. You may export a full recording or a highlight using Android’s share controls; the destination app then handles the copy under its own privacy terms.

Cloud backup and model improvement are available only to subscribers 18 and older. The app does not offer them if you are under 18 or your age is not known. A recording is uploaded only after you accept a separate consent in the app. That single consent covers both private cloud storage and Trainify’s use of a pseudonymized copy to improve its shot-detection and coaching models, and people on Trainify’s team may review consented recordings to improve shot detection. Declining keeps the recording local.

You can withdraw this consent in Settings to stop future uploads and request deletion of cloud copies. When you withdraw it or delete your account, we stop using your recordings to improve our models and delete the copies and labels made from them for that purpose within 90 days.

Workout photos

If you choose a workout or profile photo, the selected image is copied or uploaded for the feature you requested. An uploaded workout photo is stored at a link that is not listed anywhere, but anyone who has the exact link can view it, so do not attach a photo you would not want seen outside the app.

AI coaching and speech

Trainify’s server sends coaching prompts to Google’s Gemini service. Live coaching uses numeric workout context, shot counts, prior tips, and language. Summary and question features may also use the profile and progress context shown to you in the app. The app’s service contract does not send your email address or account identifier inside the coaching prompt.

When the app plays generated coach speech during training, Trainify’s server sends a short coaching text and language to ElevenLabs and returns synthesized audio. Bundled coaching clips play on your device without that request.

Reporting an AI reply

Reporting is optional. When you select an AI reply, choose a reason, and confirm Send, Trainify sends that reply, the reason, the feature where it appeared, and your Trainify account identifier to its Supabase reporting database. The server adds receipt and deletion timestamps. A report does not include your original prompt, the rest of your conversation, microphone audio, photos, video, or separate workout measurements. Any information already written in the selected reply is part of that reply.

Authorized Trainify staff can review reports through controlled server access to investigate unsafe, offensive, or incorrect output and improve coaching safety. Other app users cannot read your report. Reports are deleted from the reporting database within 30 days of receipt, or when your account is deleted, whichever comes first. Report text is not sent to analytics or crash-reporting services.

Onboarding coach voice

During onboarding and in the first-session offer that follows it, a few coach lines are spoken in a synthesized voice. For each line, the app sends Trainify’s onboarding-speech service the line to speak, your language, and, only where that line uses them, your first name, the number of workouts per week you chose, and the identifier of a workout from Trainify’s library. The welcome greeting is spoken before we ask your date of birth, so it can include the first name you just entered. The later lines omit your name when you are under 18 or your age is not yet known.

These requests do not include your account identifier, email address, date of birth, or body measurements. Each request includes a random installation identifier that the app creates once per installation. Our server builds the spoken text from fixed Trainify lines (it does not speak arbitrary text), sends that text to ElevenLabs to synthesize the audio, and returns the audio, which the app may keep in its private storage so the line can replay. If the service is unavailable, your device’s own text-to-speech is used instead.

To prevent abuse, our server limits each installation to 20 of these requests per day and each network to 120 per hour, using your IP address to identify the network. It counts requests against keyed one-way hashes of the installation identifier and network address. Trainify’s onboarding-speech service does not store or log the spoken text, your name, the installation identifier, or your IP address. Our hosting provider’s request logs and ElevenLabs’ own records are separate systems governed by their terms.

Optional Hey Coach microphone

If you grant microphone permission and enable Hey Coach for a workout, Android’s speech recognition service listens for the wake phrase and your question. Depending on the recognition service selected on your device, audio may be processed on the device or sent to that service’s provider. Trainify receives the resulting text and does not record or store the raw microphone audio. The recognition provider’s processing and retention are governed by its own terms and may vary by device. The resulting question text can be sent through Trainify’s server to Gemini to answer you.

Finding friends from contacts

Finding friends from your contacts is optional and asks for Android’s contacts permission. This feature is not available in the current standard Android build, which does not request contacts permission. When the feature is available and enabled, the app computes one-way SHA-256 hashes of the phone numbers and email addresses in your address book on your device and sends only those hashes to Trainify, where they are matched against Trainify users who can be found this way. Your contacts’ names and raw details do not leave your phone.

Heart rate and Health Connect

Trainify has a heart-rate feature in development that can connect a Bluetooth heart-rate monitor and read or write workouts and heart rate through Health Connect. This feature is not currently available in the standard Android build, which does not request Bluetooth or Health Connect permissions. We will update this policy before the feature is turned on.

Analytics, diagnostics, and advertising measurement

Product analytics

We use PostHog to understand how the app is used and how it performs. PostHog receives your Trainify account identifier; your email address and name when available from your signed-in account; onboarding answers such as your level, goals, and playing situation; screen views and app open and close events; feature and purchase events; and error events. It also receives workout performance telemetry such as the device’s thermal state, camera processing load, frame counts, and workout duration, which we use to find and fix overheating and slowdowns. Session replay is turned off in the Android app. Before events are sent, the app removes passwords, tokens, keys, and speech transcripts from event properties.

In the Android app, PostHog may infer approximate location, such as city or country, from your IP address when evaluating feature flags that control app behavior. We disable GeoIP enrichment for analytics events; this does not disable IP-based location processing for feature flags.

Crash and error reporting

Sentry receives selected crash, error, app-not-responding, performance, device, operating-system, app-version, and Trainify account-identifier data when diagnostics is configured on an eligible physical-device build. Trainify turns this off in test and emulator environments. Screenshots, view hierarchies, session replay, email address, IP address, and network request data are turned off in Trainify’s Sentry configuration.

Advertising measurement

When configured in the released app, the Meta (Facebook) SDK logs app install and activation events and a registration-completed event so we can measure whether our ads lead to installs. There is no Facebook login. The SDK’s anonymous app identifier is passed to RevenueCat so subscription starts and renewals can be attributed to ad campaigns. These SDKs may collect device identifiers, which can include your device’s advertising ID where your Android settings allow it. You can delete or reset your advertising ID in Android settings. This measurement may count as “sharing” under California law; you can opt out by emailing us.

Why we use information

  • Provide accounts, workouts, progress, coaching, subscriptions, and requested sharing.
  • Authenticate users, synchronize data, recover interrupted operations, and prevent stale accounts from accessing another user’s data.
  • Operate, secure, debug, and improve Trainify, including its speed and battery use.
  • Measure our own advertising, as described above.
  • Improve detection and coaching models only under the separate video consent described above.
  • Meet legal obligations, enforce our terms, and respond to valid legal requests.

Service providers

  • Supabase provides authentication, the database, Trainify’s server functions (including coaching, speech, and onboarding speech), and file storage.
  • Cloudflare provides private object storage for workout recordings you consent to back up and network delivery for requests to Trainify’s server functions.
  • Google provides Google sign-in, Google Play billing, and Gemini model inference.
  • Apple provides Sign in with Apple when you choose that account option.
  • RevenueCat manages subscription status and entitlements. It receives your Trainify account identifier, Google Play purchase information, your email address and display name when available, your PostHog identifier, the Meta anonymous app identifier, and device identifiers its SDK collects.
  • ElevenLabs synthesizes coach speech from short text supplied through Trainify’s server, including the onboarding lines described above.
  • PostHog provides product analytics, as described above.
  • Sentry provides crash and error reporting, as described above.
  • Meta Platforms provides advertising measurement, as described above.
  • Your Android speech-recognition provider processes microphone audio when you grant permission and use Hey Coach. The provider depends on the recognition service installed and selected on your device.

We do not sell personal information or disclose it to data brokers.

Storage, retention, and security

Account, profile, workout, achievement, rating, and plan data is kept while your account is active. After you delete your account, account data is removed from active systems promptly and no later than 30 days, and from backups as they roll off, no later than 90 days. Cloud recordings are kept until you delete your account or request their deletion. Local recordings stay on your device under your control. Billing records may be retained as required by tax, accounting, and consumer-protection laws, typically for up to seven years, and resolved support correspondence for up to 24 months.

We keep other information only as long as needed for the purpose described in this policy, then delete it within 90 days of that purpose ending. This includes consent records, server logs, crash reports, analytics events, onboarding-speech rate-limit counters, and labels and model-training copies made from consented recordings.

We use HTTPS, authenticated requests, access controls, encrypted Android credential storage, and owner checks around background work. No system is completely secure.

Your choices and rights

You can change optional profile information, recording and reminder settings, cellular upload preferences, and cloud-video consent in the app. You may ask to access, correct, export, or delete personal information, or to opt out of advertising measurement. Applicable law may provide additional rights, including objection, restriction, portability, withdrawal of consent, and appeal or complaint rights. To make a request, email support@trainifylabs.ai. We verify that you control the account before acting on it.

Delete your account

In the Android app, open Profile → Settings and choose Delete Account. You can also request deletion by email, including if you no longer have the app; the account deletion page explains how.

Open the account deletion page

Children

Trainify is not directed to children under 13 and does not permit an account for a child under 13. A user between 13 and the age of majority where they live may use Trainify only with a parent or legal guardian’s involvement. Cloud video backup and model improvement are not offered to users under 18.

Where Trainify is offered

The Trainify Android app is intended for users in the United States. Trainify is based in the United States. Information may be processed in the United States and other places where our service providers operate. Where required, we use appropriate legal safeguards for international transfers.

Changes

We will post changes to this policy with a new effective date and give additional notice when the law requires it.

Contact us

Email support@trainifylabs.ai, or write to Trainify Labs Inc, 1098 Foster City Blvd STE 106 #888, Foster City, CA 94404.