Privacy policy
Last updated 22 October 2026. Applies to the Native Translate browser extension, the service at api.nativetranslate.app, and the site at nativetranslate.app.
Native Translate reads the text of the web pages you choose to translate and sends that text to our servers so it can be translated. This page explains exactly what leaves your device, what we keep, and what we never do.
What the extension sends
- Text segments of the page you translate, with inline formatting replaced by placeholder tags, and the language pair. For the refinement pass of long articles: the page title, the site name and a short summary of the article.
- Hashes of text segments, to ask the shared cache whether a translation already exists before any text is sent.
- Text you choose to translate in an input field, only when you press the translate button or shortcut.
- Account and device data: a random device identifier, the extension version, and, if you sign in, your email address.
- Broken-site reports, only when you send one from the popup: the site's hostname, your note, the extension, browser and site-adapter versions, the language pair, and counts such as how many paragraphs were found and translated. No page text and no page address. If you tick "Email me when it's fixed", also an email address: your account's when you are signed in, otherwise the one you type.
- Site fixes you share, only when you save a fix made with "Fix something on this page" while "Share this fix" is on (it is on by default and sits next to Save, so you can turn it off for any fix): the site's hostname, what the fix does, the CSS rule that picks that part of the page, the name you gave it, and the extension and site-adapter versions. No page text and no page address. Local-only mode never shares.
- Optional, off by default: content-free telemetry (timings, counts, error codes).
- Product counts, separate from that switch: that the welcome page opened, and that a translation succeeded for the first time. These carry no page address and no translated text. If you came from our site, they also carry the campaign name described below.
The extension never sends page URLs (a broken-site report or a shared site fix names only the hostname), cookies, form values, passwords, payment fields, one-time codes, the translated text, or the full HTML of a page. Banking, health, government, webmail and password-manager sites are off by default until you enable them. The extension does not load any analytics script; these counts go to our own gateway.
What we keep
- Translations, not source text. Successful translations are stored in an encrypted shared cache keyed by a hash of the source text. An entry becomes servable to other users only after three different devices have submitted the same text, so text unique to you never reaches anyone else and expires within 24 hours. Cache entries expire after 30 days (drafts) or 14 days (refinements). Text from sensitive sites and pages that look authenticated is never written to the shared cache. Privacy mode in the options turns the shared cache off entirely.
- Usage counters: characters and pages translated per day per account or device, to enforce plan limits.
- Request logs with counts, timings, language pairs, model names and error codes, kept for 30 days. They contain no page text.
- Account records: your email address, plan and sign-in times. Session tokens are stored only as salted hashes. If we know which campaign led to the install, that campaign name is stored on the anonymous device and, once you sign in, on the account. It is a short label such as
hn, not a page address and not an identifier of you. - Broken-site reports, read by our team to fix sites and kept for 180 days. An email address you gave with a report is used once, to tell you the site is fixed, and deleted when that email is sent (or with the report after 180 days). It is not added to any list and is not shown to anyone reviewing reports. A copy of your reports stays in the extension's options page; local-only mode keeps them on your device and sends nothing.
- Shared site fixes, read by our team to improve the built-in tuning for that site and kept for 180 days. They are stored with a hashed device identifier, only to count how many people shared the same fix.
How we tell which announcement led here
The site counts page views, the page you were referred from (the site name, not the full address), and the campaign parameters on the link you opened (utm_source, utm_medium, utm_campaign, utm_content, utm_term). It also counts clicks on install, views of the pricing section, and the start of checkout. This runs without a cookie and without a third-party script in your browser: the page sends the count to our gateway, and the gateway can forward it to PostHog hosted in the EU. PostHog is a processor for that measurement only. We do not send it page text, your email, or a page you translated. A visitor is recognised only for the rest of that UTC day, by a hash of the network address and browser that we do not store. There is no advertising profile and no cookie banner, because this measurement does not store an analytics cookie or similar tracker.
Separately, the site keeps a campaign note in this browser's local storage under the name nt_attr for 90 days, and only the first one. It holds the campaign parameters, the referring site's name, the path you landed on, and the time. It exists so that, after you install, the welcome page can attach that campaign to the anonymous device. Links to the Chrome Web Store and the Edge Add-ons store carry the same parameters, which those stores report in their own dashboards. Removing the extension opens our uninstall page with those parameters on the link, and if you pick a reason we count the reason. The note is not shared with advertisers. You can clear it by clearing site data for nativetranslate.app.
When you start a Pro checkout, the campaign name is attached to the Stripe Checkout session as metadata, so a subscription can be tied to the announcement that led to it. Stripe does not receive the text you translate. Card details stay on Stripe's pages, as before.
Who processes the text
Translation is produced by third-party language models accessed through OpenRouter (Google, OpenAI, Anthropic, DeepSeek and others). Text segments are sent to them for the sole purpose of translation. We route requests with prompt-logging disabled where the provider offers it and do not allow providers to train on the text under our agreements. Sign-in emails are sent through Resend. Marketing counts, when forwarding is switched on, are processed by PostHog in the EU. None of these processors receive the campaign note together with the text of a page.
What stays on your device
Your settings, per-site rules, a local translation cache (up to 50 MB) and your session token are stored in the extension's local storage on this browser only. They are never synced to Google or to us. Local-only mode disables the network path of the extension completely; it then uses only the on-device translator built into Chrome, where available.
Your choices
- Use the free trial without an account.
- Sign out from the options page; sign out everywhere by emailing us.
- Turn on privacy mode (no shared cache) or local-only mode.
- Clear the local cache from the options page.
- Delete your account and its data yourself: Options → Account → Delete account (cancel a renewing Pro subscription first). It removes your account, sign-in history, usage records and the campaign name stored on the account at once, and your address from any broken-site report. The anonymous device can keep the campaign name without your email. You can also email [email protected] from the signed-in address and we will do it within 30 days. Stripe keeps its own payment records as the law requires.
Legal basis and transfers
We process text to perform the service you request (contract) and account and log data for security and abuse prevention (legitimate interest). Counting which of our own announcements leads to an install or a subscription is a legitimate interest, limited to the campaign data described above; you can object by emailing us and we will remove the campaign name from your account. Servers are operated in the United States; providers may process text in other countries. PostHog, when used, processes marketing counts in the EU. Data-processing agreements are in place with our model provider, email provider, and PostHog when that forwarding is on.
Children
Native Translate is not directed at children under 13 and we do not knowingly collect their data.
Changes
We will post changes here and, for material changes, note them in the extension's release notes.
Contact
The data controller is Longlight Labs Limited (company number 17461794, registered in England and Wales), 124 City Road, London EC1V 2NX, United Kingdom. Write to [email protected] for any privacy request.