Legal
Veil Translate Privacy Policy
This page explains what Veil Translate does with your data. It is not legal advice. Privacy laws such as the EU GDPR and the California CCPA/CPRA impose specific obligations, and you should have a lawyer for your target market review this document before relying on it for compliance.
Veil Translate is a local pseudonymization/anonymization translation tool. Detection and masking of personally identifiable information (PII) happen in your browser. Sensitive entities we identify — such as names, ID numbers, phone numbers, emails, bank/USCC numbers and organizations — are replaced with stable placeholders before any text is sent. For source languages other than Chinese or English, entity recognition is more limited, so review the results carefully.
Your original file, confirmed sensitive values, mapping plaintext and temporary mapping key never reach our server. In BYOK mode, your API key is kept only in the current tab and is sent directly to the provider you selected; our server never receives it. There are no user accounts, and we do not track document content. We keep only anonymous daily aggregate counts for four product steps. Effective date: 2026-07-16.
Managed translation relays masked body text through Veil Translate to Cloudflare Workers AI. Undetected sensitive data and the remaining body text may still be processed there. Read Cloudflare's privacy policy.
What happens in your browser
Parsing, detection, masking and restoration all run locally, inside your browser and Web Workers. Your original file is never uploaded as a whole.
Only the de-identified body text (with placeholders) is used for translation, and the real values are restored on your device afterwards, with the original formatting preserved.
Session-only keys and local mappings
The placeholder mapping is encrypted with a browser-generated, non-exportable AES-GCM session key before its ciphertext is written to local IndexedDB. The temporary key is discarded on reload.
A BYO API key is kept only in the current tab's memory for the session, is sent directly to the provider you chose, and is never stored in localStorage or IndexedDB. Older encrypted-key records are removed automatically when the translator opens.
BYOK tier — direct browser-to-provider
When you bring your own key (BYOK), the masked body text goes directly from your browser to the OpenAI-compatible endpoint you chose, with your key in the request. We never touch, see, proxy or store that traffic.
You can verify this in your browser's Network panel: the request goes straight to your provider, not to us.
Free tier — routed through our server to Cloudflare
In the free tier, the masked body text is forwarded through our server to Cloudflare Workers AI so we can run translation on your behalf. We keep zero retention and zero logs of that content — we do not store or log the text passing through.
Cloudflare processes the request under its own terms and, per its data-usage policy, does not use the input to train its models. See Cloudflare's privacy policy at https://www.cloudflare.com/privacypolicy/ and its Workers AI data-usage terms at https://developers.cloudflare.com/workers-ai/platform/data-usage/.
The honest boundary
We do not encrypt your whole document and translate the ciphertext. Only the sensitive entities we detect and you confirm are protected. In the free tier, the remaining de-identified body text — which may still contain confidential, non-PII content — does leave your device and is sent to a third party (Cloudflare).
If that trade-off is unacceptable for a given document, use the BYOK tier, or do not use the free tier for it.
Anonymous usage counts
To understand whether the product flow works, we store daily aggregate counters for four fixed events: a file was successfully staged locally, translation started, translation completed, and a download started. We do not store document text, document names, file metadata, IP addresses, cookies, account IDs or any persistent user identifier with these counters.
The counters are stored in Upstash Redis and are retained for up to 400 days. They are not used to profile or identify an individual.
What we do not collect
We do not require an account, and we do not track the content of your documents. We do not sell personal data.
Your BYO API key stays only in the current tab's memory and travels directly to the provider you selected; it is not stored by Veil Translate or sent to our server.
Contact
Questions about this policy or your data? Email yaoluolong1997@gmail.com.
Frequently asked questions
Does my document get uploaded?
No. Parsing, detection, masking and restoration happen in your browser. In BYOK mode the masked text goes directly to your provider; in the free tier it is forwarded through our server to Cloudflare, but we keep zero logs of the content.
Do you keep logs of my text?
No. In the free tier we keep zero retention and zero logs of the content forwarded to Cloudflare. In BYOK mode the traffic never touches our server at all.
Does Cloudflare train models on my text?
No. Per Cloudflare's Workers AI data-usage terms, inputs are not used to train its models. See https://developers.cloudflare.com/workers-ai/platform/data-usage/.
Is this page legal advice?
No. It describes how the product works. Have a lawyer for your target market (GDPR/CCPA and similar) review it before relying on it.