Scope and contact
LeafRead.io is operated by Artem Makushev, Ukraine. This policy covers the LeafRead.io website and iOS app. For questions about personal data or to exercise your rights, contact privacy@leafread.io. General support is available at support@leafread.io.
Account and sign-in
We process your email address, account identifier, profile name when provided, password hash, verification status and sign-in sessions to create and secure your account. The iOS app stores its session credential in the system Keychain, not your password.
If you use Apple or Google to sign in, we receive a provider-specific identifier and email address, including an Apple private relay address if you choose one. A name may be provided during sign-in. We verify the credentials on the server. We do not receive your Apple or Google password, contacts, email messages or files. Connecting a provider to an existing LeafRead account requires signing in to that account; matching email addresses alone do not merge accounts. Apple connection tokens are stored encrypted so access can be revoked when deletion is completed.
Your personal library
We store the materials you choose to save: text, formatting, title, uploaded original, source link and selected cover image. Notes, highlights, bookmarks, tags, collections, reading position and synchronized preferences are associated with your account so the website and app can share your library. Private imports are not published.
Importing a link requests that page from the source website. We do not collect your general browsing history. The website may also offer a catalogue selected by the LeafRead team. The iOS app does not include that catalogue; it reads materials you import or save yourself.
Speech, scanning and dictation
New speech is generated on a server. The text needed for the requested passage and voice settings are processed to create audio, which is stored with generation and usage records. These records enforce the shared daily allowance and allow playback and downloads. The speech model is not installed on your device. Previously downloaded audio can be played without new generation.
On iOS, camera and photo text recognition runs on the device. Recognized text is sent to your library only when you save it. Choosing a cover uploads the selected processed image, not your photo library.
Voice input is optional. After you stop recording, or after two minutes, the recording is sent to the private recognition service for transcription. That service removes temporary audio after processing, including failures. The app removes the temporary recording after success, cancellation or closing the input screen; after an error it may keep the recording while that screen is open for a retry. You review the transcript before saving it to your library.
Pronunciation feedback and support
If you report a pronunciation problem, we receive the selected word, a short surrounding excerpt, your suggested pronunciation, linked account and document identifiers, voice and language settings, playback speed, audio source and app version. We review reports to improve pronunciation and prepare examples for training the speech model. Sending a report is optional. Your private library is not automatically submitted as training feedback. A report does not guarantee an immediate correction.
If you contact support, we process your message, contact details and information you choose to attach so we can answer you. The app feedback form includes the app and iOS version in a message you can review before sending.
Usage statistics and errors
We use PostHog in the EU region to understand feature use, audio performance and technical failures. Events can include event times, language, app or browser and device information, playback duration, waiting time, error codes and approximate country or region derived from the connection IP. Reading text, document titles and links, notes, email addresses, passwords and session credentials are excluded from product analytics.
The website uses cookieless measurement without an account-linked profile or a persistent analytics identifier in browser storage. The iOS app uses a random identifier that changes each time the app launches. Product events are not linked to your LeafRead account or combined into a website-and-app account profile. Session recording, advertising tracking and automatic capture of clicks are disabled.
Basic usage statistics and diagnostics are enabled by default unless you previously turned them off. You can disable them in website Privacy settings or in Your account → Usage statistics and diagnostics in the app. The website also respects Do Not Track and Global Privacy Control. Turning collection off stops future client events; it does not automatically erase earlier events. Server diagnostics are separate and exclude account identifiers, client IP addresses and request contents from PostHog payloads.
The website also counts page visits by normalized page, date, country and device type. Approximate unique counts use a daily rotating pseudonym derived from connection metadata. Raw IP addresses and user agents are not stored in these analytics tables. These pseudonyms are removed after 32 days; aggregate counts remain.
Why we process data and who helps provide the service
We process account, library and requested audio data to provide the service you request. We use limited operational, security and diagnostic information to protect the service, investigate failures and improve reading and listening. Optional device permissions and feedback remain your choice. Where applicable, processing is based on providing the service, legitimate interests in security and service improvement, your consent where required, or legal obligations. You can contact us to object to processing or withdraw consent where it applies.
Railway provides application and database hosting; Cloudflare R2 stores private originals and generated audio; Resend sends account emails; PostHog provides product measurement and error reporting. Apple and Google handle their respective sign-in flows. Server speech runs in the hosted speech service or, when an external speech route is used, through AltVoice or RunPod. The requested text and voice parameters are sent only to the service performing that generation. Dictation uses the private recognition service.
Service providers receive data needed for their role. Their data-processing and confidentiality terms govern handling on our behalf; providers must protect the data consistently with this policy. Infrastructure may process data outside your country, including in the United States and Europe. Applicable provider transfer arrangements and safeguards apply to those transfers. We do not sell personal data or use it for advertising across other companies’ apps or websites.
Retention and account deletion
Your library remains until you delete a material or your account. Archiving only hides a reading from the active list. Server-generated audio is cleaned up after seven days from creation, except for accounts with a retention exception. Playback does not restart that period. Texts, notes, reading progress and copies already downloaded to your device are not removed by this audio cleanup. A failed storage deletion is retried in the background.
In the app, open Your account → Delete account; on the website, use Settings → Delete account. Confirm with your password or fresh authorization from a connected Apple or Google account. Deletion is scheduled for seven days later and sessions are ended. To cancel before the displayed deadline, sign in and explicitly choose Cancel account deletion. Signing in or resetting a password alone does not cancel it. After the deadline, the account and linked library, notes, preferences and pronunciation reports are removed by a background worker. Original files and audio are queued for deletion. The requesting iOS device clears its downloads when deletion is requested.
Deleting a document alone does not delete a previously submitted pronunciation report. Linked reports are removed with account deletion; you may also request removal at privacy@leafread.io. Generation records remain after clearing audio to preserve usage accounting. Routine operational audit events are retained for 14 days and security signals for 30 days. Administrative decisions and active restrictions are kept as needed to enforce and review them.
Deletion from the active service does not mean immediate erasure from provider backups or diagnostic systems, whose retention follows the relevant provider settings and obligations. We may retain limited records where necessary to address an unresolved security incident, dispute or legal obligation. Details of temporary files and expiry schedules are on the Data retention page.
Your choices and rights
You choose which material to upload, whether to use dictation or scanning, whether to report pronunciation and whether to save offline copies. Camera and microphone permissions can be changed in iOS Settings. Unrelated reading features remain available if you decline them.
Contact privacy@leafread.io to request access, correction, a copy or deletion of your personal data, or restriction of or objection to processing where applicable. We may verify ownership of the account to protect your data. You may also complain to the relevant data protection authority. LeafRead is not directed at children below the age at which they can use the service under applicable law.
Changes
We update this policy when the service or its handling of data changes. The date above identifies this version. Material changes will be communicated through the service where appropriate.
