Back

Privacy Policy

Last updated: May 2026

1. Introduction

This Privacy Policy explains how PupilBot (“we,” “us,” or “our”) collects, uses, stores, and protects your personal data when you use our web application, iOS application, and Telegram bot (collectively, the “Service”).

We are committed to protecting your privacy in accordance with the General Data Protection Regulation (EU) 2016/679 (“GDPR”) and applicable Romanian data protection law. Please also review our Terms of Service.

2. Data Controller

The data controller responsible for your personal data is:

3. Categories of Personal Data

3.1 Account Data

When you create an account, we collect:

3.2 Study Materials & Derived Content

The core function of the Service is to turn your study materials into practice questions. When you upload material, we collect and generate:

You retain ownership of any material you upload. We process it only to provide the Service to you.

3.3 Subscription & Payment Data

If you subscribe to PupilBot premium via the iOS app (Apple In-App Purchase), we receive from Apple:

If you subscribe via the web (Stripe), we store:

We do not receive or store your payment card details. All payment processing is handled by Apple or Stripe respectively.

3.4 Device & Technical Data

3.5 Telegram Bot Data

If you link a Telegram account, we additionally store:

3.6 Authentication Tokens

3.7 Service Telemetry

For billing transparency and reliability, we log internal usage of AI models (model name, token counts, cost in USD, type of operation — e.g. topic extraction, question generation, answer grading) tied to your user ID. Audit logs use hashed (SHA-256) email identifiers rather than plaintext email addresses.

4. How We Collect Data

5. Purposes & Legal Bases

We process your personal data for the following purposes, each with a corresponding legal basis under GDPR Article 6(1):

Purpose Data Used Legal Basis
Account creation & authentication Account data, OAuth data, auth tokens Art. 6(1)(b) — Performance of contract
Running OCR on uploaded files Uploaded study material files Art. 6(1)(b) — Performance of contract
Generating topics, questions & grading answers OCR text, your answers Art. 6(1)(b) — Performance of contract
Adaptive scheduling & mastery tracking Answers, mastery scores, review history Art. 6(1)(b) — Performance of contract
Subscription management Apple/Stripe transaction data, subscription status Art. 6(1)(b) — Performance of contract
Sending proactive practice reminders via Telegram Telegram chat ID, scheduled session data Art. 6(1)(b) — Performance of contract (you opted in by linking Telegram)
Transactional email (password reset, welcome) Email address Art. 6(1)(b) — Performance of contract
Security (fraud prevention, token management) IP address, device info, auth tokens Art. 6(1)(f) — Legitimate interest
Cost tracking & abuse prevention for AI calls Token counts, model usage tied to user ID Art. 6(1)(f) — Legitimate interest
Improving the Service (aggregated/anonymised metrics) Anonymised usage data Art. 6(1)(f) — Legitimate interest

We do not use your study materials, questions, or answers to train third-party AI models. Where AI providers are used to power features of the Service, we rely on their contractual no-training commitments (see Section 7).

6. Study Materials, OCR & AI Generation

Because study materials are central to the Service, we want to be specific about how they are handled:

7. Data Sharing & Third Parties

We share personal data only with the following third-party service providers (processors), strictly for the purposes described:

Provider Purpose Data Shared Location
Cloudflare (R2) Storage of uploaded study material files Uploaded image files (tied to user account) EU-preferred regions
Hetzner Online GmbH Self-hosted OCR server (GLM-OCR on Ollama) Uploaded images for OCR text extraction Germany (EU)
OpenAI Topic extraction, question generation, answer grading, question-illustration image generation OCR text, generated questions, your answers USA (EU-US Data Privacy Framework)
xAI Topic extraction, question generation, answer grading OCR text, generated questions, your answers USA (Standard Contractual Clauses)
Apple Sign in with Apple & subscription/payment processing (IAP) Apple ID, transaction IDs, subscription status USA (EU-US Data Privacy Framework)
Stripe Web subscription & payment processing Email, billing details (card details handled by Stripe, never by us), subscription status USA / Ireland (EU)
Resend Transactional email delivery (password reset, welcome) Email address, email content USA (EU-US Data Privacy Framework)
Telegram Practice reminders & bot conversations (only if you link Telegram) Chat ID, question text, your answers, grading messages Global

