Skip to content

Privacy

Your documents never leave your browser.

ONYRI Sanitize reads, analyzes and masks your documents in your browser, in local JavaScript. No file, no recognized text, no detected value and no token ↔ value mapping is ever sent to us. This page explains what stays on your device, what our servers store, and how to check it.
  1. 100% in-browser processing

    Loading the file, recognizing text in a scan (on-device OCR), detecting sensitive data, drawing the masks and exporting the anonymized copy all run in your browser. There is no upload and no server-side processing. On a computer, the detection of person and company names also uses a recognition model that runs on your device; like the OCR files, its files come from our own domain.

  2. No telemetry where you work

    On the document page, there is no analytics, no tracking pixel, no session replay and no third-party script. While you work, the DevTools Network tab shows no request carrying your document. Audience measurement exists only on public pages and on a few account pages (see below).

  3. Volatile memory, nothing persisted

    The document and, in token mode, the mapping between each token and its original value live in the memory of the current tab. Closing or refreshing the tab wipes everything. The only thing written to your browser: a random key, created on your device and never sent, kept in IndexedDB. It computes a token of your file names so the same document is not counted twice.

Where each piece of data lives

Stays in your browser

Everything that is, or could reveal, content:

  • The file you drop (PDF, Word, image or scan)
  • The text recognized in a scan or a scanned PDF page by on-device OCR
  • The detection results: which values were found, and where
  • The masks and the preview you review
  • In token mode, the token ↔ original value mapping
  • The anonymized copy you download

Stored on our servers

What runs your account, and measurements with no content at all:

  • Your account: name, email address, hashed password, country and language
  • Your plan and billing history, handled through Stripe
  • Your detection settings: custom rules and profiles (patterns you define — never document content)
  • Usage counters, with no content at all: how many documents, pages and masks, how many documents were refused at the daily limit, how many masks per category (names, numbers, addresses…), the file type (PDF, image…), whether the document is a scan, the country and language recognised in the document, your browser's language, and a token of the file name computed with the key that stays on your device — never the name in clear, never the content
  • Your “not masked right?” reports: only the boxes you tick (a name, a number, an address…), with the document's country and language — never any text
  • When a document fails (format refused, reading or OCR impossible, unreadable pages…), a technical diagnostic e-⁠mailed to our team and counted: the stage, the file type and size, the number of pages, the error name, the browser, the device and the language — never the file name or its content
  • When you create your account, where you came from: the site page you saw first in the tab (home, pricing, a specific page or article — never its full address or parameters), the type of site you came from (search engine, AI assistant, direct link…), the campaign code of our own links if there is one, the time before you signed up and the method (email or Google). Nothing is written to your browser for this: the information stays in the tab, is sent with the sign-up or the “Continue with Google” click (already reduced to these categories), and is kept only if an account is created
  • Your answers to the short questions we sometimes ask in the app or once by email (for example: how often do you have a document to anonymize? or, after a payment you did not complete: what stopped you?): the option you pick and the offer concerned, linked to your account, with your plan and how many documents you have already anonymized (in ranges) — never free text. Unsubscribing from emails of this kind is also recorded
  • High-level technical logs (sign-in, errors) with no document data
  • Without an account, on the trial page: to keep the daily document limit, the server derives a one-way fingerprint from your IP address and browser type, which changes every day. The application writes neither the IP address nor the fingerprint to its database or logs: the fingerprint stays in the server's memory and is forgotten when the day changes (midnight UTC) or on restart. The trial logs keep only counts and categories (file type, pages, masks, recognised country, scan or not, and, when something fails, the failure type, file size, browser and device). As for every page of the site, our host also keeps an access log (IP address, time, page requested) for about 30 days
  • The tip e-⁠mails sent after sign-up or a purchase: the name of each step (for example "day 3") and its date, and your unsubscribe if you ask for it — so we never send the same message twice or write to someone who said no. Choosing a tip only reads these counters: documents anonymized and downloaded, plan

Usage counters apply your plan's limits (documents per day, pages per document), show you your usage and help us improve detection (in which countries, which languages and for which types of data it gets things wrong); the name token avoids counting the same document twice. They contain no name in clear, no value, no excerpt. Where you came from at sign-up tells us which pages and channels bring users; your answers to our questions help us decide how to charge for the service.

