Privacy Policy
App Keigo 敬語 · version 1.5 · last updated: 25 September 2026
Keigo 敬語 teaches the Japanese honorific register: whom you are speaking to, and how high to pitch it. All of the learning — levels, exercises, reviews and progress — happens on your device, with no internet. Version 1.5 adds one optional feature, the Check tab, and it is the only thing that sends anything off the phone. This policy describes what the app actually does in version 1.5.
Your account
There isn't one. Keigo does not ask you to register, sign in or provide an email address, a name or a phone number, and it knows nothing that could identify you.
Where your learning data goes
Your mastery of each item, your answer history, your sessions and your review schedule are stored on your device only, in the app's local database, and never leave it. The developer has no access to them.
What you write in the Check tab, and the answer that comes back, do not count towards your progress or reviews. The app keeps your sentences and their latest results in the list on the Check tab — on your device only, in a separate file that is never sent anywhere and is not part of the progress export. You delete them on that tab, one by one or all at once; they are also removed together with the app.
You can also scan a sentence from a photo (with the camera or from your photo library). The text is read on your phone; the photo is never saved or sent — only the text you pick and correct goes into the field, and it reaches the server only when you tap Check. The app asks for camera access the first time you take a photo; the photo library opens through the system picker, which gives the app only the photo you choose.
Deleting the app deletes your progress with it. To keep a copy, use Export progress in Settings — it creates a file saved wherever you choose. The app never sends it anywhere on its own.
Data shared with the developer's other apps
Keigo belongs to a family of apps for learning Japanese. If you have more than one of them on your device, the app shows a Your Japanese section with one row per app.
It works like this: Keigo writes a small file with its card on your device, in an area shared by the apps of this family. The card carries six things about your learning: what percentage of the material you have mastered, how many days your streak has lasted, how many sessions you have done, one sentence about your weakest spot (in Polish and in English), whether today's goal is done, and when your next reviews are due. Plus technical details: which app wrote the file and when. It holds no answer history and nothing you write in Check.
This file never leaves your device and is read only by the other apps of this family that you have installed on the same device. The shared area survives uninstalling a single app — the file disappears once you remove every app of the family from the device.
Tracking and advertising
None. There is no analytics SDK, no advertising SDK, no crash reporter and no advertising identifier (IDFA) in the app. The app does not sell or share any data.
Network connections
Apart from the Check tab, the app makes no network connections of its own; traffic for purchases and restoring purchases is handled by iOS and the App Store. The app contacts our server only in connection with Check, and only at four moments: when you open the Check tab or the subscription screen (to show how many checks are left), when you tap Check, and after you buy the subscription or restore purchases (so that the server learns about the subscription). Never in the background and never on a timer. Your sentence is sent only when you tap Check.
The Check tab — the only feature that sends data
Check is optional. Without it the app teaches, tracks progress and schedules reviews in exactly the same way.
When you tap Check, we send three things to our server at
api.jd-japanese.pl: the sentence you wrote (up to 120 characters),
the person you chose to address (such as "your boss" or "a close friend") and the
language the answer should come back in. The server passes them to a language model from
OpenAI, which assesses the sentence, and the answer comes back to the app. Nothing
else is sent — not your progress, not your answer history, nothing that could identify you.
We do not store the text of your sentence — it does not go into any database or event log, and neither does the model's answer. There is no column in the database where they could be kept, and adding one breaks an automated test on the server. Our request to OpenAI asks it not to retain the response. The single exception is brief and never reaches disk: a finished answer stays in the server's memory for two minutes, so that tapping the button twice on the same sentence does not count as two checks.
What we do keep, because the feature cannot work without it:
- an App Attest key identifier with its public key — a technical identifier from Apple's mechanism that confirms a request comes from a genuine, unmodified copy of this app. It is created on the device, is unique to this one app, and cannot be linked to anything Apple or any other app sees. Reinstalling the app creates a new one, and the server then sees a new device;
- the subscription's transaction identifier from the App Store — only if you subscribe: so that we know you have the subscription, also after a reinstall or on another device signed in with the same Apple Account;
- usage counters — how many checks were made today and this month.
For a shorter time we keep technical billing and maintenance data: Apple transaction identifiers and request metrics (request number, feature name, model, status, token count, response time) — for 90 days. We do not store IP addresses; to protect against abuse the server keeps only a keyed hash of the address, for 24 hours.
When it connects, the app also includes a single-use DeviceCheck token issued by iOS. In Keigo the server neither reads nor stores it: the free sample here is not protected against reinstalling, so the token has nothing to guard.
None of this is linked to your name, email address or any account — the app knows none of them. We do not use it for tracking, profiling or advertising. There is no account to delete; if you want these entries gone, write to me.
Purchases
The one-off Premium purchase and the AI Check subscription are handled entirely by Apple. Keigo never sees your payment details, card number or billing information. The app reads the state of your purchases from iOS. While a subscription is active, the app passes our server the Apple-signed proof of that transaction — only so that the server can verify the signature itself and grant the subscription's checks.
How Apple processes data is described in Apple's privacy policy.
Reports from the app
The Report the Japanese, Suggest a feature and Report a problem
buttons in Settings prepare an email in your mail app. Nothing is sent until you tap
"Send" yourself. The message is pre-filled with the app version, build number, iOS
version and device model identifier (e.g. iPhone14,3) — all visible and removable
before sending. If you write, I will see your email address and the message; they are used only
to reply.
Children
The app collects no data that could identify anyone, of any age: there is no account, and it does not ask for a name, age or address. For Check we keep only the technical identifiers and counters described above.
Changes
If this policy changes, the updated date at the top changes with it. This page's address carries the app version, so older releases always point at the document that actually described them — releases before 1.5, which connect to no server at all, are described by the document at the address numbered 1.0.