Stateless by Design
No database, no Redis, no storage. The mapping is returned to you - you decide where and how long to store it.
No database, no Redis, no storage. The mapping is returned to you - you decide where and how long to store it.
Detects 420+ data types: names, emails, IBANs, phone numbers, tax IDs, healthcare data and more. Optimized for DACH, works across EU.
Just two endpoints: /mask and /unmask. Integrate in any language in under 10 minutes. REST, JSON, done.
PrivacyMask works everywhere personal data needs to be anonymized.
Use ChatGPT, Claude, Gemini GDPR-compliantly
Anonymize contracts, applications, protocols
Clean logs before cloud storage
Anonymize user data for analysis
Mask customer data before outsourcing
GDPR-compliant archiving
Prepare Art. 15 data requests
Anonymize training data
420 detection patterns. Made in Germany. Works across Europe.
+ more patterns for DACH, EU-27, UK
PrivacyMask is a stateless API. You call /mask, get masked text plus mapping, process the text, and call /unmask to restore original data.
Call /mask - Sensitive data is detected and masked
Store mapping - You store the mapping locally
Process text - Send to LLM, archive, analyze...
Call /unmask - Restore original data
// 1. Mask PII before sending to LLM const masked = await fetch('https://api.privacymask.dev/v1/mask', { method: 'POST', body: JSON.stringify({ text: userInput }) }); // 2. Send masked text to your LLM const llmResponse = await openai.chat({ messages: [{ content: masked.masked_text }] }); // 3. Unmask the response const final = await fetch('https://api.privacymask.dev/v1/unmask', { method: 'POST', body: JSON.stringify({ text: llmResponse, mapping: masked.mapping }) });
For developers who want full control. No vendor lock-in, no server-side storage, no trust issues.
Sensitive data is masked before processing. Only anonymized data leaves your system. Art. 25 Privacy by Design.
We store no mappings, no requests, no logs. Data is processed in RAM only, never persisted.
Three-stage detection system (simple rules → language analysis → AI detection) with optimized performance. Barely noticeable delay.
Specially optimized for German formats: tax IDs, social security numbers, phone numbers, postal codes and more.
420 patterns for all EU countries plus Switzerland and UK. From Austrian social security numbers to French SIRET.
Just 2 endpoints: /mask and /unmask. No SDK required, works with any HTTP client in any language.
Pay only for what you use. No subscriptions, no expiration.
1 Credit = 1,000 characters. Rounded up per request.
PrivacyProxy: Drop-in LLM proxy with automatic masking. Just change base_url, done.
Two API calls, full control. From a single line to thousands of documents.