Lexo privacy policy
This policy applies to Lexo (com.lexo.keyboard), published by K4Y Apps. It explains what data the app collects, what it shares, and what you control. Lexo for iPhone and iPad collects nothing at all; it has its own section below, and the rest of this policy describes the Android app.
Lexo for iPhone and iPad
Lexo for iOS collects no data. The keyboard's prediction model, autocorrect and the words it learns from you live inside the app on your device, and nothing you type leaves your device: the keyboard has no crash reporting, no usage counts, no install request, no analytics, no ads and no sign-in.
iOS asks whether to "Allow Full Access" for any third-party keyboard. Lexo works fully without it. If you turn it on, the only thing Lexo uses it for is reading the settings you choose in the Lexo app (such as Auto-Correction and Predictive Text); it still sends nothing anywhere. The words Lexo learns are stored only inside the keyboard on your device and are deleted when you delete the app.
Summary
Lexo is a local-only keyboard. Everything it does - text prediction, autocorrect, swipe decoding, voice transcription, personalization and all ML inference - runs entirely on your device. No keystrokes, typed text or audio are ever collected, transmitted, or included in any diagnostic report. Lexo has no sign-in of its own, no cloud sync, and no advertising of any kind. Two things can send data, and both are off unless you turn them on: crash reports and usage counts. One more request is sent once after you install the app, and it is described below.
Crash reporting is off by default. Nothing is sent unless you turn on the optional "Send crash reports" setting at Settings › Advanced. If you do turn it on, anonymous crash and diagnostic logs go to Firebase Crashlytics to help fix bugs, and you can turn it off again at any time.
Usage counts are off by default too. If you turn on "Share usage counts" at Settings › Advanced (setup asks once, with Share stats or No thanks), Lexo sends us a daily tally of how its suggestions did: how many words you picked from the suggestion strip, typed out, swiped or undid, which position in the strip your picks came from, how many key taps those words took, and how many words were entered while the phone was in Battery Saver or running hot. With the tally go the day, the app version, the keyboard language and a short identifier of the suggestion model file. It is numbers only: no words, no letters, nothing you typed or said, no app names, and no identifier for your account, device or install. Words entered in incognito mode or in password fields are not counted.
When Lexo underlines a possible mistake (a spelling, grammar, repeated-word or joined-sentence fix) and "Share usage counts" is on, the daily tally also counts, for each kind of fix, how many underlines were shown and where (drawn by the keyboard or by the app), how many you applied, and for the ones you did not apply, why, as one of five reasons: the underline was never on screen long enough to see, you opened its suggestion and closed it, you chose to keep the word, you changed the word yourself, or you left it as it was. It is numbers only: never the word, the suggestion or where it was.
If you use Ask Lexo and have "Share usage counts" turned on, the daily tally also holds how often you used it and how it went, as numbers only: how many times you asked, how each one came out (a setting changed, a question answered, a request it could not do), whether it was typed, spoken or a tap on a suggested choice, how often you undid a change within half a minute, how often you asked again within half a minute of an answer that did not work, how many times you opened Ask Lexo and closed it without asking, and how often the choices it offered were shown and tapped. Nothing you asked, nothing it answered and no setting names are ever included, and turns taken in incognito mode or in password fields are not counted. It goes with the same day, app version and keyboard language as the rest of the tally, and turning the setting off deletes anything still waiting on your device.
If you have "Share usage counts" turned on, the daily tally also holds how Lexo's punctuation help did, as numbers only: how many commas, periods and question marks the keyboard added for you, how many of those you took back out, and how many commas, periods and question marks you typed yourself. It never includes the words around them, what you wrote, where in a sentence a mark was or when in the day it happened, and nothing is counted in incognito mode or in password fields. It goes with the same day, app version and keyboard language as the rest of the tally, and turning the setting off deletes anything still waiting on your device.
For a language where Lexo can tell what kind of fix it made (Polish today), the daily tally also counts its fixes by kind, as numbers only: a change of grammatical case, gender or number, a restored accent letter, an ending that depends on who is writing or who you are writing to, or other. For each kind it counts how many fixes were shown, how many were applied (by you or by the keyboard), how many you took back, and how many times you chose a different form from the list it offered. It never includes the word, the fix, the other forms or where in your text it was, and nothing is counted in incognito mode or in password fields. It goes with the same day, app version and keyboard language as the rest of the tally, and turning the setting off deletes anything still waiting on your device.
When Lexo fixes a sentence for you as you type and "Share usage counts" is on, the daily tally also counts how those fixes did, as numbers only: how many were made, how many you kept, undid or swapped for another suggestion, grouped by a coarse kind (a typo, capitals and punctuation, grammar, or a run-on sentence split in two). Lexo can try two settings of the filter that decides which fixes to make, one per typing session, chosen by a random number that stays on your device; the tally says which of the two each count came from, as a short code shared by everyone on that setting. It never includes the words, the fix, what you wrote, where in a sentence a fix was or when in the day it happened, and nothing is counted in incognito mode or in password fields. It goes with the same day, app version and keyboard language as the rest of the tally, and turning the setting off deletes anything still waiting on your device.
If Lexo is testing those fixes on your phone and "Share usage counts" is on, the daily tally also says which group your phone is in (fixes on or off), whether you turned "Fix as you type" off, and how many times you switched it off or on that day, as numbers only. The group is a coin flip made once on your phone and is not linked to you or to anything you typed.
If you have "Share usage counts" turned on, the daily tally also holds how Lexo Premium is doing, as numbers only: whether your phone is in the free trial, has Premium, or has finished the trial without it that day; how many times you opened the Premium screen or saw the Premium prompt in the keyboard; how many times you started a purchase and how each one ended (completed, cancelled or an error); and how many times you saw or tapped a trial reminder, a notice after the trial, or Restore purchases. It never includes payment details, your Google account, what you bought beyond the fact of a completed purchase, or anything you typed. It goes with the same day, app version and keyboard language as the rest of the tally, and turning the setting off deletes anything still waiting on your device.
If you choose to share, the daily report also holds speed counts: how many key presses took how long to appear, how long suggestions took, how often the keyboard drew a slow frame, how often Android asked it to free memory, and how long its language model took to load. It also holds your phone's RAM size range, maker (for example Samsung), chip and Android version. It holds no phone model name, no identifier, nothing tied to an account and nothing you type. You are asked once during setup, nothing is shared unless you choose Share stats, and you can change it any time in Settings › Advanced.
After you install Lexo from Google Play, the app sends one anonymous request to a server we operate. It contains only the install source tags Google Play records for the link you installed from (the utm source, medium, campaign and content, for example which page of this website the install came from) and the app version, plus two coarse labels: whether this is a new install or an update, and whether the keyboard or the app was opened first. It carries no device or install identifier, no sign-in details, no advertising ID and nothing you typed or said, and it is not linked to you.
Data the app collects
The following is sent off your device by services we operate or treat as service providers. It is used only to keep the app working, to fix bugs, to see whether suggestions are getting better or worse, and how fast the keyboard responds, from one version to the next (usage counts) and to see which links lead to installs (the install request). It is not sold, and it is not used to profile you. Apart from the one-time install request, nothing in this table is sent unless you turned on the setting it belongs to.
| Category | Data type | Purpose | Optional |
|---|---|---|---|
| App info and performance | Crash logs | App functionality | Yes |
| App info and performance | Diagnostics | App functionality | Yes |
| App info and performance | Diagnostics (daily speed counts and device range, part of usage counts) | Analytics | Yes (optional) |
| App activity | App interactions (daily usage counts) | Analytics | Yes |
| App info and performance | Install source tags (utm source, medium, campaign, content) and app version, sent once after install | Analytics | No |
Data the app shares with third parties
The app does not share any data with third parties.
Third-party SDKs in use
- Firebase Crashlytics - privacy policy. Active only while you have crash reporting turned on.
- Google Play Billing, for the one-time unlock.
Network access
Lexo declares INTERNET for exactly five purposes, and none of them is your text or your voice:
- A one-time download of the on-device models on first setup, from an object store we operate.
- Google Play billing, for the paid unlock.
- Anonymous crash reporting, only while you have it turned on.
- The daily usage counts, only while you have them turned on. They go to a server we operate, not to an analytics company.
- The one anonymous install request described above, sent once after install, to a server we operate.
You can verify this yourself with a packet capture tool such as PCAPdroid or NetGuard. Past the model download and the one-time install request, and with both optional settings off, typing and dictating send nothing over the network. With usage counts on, the only addition is a small upload of the previous days' tallies, sent when the keyboard closes.
Like any internet request, the usage counts upload reveals your IP address to our server and to Cloudflare, the network provider in front of it. Our server keeps the address with the report for up to 12 hours and then deletes it; the counts we keep after that have no IP address attached. We do not use it to identify you. The install request works the same way, except that we store nothing from it at all: Cloudflare, the network provider in front of our server, sees your IP address as it would for any request and counts requests in aggregate, and we keep no record of who sent one.
This website
lexokeyboard.app counts anonymous page views: which page was viewed, which website (if any) sent the visitor, and taps on the Google Play buttons. It sets no cookies, uses no browser storage, assigns no identifier and loads no third-party script. Each count is a request to our own domain whose address names the event, and Cloudflare, which serves the site, tallies those requests in aggregate. Nothing is stored per visitor. If your browser sends Do Not Track or Global Privacy Control, the page sends nothing. Like any web request, loading the site reveals your IP address to Cloudflare; we do not see or store it.
Our social media accounts
Lexo has its own accounts on Mastodon, Bluesky, YouTube, Instagram, Threads and TikTok, all named lexokeyboard. We post to them and read replies and comments on them with our own tools, using each platform's official API. Those tools sign in only to our own accounts. They never ask for, sign in to or read your account on any platform, and nothing in the Lexo app talks to them.
Our YouTube channel uses YouTube API Services. When you watch, like or comment on our videos, YouTube handles that under the YouTube Terms of Service and the Google Privacy Policy. Comments on our channel are public, and we read them only to answer them. We do not copy them into any other system or combine them with anything else. The same goes for replies on our other accounts, under each platform's own terms. If you ever granted any tool of ours access to a Google account, you can revoke it at Google's security settings. To ask us to delete anything we hold about you, email [email protected].
Your choices
- Turn crash reporting on or off at any time at Settings › Advanced › "Send crash reports". It is off unless you turn it on, and nothing is sent while it is off.
- Turn usage counts on or off at any time at Settings › Advanced › "Share usage counts". It is off unless you turn it on. Turning it off stops the uploads and deletes any counts still waiting on your device. Counts already sent carry no identifier, so we cannot pick yours out to delete them.
- The install request is sent once and carries no identifier, so we cannot pick yours out to delete it.
- Uninstall the app to remove all local data the keyboard created, including keyboard personalization and learned words, from your device.
Children's privacy
Lexo is not directed at children under 13. We do not knowingly collect personal information from children. If you believe we have, contact us at [email protected] and we will delete it.
Changes to this policy
If we make material changes to this policy, we will update the "last updated" date above. Continued use of the app after any change constitutes acceptance of the updated policy.
Contact
Questions or concerns: [email protected].