OpenReader Privacy Policy
Last updated 3 October 2026
OpenReader reads EPUB documents aloud with a speech service you choose. It has no account, no server of its own, no analytics and no advertising. The developer receives none of your data.
What stays on your iPhone
- The documents you add, your library, your reading positions and your settings are stored in the app on your iPhone.
- Audio you download for listening offline is stored in the app.
- API keys you enter are stored in the iOS Keychain on your iPhone. A key is only ever sent to the service it belongs to.
What leaves your iPhone, and where it goes
OpenReader sends data to another service only when you use a feature that needs it. The first time it would send text to a service, it asks you first, and sends nothing unless you agree.
Reading aloud and downloading audio
To speak a document, OpenReader sends its text, a sentence or paragraph at a time, to the speech service you chose, together with your API key for that service:
- OpenAI
- Fish Audio
- Microsoft Azure Speech, in the region you set
- Speechify
- A server you run yourself, at the address you enter (OpenAI-compatible or Kokoro-FastAPI)
Each service handles what it receives under its own privacy policy and terms, through the account the key belongs to. Your API key identifies that service account, so requests and submitted text can be associated with it. OpenReader has no arrangement with these services and does not control what they keep.
Retention and other uses vary by service and account settings. OpenAI's speech API has abuse-monitoring retention by default; Fish Audio offers zero retention only for eligible services when enabled. Providers' terms may also permit using content to improve their services or models. Microsoft states that its real-time text-to-speech service does not store synthesis text or output audio. Do not assume that an arbitrary provider or server deletes text immediately after speaking it.
See OpenAI data controls, Fish Audio privacy and Customer Agreement, Microsoft's speech data policy, and Speechify privacy for the terms applicable to the service you choose.
Word Lookup & Translation
When you look up or translate a selection, OpenReader sends only the selected text to the service you chose: Youdao, Google Translate, the Free Dictionary API (dictionaryapi.dev), or Microsoft Translator with your own key. A word's pronunciation is played from Youdao, or from the recording the Free Dictionary API links to. Nothing else from the document is sent, and no history of lookups is kept.
Sync
If you turn on Sync, OpenReader keeps a small positions file on the WebDAV server you set up, using the credentials you enter. For each document with a reading position, the file holds the document's identifier (a fingerprint of the file, not its name or contents), your place in it, the sentence at that place with a few words either side, when you were there, and a name for your device. The documents themselves are never uploaded.
Voice lists
To show a service's voices, OpenReader asks that service for its list, sending your API key and nothing from your documents.
What OpenReader does not do
- OpenReader includes no analytics, crash-reporting or advertising SDK, and does not track you across other apps or websites.
- The developer receives none of your documents, credentials or usage data, and does not sell them. Services you choose handle requests under their own terms as described above.
- It does not use your location, contacts, photos, camera or microphone.
Removing your data
Deleting OpenReader deletes the documents, audio, positions and settings stored in it. iOS can keep Keychain items after an app is deleted, so remove your API keys in OpenReader's Providers settings first if you want them gone. The positions file on your WebDAV server is yours to delete there.
Children
OpenReader is not directed at children. The speech and lookup services you choose may impose their own minimum ages and account requirements.
Changes
If this policy changes, the new version will be posted on this page with a new date.
Contact
Questions about this policy: xujialiuphd@gmail.com.