Translation by your browser: if you have a page translated (Chrome, Edge, Safari…), your browser sends its text to its own translation service, not to us. On the documents screen, the document's text, the detected values, selected excerpts, the terms you add and file and profile names are marked not to be translated: a browser that honours this marking does not send them.

Two masking modes, two levels of protection

Black marker
The anonymized copy is flattened: the masked areas become opaque pixels with no text layer underneath. Nothing can be recovered from the exported file.
Token (paid plans)
Each value is replaced by a consistent label such as [NAME1]. The same value gets the same label across the document. This is pseudonymization, not anonymization in the legal sense: anyone who holds the original document can link the labels back to the values. The list of values and labels stays in your browser and disappears when the tab closes.

What detection covers — and what it doesn't

Automatic rules can't recognize everything. Here is what ONYRI catches today, by category, so you know where we stop. Reducing exposure is not the same as guaranteeing compliance: you review the preview before downloading.

Strong

  • Personal identifiers (emails, phones, addresses, official IDs, dates, most names)
  • Financial data (IBAN, RIB, BIC, cards, tax IDs, amounts with a currency)
  • Access and credentials (passwords, one-time codes; API keys and SSH keys on paid plans)
  • Company identifiers (SIREN, SIRET, VAT numbers)

Partial

  • Rare names, initials and nicknames
  • In languages without a names model (Polish, Czech, Russian, Japanese, Korean…), a bare name that follows no title or label and is not in a signature
  • Low-quality scans (OCR may miss or misread characters)
  • Internal URLs; project code names only through your custom rules

Out of scope

  • Handwriting, photos and signatures (not read as text — mask them by hand with the “Draw an area” tool)
  • Free text about a person (job title, health details, opinions)
  • Source code and critical infrastructure (dedicated DLP domain)

You can add your own rules for the identifiers specific to your business. For what automatic rules can't cover, review the document by hand or turn to a dedicated DLP solution.

Verify it yourself

  1. Open the browser developer tools

    F12 or ⌘⌥I
  2. Switch to the « Network » tab and enable « Fetch/XHR »

  3. Drop a document, let the analysis run, then download the anonymized copy

  4. Check the outgoing requests: the only one sent when the document is anonymised carries only counters (document, pages, masks per category, country and language recognised) and the name token — never your file, its name in clear or its text

Audience measurement — public site and account journey

On our public pages (home, pricing, about, sign-in, sign-up…) and on the purchase pages of your account (billing, checkout), we use Google Analytics through Google Consent Mode v2 to understand the journey and improve the product. In the European Economic Area, measurement is off by default and no cookie is set until you accept via the banner — you can decline. When measurement is allowed, a pseudonymous, non-reversible account identifier may link your visits, without revealing your identity.

On public pages only, we also use Microsoft Clarity (heatmaps and session replay), under the same consent. Text typed into forms is masked by default.

If you reach us through one of our ads, the same measurement, under the same consent, is also used to count the sign-ups and purchases that come from those ads (Google Ads, linked to the same Google account as Google Analytics) and, if you accepted, to show you our ads elsewhere (remarketing). No enhanced conversions: neither your email address nor any other account data is sent to Google. For other ads (Microsoft, LinkedIn, our emails), we only read a campaign code in the link you clicked, recorded with your sign-up on our servers.

Neither tool ever runs on the document page. Neither receives a file, a recognized text, a detected value or a token — only the names of the screens visited and conversion steps (subscription, payment).

Sub-processors

Railway
Application hosting and database (europe-west region) — account, plan, settings and usage counters
Stripe
Payment and invoicing — card details are entered on Stripe's pages and never reach us
Resend
Account e-⁠mails — verification, password reset, billing notices, once a question about pricing —, a few usage tips after sign-up or a purchase (an unsubscribe link in each one), and technical failure diagnostics sent to our team
Google Analytics · Microsoft Clarity
Audience measurement on public pages and account funnel pages only, subject to consent

Your rights and how to reach us

Under the GDPR you can access, correct, export or delete the data we hold about your account. You can delete your account, including workspaces, rules, profiles and usage counters, from your settings at any time. For any request or question, write to contact@onyristrategy.com. The data controller is the publisher named in the legal notice.

Ready to make a document confidential?

Nothing to install. Open your browser, drop the file, download it anonymized.