We do not sell your personal data. We do not share data with advertisers or ad networks. We do not engage in profiling for marketing purposes. We do not use your data to train third-party AI models.

8. International Data Transfers

Your personal data is primarily stored on servers within the European Union (Cloudflare R2 EU regions, Hetzner Germany, our own application database). Where data is transferred to service providers outside the EU (Apple, OpenAI, xAI, Resend in the USA; Telegram globally), such transfers are protected by:

9. Data Retention

We retain your personal data only for as long as necessary to fulfil the purposes described in this policy:

Data Category Retention Period
Guest account data Until you upgrade the account or until automated cleanup after extended inactivity
Registered account data Until you delete your account
Uploaded study materials & derived content (OCR text, topics, questions, answers, mastery) Until you delete the material or your account
Subscription data Until you delete your account (Apple/Stripe retain their own records independently for accounting and tax purposes)
Refresh tokens Until the refresh token expires or is revoked
Password reset tokens 1 hour or until used, whichever comes first
Telegram link codes 15 minutes or until used, whichever comes first
AI usage telemetry (model name, token counts, cost) Retained for billing transparency and operational integrity
Webhook logs (Apple, Stripe) Retained for operational integrity and accounting

When you delete your account, all associated personal data is deleted via cascading database deletion, including any study materials you have uploaded and their associated files in Cloudflare R2.

10. Your GDPR Rights

Under the GDPR, you have the following rights regarding your personal data:

  1. Right of Access (Art. 15) — You have the right to obtain confirmation of whether we process your personal data and to request a copy of that data.
  2. Right to Rectification (Art. 16) — You have the right to request correction of inaccurate personal data.
  3. Right to Erasure (Art. 17) — You have the right to request deletion of your personal data (“right to be forgotten”).
  4. Right to Restriction of Processing (Art. 18) — You have the right to request that we restrict the processing of your personal data in certain circumstances.
  5. Right to Data Portability (Art. 20) — You have the right to receive your personal data in a structured, commonly used, machine-readable format, including any study materials you have uploaded.
  6. Right to Object (Art. 21) — You have the right to object to processing based on legitimate interests.
  7. Rights Related to Automated Decision-Making (Art. 22) — You have the right not to be subject to a decision based solely on automated processing that produces legal or similarly significant effects. The Service’s adaptive scheduling and mastery scoring are used to choose what to show you next; they do not produce legal or similarly significant effects.
  8. Right to Withdraw Consent — Where processing is based on consent, you may withdraw consent at any time without affecting the lawfulness of prior processing.
  9. Right to Lodge a Complaint — You have the right to lodge a complaint with a supervisory authority. In Romania, this is the Autoritatea Națională de Supraveghere a Prelucrării Datelor cu Caracter Personal (ANSPDCP) at www.dataprotection.ro. You may also complain to the supervisory authority in your EU country of residence.

How to exercise your rights: Email [email protected] with the subject line “GDPR Request.” You may also delete your account and all associated data directly within the Service. We will respond to all requests within 30 days.

11. Cookies & Local Storage

PupilBot uses a JWT-based authentication system, not traditional browser cookies for session management.

12. Children’s Privacy

The Service is not directed at children under the age of 16 (the GDPR age threshold for consent to data processing in most EU member states; some member states set a lower limit, no lower than 13). We do not knowingly collect personal data from children under 16 without verifiable parental consent. If we become aware that we have collected personal data from a child under 16 without such consent, we will take steps to delete that data promptly. If you are a parent or guardian and believe your child has provided us with personal data, please contact us at [email protected].

13. Data Security

We implement appropriate technical and organisational measures to protect your personal data, including:

14. Changes to This Policy

We may update this Privacy Policy from time to time. The “Last updated” date at the top of this page will be revised accordingly. For material changes that affect how we process your personal data, we will notify registered users by email. Previous versions of this policy are available upon request.

15. Contact

For privacy-related inquiries or to exercise your GDPR rights, please contact us:

We will respond to all GDPR requests within 30 days of receipt.