Last updated: July 26, 2026
This Privacy Policy explains what information the PyMentor mobile app ("the App", "we") collects, developed by BYN Studios, based in the United States, how we use it, and what choices you have. By using PyMentor, you agree to the practices described here.
PyMentor doesn't ask you to create an account with an email and password. The first time you open the app, an anonymous identifier is automatically generated (via Firebase Authentication) that lets us recognize your installation across sessions, without linking it to your name, email, or any other directly identifying information.
If you choose "Continue with Google" (from the initial screen or later, from your profile), that Google account is linked to that same identifier. In that case, we do receive and store your email address, your name, and your Google profile photo, associated with your identifier, so we can display them in your profile and back up your progress in the cloud (see Section 3). Linking a Google account is entirely optional: you can keep using the app in guest mode without doing so, sign out at any time, or delete your account and all your data (see Section 14).
If you use the app in guest mode (without linking Google), the following is stored only in your phone's local storage and is never sent to our servers:
If you uninstall the app or clear its data in this mode, this information is permanently lost, since there is no copy on any server.
If you link your Google account (see Section 2), the following is also synced to our database (Firestore), associated with your identifier: your name, your progress, your PyCoins balance, the cosmetic items you own and which ones you have equipped, and a history of the rewards the server has granted you (date, type and amount). That way you can recover all of it if you switch devices or reinstall the app.
Your preferences (language, dark/light mode, sound, vibration, notifications) are always stored only on the device, whether or not you link a Google account.
When you use the code editor and request feedback, we send the following to our servers (Firebase Cloud Functions) and, from there, to Google's Gemini API to generate an educational response:
We store a hash identifier of this code together with your usage count in our database (Firestore), linked to your identifier, solely to enforce the usage limit and avoid asking the AI again for the same code. That limit is not daily: it is a seven-day window that starts with your first use and fully resets when it elapses. We don't use this content for any other purpose, and we don't share it with anyone other than Google (as the Gemini API provider) to generate the response.
When you use the "Run" button in the code editor, your code is sent to our servers (Firebase Cloud Functions) and, from there, to Judge0 — a sandboxed code execution service we access through RapidAPI — to run it and return the real output (stdout/stderr). We only store the count of executions linked to your identifier, to enforce the seven-day window limit described in Section 4; we do not permanently retain your code on our servers.
PyMentor offers an optional subscription ("PyMentor Premium") that raises your usage limits, removes ads, and grants periodic PyCoins, store discounts and access to exclusive cosmetic items. Purchases are processed directly through the Apple App Store or Google Play, depending on your device — we never see or store your payment information (card, billing, etc.). We use RevenueCat as an intermediary to verify your purchase and sync your subscription status; RevenueCat receives your anonymous identifier and transaction data (not your name or payment information). We store in our database (Firestore) whether your subscription is active and its expiration date, so our servers can enforce the corresponding limits.
Subscriptions renew automatically unless cancelled from your account settings in the relevant store (App Store or Google Play) at least 24 hours before renewal. Refunds are processed according to the relevant store's policy, not directly by us.
The app shows Google AdMob advertising in two ways. First, banners on the Home and Profile screens, shown automatically to users without a subscription. Second, rewarded videos that you choose to watch voluntarily in exchange for a specific benefit: one additional AI or code-execution use, PyCoins, an extra attempt at the daily challenge, recovering a past day's challenge, or trying an exclusive cosmetic for 24 hours. PyMentor Premium users don't see banners.
When showing these ads, Google AdMob may collect device advertising identifiers, approximate IP address, and other technical information to select and measure ads, per Google's privacy policy.
Where required by law (for example, in the European Economic Area, the United Kingdom, and equivalent regions), we ask for your consent before showing personalized ads, through Google's consent form (Google User Messaging Platform / UMP). You can review or change that decision at any time from "Ad privacy options" in your profile within the app. Watching these ads is entirely optional — you can keep using the app without watching them.
We use Firebase Analytics to understand, in aggregate, how the app is used (for example, which screens are visited most and how often the app is opened). This information is tied to a Firebase-generated identifier, not to your identity.
If the app crashes unexpectedly, a technical report (device model, OS version, and the exact point in the code where the error occurred) is automatically sent to help us fix it. These reports don't include your name, your code, or your progress.
We use Firebase App Check to confirm that requests to our servers come from a legitimate PyMentor installation and not from an attempt to manipulate the system (for example, to bypass the AI usage limit). This doesn't collect personal information.
If you enable daily reminders, they are scheduled entirely on your device through the operating system; no information is sent to our servers for this.
We do not sell your information to anyone. The only third parties that process data on our behalf are:
All of them act as data processors under their own privacy terms, not as owners of your data.
PyMentor is an educational app that may be used by underage students. By default (in guest mode), we do not request or collect full names, email addresses, or any other personally identifiable information from any user — the name requested at startup is stored only locally on the device, as explained in Section 3.
If a user, whether a minor or an adult, voluntarily chooses to link their Google account (see Section 2), we do receive their email address, name, and Google profile photo. This action is always optional and must be explicitly initiated by the person from within the app. We recommend parents and guardians supervise this choice for minors. If you believe your child has provided us with personal information this way or through another means and would like it removed, contact us using the details in Section 17, or use the "Delete my account" button from the app's profile (see Section 14).
If you use the app in guest mode, the most direct way to delete your information is to uninstall the app (this erases all local progress).
If you linked your Google account, you can delete your account yourself at any time with the "Delete my account" button in your profile within the app: this immediately and permanently deletes your progress and account on the server side (Firestore and Firebase Authentication), as well as your local data.
You can also write to us at any time indicating the approximate date of use if you'd prefer we handle the deletion for you. If you are a California resident, you may have additional rights under the CCPA (California Consumer Privacy Act), including the right to know what information we hold about you and to request its deletion — you can exercise these by writing to the address in Section 17.
This policy is governed by the laws of the United States.
We may update this policy from time to time. We will post any changes on this same page with a new "last updated" date.
If you have questions about this policy or want to exercise your privacy rights, write to us at: privacy@bynstudios.com
PyMentor includes a virtual currency called PyCoins, earned by using the app (completing lessons, the daily challenge, the check-in and other activities) or by watching rewarded ads. PyCoins cannot be bought with real money, have no monetary value, and cannot be exchanged for money.
Your balance, the items you own and the ones you have equipped are stored on our servers and associated with your identifier (see Section 3). The server keeps the count: the app cannot grant itself coins. We also store a history of the rewards granted — date, type and amount — so you can review it from your profile.
If you delete your account, your balance, your inventory and your history are deleted along with everything else and cannot be recovered.
PyMentor has a leaderboard comparing accumulated experience across users. By default you appear anonymously: a generic label and your score are shown, and neither your name nor your photo is stored in the leaderboard.
If you turn on the option to appear with your profile, we then store your Google name and photo in the leaderboard, and they become visible to other users of the app. You can turn it off at any time from within the app; when you do, we stop storing that data in the leaderboard.
This is the only PyMentor feature where information about you may be visible to other people.
If you use "Report a problem" from the app's settings, you send us: the message you write, the category, up to five screenshots if you choose to attach them, the app version and your device model, your identifier if you are signed in, a contact email if you choose to leave one, and a technical log of the most recent events in your session (app launches and session changes) that helps us reproduce the issue.
This information is stored in our database and the screenshots in our storage (Firebase), and is emailed to us so we can act on it. We only use it to diagnose and respond to the report. Sending a report is always voluntary, and the contact email is optional.