Tapy is a keyboard for iPhone, with a companion app, made by Son Nguyen (“we”). This policy explains what Tapy does with your data. Questions: support@happytapy.app.
In short
- Tapy has no account, no ads and no tracking.
- Voice and AI features send what they need through our server to the AI model that writes your text, and only when you use them. Our server passes them on and does not store them.
- Your dictations stay on your iPhone for an hour.
- Without Full Access, the Tapy keyboard only types, and nothing leaves your iPhone.
Who handles your data
- Our server, which runs on CloudflarePasses each voice or AI request on, and stores none of what you say or type. Cloudflare sees your IP address.
- OpenRouterReceives the request under our account and passes it to the AI model. It gets no name, account, device ID or IP address of yours.
- GoogleAnswers the request with its Gemini models, under its own data practices.
- AppleHandles payment for plans, runs the App Attest and DeviceCheck checks, and may send us crash reports if you share analytics.
If you use your own OpenRouter key, requests go from your iPhone straight to OpenRouter instead of our server. The sections below give the details.
What Tapy sends, and where
When you use a voice or AI feature, Tapy sends the request over an encrypted connection to our server, which runs on Cloudflare. The server checks your plan or free minutes, passes the request to OpenRouter (openrouter.ai) under our account, and sends the text back to your iPhone as it is written. OpenRouter passes the request to the AI model Tapy uses (by default Google’s latest Gemini Flash model). This happens only when you use one of these features:
- Dictation (Clean, Verbatim and Translate modes): the recording of what you say, from when you start dictating until you stop, plus the half second just before you started, so your first word is not cut off. With it go up to 240 characters of the text just before the cursor, so the new text continues it; the kind of field you are typing in (such as an email address, web address, search or number field) and whether its Return key sends the message; your languages and target language; the words in your dictionary; and your own instructions for that mode.
- Copied messages: a message you paste with Tapy’s Paste button (up to 10,000 characters), and your last two replies to it when you answer more than once. In Translate mode, a pasted message that is not in your own language is also sent to be translated for you; Tapy recognizes its language on your iPhone first.
- Edits (holding the space bar, or the quick edit buttons such as Shorter): the text you selected or just inserted, the instruction, your languages and your dictionary. For an edit you speak, the recording of your instruction too.
- Running something again: when you run a past dictation again from History, or try a quick edit button in the app, its recording or sample text is sent again.
Each request carries an access code that our server gave your iPhone for your plan or your free minutes, so the server can count your minutes. As with any internet connection, Cloudflare sees your IP address. Our server does not pass it on: OpenRouter and the model provider receive no name, account, device ID or IP address of yours.
To keep that code current, the Tapy app also sends our server the App Store’s record of your purchase and a device check (see “Plans and purchases” and “Device checks”). These carry no voice and no text.
Tapy does not send what you type key by key, and never sends anything when you are not using a voice or AI feature. It does not read your clipboard: it only checks whether something new was copied, which iOS allows without reading it, and the text reaches Tapy only when you tap Paste.
Our server
Our server has one job: to let your iPhone use the AI model within your plan or your free minutes. It handles your voice and text only while it passes a request on. It does not save them, and its logs hold no content. It keeps:
- your purchase’s original transaction number, your plan and its dates;
- the seconds of speaking used in each period, and the cost of each request, to apply your plan’s hours;
- for free minutes, an ID for the App Attest key your copy of Tapy created, and the minutes used.
It deletes a plan’s record 90 days after the plan ends.
Plans and purchases
When you buy a plan, Apple handles the payment; we never see your card or your Apple Account details. Tapy sends our server the App Store’s signed record of your purchase (its transaction number, the plan and its dates), so the server can check that your plan is active. Apple tells our server when a plan renews, ends or is refunded.
Device checks
To give each iPhone its free minutes once, and to stop abuse, Tapy uses Apple’s App Attest and DeviceCheck. App Attest lets our server check that a request comes from a genuine copy of Tapy on a real Apple device; the server keeps an ID for the key your copy of Tapy created. DeviceCheck lets us store two bits per device with Apple, such as “free minutes used”, which stay if you reinstall Tapy. Neither tells us who you are.
OpenRouter and the AI model providers
Tapy uses OpenRouter under its own account. We keep OpenRouter’s prompt logging off, and we do not let it send requests to providers that may train on them. According to OpenRouter’s privacy policy (last updated 31 August 2026), OpenRouter does not keep audio longer than needed to route the request, except for abuse detection, security, billing or legal compliance. The model provider that answers the request, Google for the Gemini models, has its own data practices.
We send your data to no one else. Cloudflare, OpenRouter and the model providers protect it under their own policies, which give it the same or equal protection as this policy. Read them at cloudflare.com/privacypolicy, openrouter.ai/privacy and openrouter.ai/terms.
Your own OpenRouter key
If you have an OpenRouter account, you can use your own key instead of a plan, in Settings › Advanced. Requests then go from your iPhone straight to OpenRouter with your key, not through our server, and OpenRouter charges your account. When you save the key, and before dictations, Tapy asks OpenRouter whether the key works; this sends only the key. You use OpenRouter under your own account and its terms, and in your OpenRouter settings you choose which providers may receive your requests. OpenRouter accounts are for people 18 or older.
What stays on your iPhone
- History. Each dictation’s text, the copied message it answered, its mode, model and timings, and, while “Keep recordings” is on (it is on at first), its recording. They stay in the Tapy app’s own storage for an hour, so you can copy, replay or run them again, and are then deleted: Tapy removes older entries whenever it runs. “Delete all history” in Settings removes them at once.
- Statistics. Numbers per day: how many dictations, words and seconds spoken, per mode, and how fast the answers came. No text and no audio. They never leave your iPhone, and “Delete all history” clears them too.
- Settings. Your languages, dictionary, instructions and quick edit buttons, stored on your iPhone where the Tapy app and keyboard can both read them.
- Requests between the keyboard and the app. The keyboard hands each voice request, with the context above, to the Tapy app through a file on your iPhone, and the app hands the text back the same way. Each new request replaces the last.
- Your access code. The code from our server, renewed about once a day, stored in the iOS Keychain on this iPhone, where only the Tapy app and keyboard can read it.
- Your OpenRouter key, if you use one. Stored in the iOS Keychain, on this iPhone only and not synced to iCloud, where only the Tapy app and keyboard can read it. Remove it in Settings › Advanced. iOS can keep Keychain items after an app is deleted, so remove the key before deleting Tapy, or revoke it at openrouter.ai/keys.
- Keyboard choices. The keyboard remembers its mode, layout, typing language, recent emoji and skin tones, and whether it already offered the text you last copied.
The keyboard and Full Access
iOS asks you to allow Full Access for keyboards that need it.
- Without Full Access, the Tapy keyboard types letters, Telex, emoji and numbers. It cannot reach the internet or the Tapy app, so nothing leaves your iPhone.
- With Full Access, the keyboard can pass your voice requests to the Tapy app, send edits and copied messages through our server as described above (or to OpenRouter, with your own key), read your access code or key, and play key clicks and haptics.
Tapy never records your keystrokes or sends what you type, except the context a request needs as described above. In password fields and phone number fields, iOS always uses its own keyboard, so Tapy never sees them.
The microphone
Only the Tapy app uses the microphone, and only with your permission. Keyboards on iPhone cannot use it, so the app listens for the keyboard. While the microphone is on, iOS shows the orange microphone dot and Tapy shows a Live Activity with a button to turn it off. Between dictations the app keeps only the last half second of sound in memory; nothing is saved or sent until you start dictating. The microphone turns off by itself 5, 15 or 60 minutes after your last dictation, as you choose in Settings.
What we do not do
- No account, no sign-in and no profile. Your plan is tied to your purchase, not to your name.
- No ads, no analytics or tracking tools, and no data brokers. We do not sell or share your data.
- If you choose to share analytics with app developers in your iPhone’s settings, Apple may send us crash reports. We use them only to fix crashes.
Children
Tapy is not directed at children.
Your choices
- Stop using voice and AI features, or turn off Full Access, and nothing more is sent.
- Delete your history at any time: Settings › Delete all history.
- Manage or cancel your plan in your Apple Account settings.
- Remove your own key in Settings › Advanced, and revoke it at openrouter.ai/keys.
- Deleting the Tapy app removes its history, statistics and settings from your iPhone.
- To see or delete the record our server keeps for your plan, write to us with the order ID from Apple’s receipt email.
Changes
If this policy changes, we will post the new version here with a new date.
Contact
Son Nguyen · support@happytapy.app