SubLingo Privacy Policy
1. Summary
- Without an account, your words and settings stay in your browser. A few features still go online: word definitions come from a free public dictionary, and a subtitle selector file comes from our website.
- With a free account, your saved words, including the subtitle line and the address of the video, are stored on our servers in Frankfurt (Germany) so they sync between your browsers.
- PRO payments go through Stripe. We never see your card details.
- No analytics, ads or tracking, and we don't sell data.
- You can delete your account and your cloud data from inside the extension.
2. Who is responsible for your data
The controller is Tihomir Susamov, a natural person, correspondence address: Yuzhna promishlena zona, Dalga Laka, 5008 Veliko Tarnovo, Bulgaria, e-mail sublingo.contact@gmail.com ("we"). SubLingo means the Chrome extension, the website and the cloud sync service.
We have not appointed a Data Protection Officer because we are not required to. Send any question to the e-mail above.
3. What we process, by feature
3.1. In your browser
The extension keeps the following in its own browser storage (chrome.storage.local):
- saved words: the word, translation, alternative meanings, note, definition, phonetics, grammar, the subtitle line, show and episode, the video address (only the site and the path to the video, plus the video ID on YouTube), the time in the video, whether you have learned it, and dates;
- your settings;
- your API keys for DeepL, Gemini or Claude, kept per account;
- sign-in data: account ID, e-mail, the name and profile photo address from Google (for Google sign-in), and sign-in tokens;
- the cached plan (FREE or PRO), and the sync queue and state;
- the libraries of other accounts used in this browser, so they come back when that account signs in again;
- the selector file (see 3.2).
Access to this storage is limited to the extension's own pages and background process. The script that runs on video sites cannot read it. We cannot see this data. It stays until you delete it (Settings → Data → Delete local data), delete your account (section 9) or remove the extension. "Delete local data" affects this browser only.
After you sign out, the library on this device stays linked to the last account. Words you save while signed out go to that account, and to its cloud copy, when it signs in again. If another account signs in after you signed out yourself, the words saved since that sign-out go to the new account instead; if your session simply expired, they stay with the previous account.
3.2. Features that always go online
- Dictionary. When you click an English word, the word (or its base form, such as "pull" for "pulled") is sent to the Free Dictionary API (
api.dictionaryapi.dev), an independent free project. It returns the definition and, if available, a pronunciation recording. To play a saved word's pronunciation, the word list (when you press the pronunciation button) and the flashcards (automatically, for each card shown) also send that word there. Only recordings hosted onapi.dictionaryapi.devare played. - Subtitle selectors. At install, at browser start and at most every 12 hours, the extension downloads the public file
selectors.jsonfrom our website (Firebase Hosting by Google). No personal data is sent apart from the IP address and browser details that come with every web request. - Chrome's built-in translator runs on your device. Chrome may download the language model from Google the first time.
- Pronunciation. If the dictionary has no recording, the browser's or operating system's voice is used. Depending on the browser, some voices work online, and then the word is sent to the voice provider (for example Google).
- Youdao. In the word list, the flashcards and the panel over the video, only when you press the pronunciation button and no other audio source is available, the word or phrase is sent to Youdao's pronunciation service (NetEase, China). Automatic pronunciation in flashcards never uses Youdao.
- Purpose
- the feature you asked for; keeping subtitle detection working
- Legal basis
- performance of the contract (GDPR Art. 6(1)(b)); for the selector file, legitimate interest (Art. 6(1)(f))
- Kept for
- we don't keep these requests; the providers handle them under their own terms
3.3. Your own API keys
If you enter your own key (this needs a free account), the extension sends text from your browser directly to that provider, under your own agreement with it:
- DeepL SE (Germany): the subtitle line to translate, or the selected word with the line as context;
- Google (Gemini API): the line, the selected word and your question, with your level and target language;
- Anthropic PBC (USA, Claude API): the same as for Gemini.
We receive no copy. How the provider keeps and uses the text depends on your plan with them; for example, the free DeepL and Gemini plans may keep the text or use it to improve their services. Your keys are never sent to our servers, never synced and never included in exports.
- Legal basis
- performance of the contract (Art. 6(1)(b)), for a feature you turned on
- Kept for
- keys stay in your browser until you delete them; the provider keeps the text under its own terms
3.4. Account (Firebase Authentication)
Accounts are run on Firebase Authentication (Google).
- E-mail and password: e-mail, password (Firebase stores only a hash), creation and last sign-in dates, and whether the e-mail is verified.
- Google sign-in: the e-mail, name, profile photo address and Google account ID that Google provides (scope
openid email profile).
Verification and password-reset e-mails are sent by Firebase. Their link leads to our /verify page, which sends to Firebase only what the action needs: the one-time code from your e-mail link and, when you reset your password, the new password (or your e-mail address, if you ask for a reset link after recovering it). Firebase may process IP addresses to prevent abuse. Accounts whose e-mail is not verified within 7 days may be deleted.
- Legal basis
- performance of the contract (Art. 6(1)(b)); abuse prevention, legitimate interest (Art. 6(1)(f))
- Kept for
- until you delete the account
3.5. Cloud sync (Amazon Web Services)
The cloud service runs on Amazon Web Services in region eu-central-1 (Frankfurt, Germany): API Gateway, Lambda and DynamoDB. With every request, the extension sends your sign-in token. From it, the server takes your account ID and e-mail. The e-mail is used only to find a purchase made with it (3.6) and is not stored anywhere else. We store:
- your account ID;
- each saved word with the fields in 3.1, including the subtitle line and the shortened video address;
- markers for deleted words (the word ID and when the word was created and deleted, without the word's text), so a deletion also reaches your other browsers; they are deleted automatically 2 years after the word was deleted, or earlier with the account;
- settings: settings sync is on by default and can be turned off in Settings. It covers the interface language, theme, colour, font (and the name of a custom font you chose), size, scale, opacity and position of the panel, target language, chosen translator, whether definitions and phonetics are shown, the hotkey, the number of history lines, the grammar settings, your level, and the AI provider and model. API keys are never synced;
- your plan (FREE or PRO, type and validity);
- a request counter that protects the service from overload and expires automatically;
- error logs with your account ID, the request ID and the error code, and for payments also Stripe IDs. They are kept for 30 days.
The free plan stores up to 150 words in the cloud.
- Legal basis
- performance of the contract (Art. 6(1)(b)); logs and limits, legitimate interest in a secure service (Art. 6(1)(f))
- Kept for
- until you delete the word or the account; deleted-word markers for 2 years; logs for 30 days
3.6. PRO purchases (Stripe)
You pay on Stripe's checkout page. Stripe processes your card and billing details under its own terms and privacy policy. We never see card numbers.
The extension passes your account ID to Stripe and pre-fills your e-mail. From Stripe we receive and store: your account ID, the e-mail entered at checkout, the plan type, its status and dates (including whether the subscription is cancelled at the end of the period), and the Stripe customer, subscription and payment IDs. We keep the checkout e-mail so that a purchase made on the website can be attached to the account with the same e-mail. IDs of processed Stripe notifications are kept for 30 days.
Purchase records not yet attached to an account (e-mail and plan), and links to Stripe IDs that no account is on, are kept while the plan is valid and then for about 13 months after the subscription ends or the purchase is refunded or disputed, so refunds and disputes still find the purchase. An unattached lifetime purchase is kept until an account claims it. Purchase records attached to an account are kept until the account is deleted. Accounting records of payments stay in our Stripe account for the period that accounting and tax law requires (up to 10 years). You can ask us by e-mail to erase the records we keep.
- Legal basis
- performance of the contract (Art. 6(1)(b)); legal retention duty (Art. 6(1)(c))
- Kept for
- while the account exists; purchases not attached to an account, while the plan is valid and then about 13 months; accounting records in Stripe, for the legal period
3.7. Support e-mail
Messages to sublingo.contact@gmail.com are processed by our e-mail provider (Google Gmail). We keep them for up to 24 months after the case is closed. Legal basis: performance of the contract or our legitimate interest in answering you (Art. 6(1)(b) and (f)).
3.8. Website
The website is hosted on Firebase Hosting (Google), which keeps server logs with IP addresses. The site uses no cookies, analytics or trackers, and fonts and icons are served from our own server. The /verify page sends to Firebase only what the action needs (see 3.4).
3.9. Diagnostics
The "Wrong line?" button only copies technical details to your clipboard: the version, site, browser, the detected line and a description of the page elements around the subtitles. Nothing is sent unless you send it to us yourself.
4. What we don't do
- No analytics, ads, profiling or tracking.
- We don't sell data or share it for advertising.
- No automated decisions with legal effects on you (GDPR Art. 22).
- We don't train AI models on your data.
The extension's script runs only on the supported video sites, and only over https. While a video plays, it keeps the last few subtitle lines in memory in that tab (Settings → History; 0 turns it off) so you can step back. They are never stored or sent anywhere unless you look up or save a word.
5. Recipients
- Google Ireland Ltd / Google LLC: Firebase Authentication, Firebase Hosting, Google sign-in, Gmail for support, and the Gemini API if you use your own key;
- Amazon Web Services EMEA SARL (Luxembourg): cloud sync, with data stored in Frankfurt;
- Stripe Payments Europe Ltd (Ireland): payments;
- providers you choose yourself: DeepL SE, Anthropic PBC;
- the Free Dictionary API (dictionaryapi.dev) and, only on an explicit click, Youdao (NetEase, China);
- public authorities, only when the law requires it.
6. Transfers outside the EEA
Google LLC, Stripe, Inc., Anthropic PBC and Amazon.com, Inc. are in the USA. Transfers to them rely on the EU-US Data Privacy Framework and/or the European Commission's Standard Contractual Clauses. The Free Dictionary API may be hosted outside the EEA. Youdao (China) receives only the word or phrase you asked to hear and the IP address that comes with every request; no account data is sent.
7. Legal bases
- Performance of the contract (Art. 6(1)(b)): the features you use, such as the dictionary, translation with your own key, the account, sync and PRO.
- Legal obligation (Art. 6(1)(c)): keeping payment records.
- Legitimate interest (Art. 6(1)(f)): security, abuse prevention, error logs and the selector file.
Accepting the Terms of Service is not consent to data processing. We do not rely on consent for any core feature.
8. Retention
| Data | Kept for |
|---|---|
| Data in your browser | until you delete it or remove the extension |
| Account (Firebase) | until you delete it; unverified accounts may be deleted after 7 days |
| Cloud words and settings | until you delete the word or the account |
| Deleted-word markers (without the word's text) | 2 years after the word was deleted, or until the account is deleted if that comes first |
| Deleted-account marker (account ID and date only) | 180 days |
| Request counter | expires automatically |
| Error logs | 30 days |
| IDs of Stripe notifications | 30 days |
| Purchase records attached to an account | until the account is deleted |
| Purchase records not attached to an account, and Stripe links without an account | while the plan is valid, then about 13 months after the subscription ends or the purchase is refunded or disputed; an unattached lifetime purchase until an account claims it |
| Stripe links after account deletion (without account ID and e-mail) | about 13 months, for refunds and disputes |
| Accounting records of payments (in Stripe) | for the period that accounting and tax law requires (up to 10 years) |
| Support e-mails | up to 24 months after the case is closed |
9. Your rights
You have the right of access, rectification, erasure, restriction of processing, data portability and objection. You can also complain to the Bulgarian Commission for Personal Data Protection (cpdp.bg) or to the supervisory authority where you live.
How to use them:
- Correct or delete words: edit or delete them in the extension. The changes reach the cloud too.
- Portability: Settings → Data → Export (a JSON file with your words and settings).
- Delete your account: Settings → Cloud profile → "Delete account". This deletes your cloud words and settings, your plan and your Firebase account. In this browser, the account's words, API keys and sync data are removed too; the browser's own settings stay. While a monthly or yearly subscription is renewing, cancel it first in Manage subscription. A subscription already cancelled at the end of its period does not block deletion. Only a marker with your account ID and the deletion date stays in the database, for 180 days, so other devices cannot upload the words again. Other browsers where you were signed in keep a local copy of your words as a local library; remove it there with "Delete local data". Payment records at Stripe, and records we must keep by law, stay until the legal period ends.
- Anything else: write to sublingo.contact@gmail.com from your account or purchase e-mail.
We answer within one month.
10. Security
- All connections are encrypted (TLS).
- Cloud sync requires a verified e-mail. The sign-in token is checked on every request, and the request rate is limited.
- API keys and sign-in tokens are out of reach of web pages and of the script on video sites.
- If a personal data breach happens, we notify the supervisory authority and the people affected when the law requires it (GDPR Art. 33 and 34).
11. Children
You must be at least 16 to create an account. Without an account, no personal data reaches us. If we learn that an account belongs to a child under 16, we delete it.
12. Data from Google APIs
With Google sign-in we receive only your e-mail, name, profile photo and account ID, and we use them only for your SubLingo account.
- The use of information received from Google APIs will adhere to the Chrome Web Store User Data Policy, including the Limited Use requirements.
- SubLingo's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
This means we use the data only for SubLingo's features, never sell it or use it for ads, and never let people read it unless you agree, for security, or when the law requires it.
13. Changes
When we change this policy, we update the date at the top. We tell account holders about material changes in the extension or by e-mail at least 30 days in advance.
14. Contact
Tihomir Susamov, Yuzhna promishlena zona, Dalga Laka, 5008 Veliko Tarnovo, Bulgaria, sublingo.contact@gmail.com. See also the Terms of Service.